Axpert

Help and Support

This documentation is designed to help you get started using Axpert. It contains overview information and procedural steps for creating and managing a process independent enterprise application in Axpert.

This documentation is divided into the following sections:

  • Introduction . Provides introductory information about Axpert.,its architecture and describes the steps to create an application in Axpert
  • Features .Describes all the interfaces and features available in Axpert.
  • Creating application. Provides overview information and procedures to accomplish common tasks by using Axpert.
  • Axpert developer guide. Provides terms and definitions related to Axpert
  • Case studies


Introduction

Introduction

As a CTO or CIO or IS/IT function owner for a enterprise, some of the following situations would be faced by you every day despite significant advancement in software engineering, quality of products and solutions and extended lifecycle support especially for legacy applications:

    • Enterprise business environments and process change rapidly and the pace of software product evolution is not the same.
    • Customers need a lot of last mile customization despite the fact that an off the shelf solution may meet 70-80% of their needs. More often than not, the software vendor is unable to support this customization.
    • Companies would prefer to retain core process areas and not change everything as demanded by traditional software / product / solutions.
    • IT solutions should be deployed in response to a business problem and should show a tangible ROI in 3-6 months.
    • Reporting needs should be flexible and the control should lie with the enterprise IT owner and not the software vendor.

Considering the resource churn and people dependency in the current business environment, IT managers would prefer to have control over their intellectual assets which would give them the flexibility to migrate out quickly when needed without depending eternally on the same set of people.

As systems get more complex, maintainability of code gets more difficult and dependant on human intervention which results in high labor costs due to constant integration efforts. We need to take a fresh look at how technology can be made more effective, simpler and cost effective for the CIO, CTO and the business end user.

Just like the companies adapted to data management tools that enabled the growth of data independent applications, companies have started adapting to process independent systems.

Thus,keeping in mind the above requirements,Agile Labs has come up with a unique technology called Axpert(patent pending). Axpert is an SOA based business process server that would enable the users to develop enterprise applications with minimal effort,time and cost.


The architecture

         Next Topic

The architecture

Here's a peek into the architecture behind Axpert :

The basic version of Axpert consists of two major components

  • Axpert Process Server
  • Axpert STEM (Windows desktop application)

Axpert STEM (Structure Execution and Management) is used to define process structures.

The defined process structures are rendered by the Axpert Process Server as an application.

On creating a process structure, Axpert STEM will store the structure definition into database in XML format. Further, it creates the required tables in the database to store user data.

The two basic Process Structures in Axpert are

  • Transaction Structures (TStructs)
  • Information Views (IViews)


Understanding Process Server

Understanding Process Server

A Process Server is a collection of Web services that can create and manage Business Processes and render as a Software Application. Process Server is the next logical step to the Database Server in Technology Evolution. A database server manages data that is represented as table structures. Similarly the Process Server manages business processes that are represented as process structures.

The process server will read a process structure (created by the STEM in the case of Axpert) and renders a page. The page provides a user interface to enter & submit data into the structure. The data that is submitted is validated and stored into associated database tables. The various actions and maps associated with the structure will be executed by the server. The STEM consists of a full fledged form designer that can be used create the page design.

The process server can do any or a combination of the following tasks

  • Render standard GUI along with navigations
  • Manage CRUD operations
  • Do Data conversion to various formats
  • Provide connections to productivity tools like word, outlook, excel
  • Manage Work flow
  • Handle reporting
  • Do scheduled activities
  • Exchange data based on maps

Every task that the process server performs on a process structure is available as web services. For instance, saving data to any structure is available as service, sending structure data as email is available as web service, converting structure data to PDF is available as another web service. Hence, all functionality in the end application that is rendered by the process server is available as web services. Thus the level of inter-operability is the highest.


Understanding Process Structures & Process Server

Understanding Process Structures

A process structure is a set of related database tables along with business rules. Business rules seldom make sense without data. Hence, business rules are tightly bound to a collection of data elements that are persisted into one or more related database tables. Every business entity in a software application can be considered as a process structure.

A business process is created by inter-connecting the different process structures. The connection between process structures are achieved by mapping the elements in one process structure to another. The process structures can be connected with different kinds of maps based on business need.

A process structure will consists of

  1. Data elements

The data elements are grouped into data containers. Every container is linked to a database table. Hence, when the structure is created, the tables attached with each data container are created in the database and the fields associated with each container are created as fields in that table. If a structure consists of more than one table then all the tables are related.

  2. Computation rules for each element

Each data element can be associated with an expression. The expression can be based on the data elements in the structure. Axpert provides a list of common functions that are needed for the building comprehensive structures. In case more functions are needed, these can be written in dot net as web services and attached to the structure. Alternatively, SQL functions can be written and used in SQL statements that can be attached with the data elements.

  3. SQL statements to fetch and populate data into structure

SQL statements can be attached with every data element. The SQL result can be automatically populated into the data element or the user can be allowed to choose from the SQL result.

  4. Validation rules

Just as expressions can be set to compute values into data elements, there can be validation expressions that will validate the value in a data element. The result of any validation expression should be ‘T’ if the value is valid or ‘F’ in case of invalid.

  5. Actions

An action is a sequence of tasks that can be performed within if-else constructs. Process flows are created as actions. An action can be associated with an event, attached to a button or may be attached to the Axpert scheduler.

  6. Maps to other structures

Maps are used to populate data from one structure to another. As part of a map the data elements in the source structure will be mapped to data element in the target. One-to-one, one-to-many or many-to-many maps can be defined between structures. The flow can be controlled based on rules.

The two basic Process Structures in Axpert are

  • Transaction Structures (TStructs)
  • Information Views (IViews)


How TStructs,DCs,InputFields and Forms work together

How TStructs,DCs,InputFields and Forms work together

A process structure is a set of related database tables along with business rules.

The two basic Process Structures in Axpert are

    • Transaction Structures (TStructs)
    • Information Views (IViews)

The TStruct is a process structure that describes a collection of tables into which validated data is stored.Every tstruct should contain at least one data container (DC). A table name is specified for a DC. When the tstruct is created, a database table is also created by Axpert automatically. In the table a field named <tablename>Id is created and made the primary key. For example if a table named Supplier is created, the primary field is named as 'SupplierId'. This will be created automatically by Axpert as a numeric field.

There can be any number of DC in a tstruct. Each DC can have a different table name. The table attached with the first DC is called the primary table. More than one DC can point to the same table name. More than one tstruct can point to the same database table. When more than one table is defined in a tstruct, the tables are automatically related by storing the record id of the primary table in all the other tables.

Input fields are created under each DC. These are created as fields in the DC table.

A DC could be any one of the following types :

      • Simple
      • Grid

A data input form is automatically created on defining a Transaction Structure(TStruct). The end user can input data into the Information System through these forms.

Axpert creates a frame in the form for each DC in the TStruct.A simple DC produces a frame in which each InputField is shown as a component. A grid DC produces a Grid frame in which each InputField under the DC is shown as a column in the grid. As a Grid frame allows multiple rows to be entered, each field in a grid DC can have multiple values.The rows in the grid are stored as rows in the associated table. Hence, the table associated with this DC will have a one-to-many relationship with the primary table.

The mode of entry for an input field will decide the kind of component that appears in the form. For instance,a combo will appear if the mode of entry is select.


Create a new application

Create a new application

How to create an application

  • Run the [image] .

  • In the Axpert Manager dialog,

select the database name from the Database drop down,

input the database user name in the DataBase User name text box,

the password in the Password text box,

the host string or service name in the Host String/Service Name text box

and the URL in case you are connecting remotely within the URL for Remote Connection text box.

Note : The database user name and password should be an existing one.

  • Click

  • Select Create Application option button from the list of Actions and click [Next]

  • Enter the Application Details in the Name text box and the Caption text box.

Click [Next] to continue.See screen shot below.

  • Input the database details for the new application.

Select the Database name and the Driver name from the list box.

Input the service name in the Service name text box,

the new database user name in the User Name text box,

and the new password for the current application in the Password text box.

  • Click [Finish] to complete the creation process or click [Back] to make any changes.

  • You'll see a message that the application and user has been created successfully.

Click [Close] to close the Axpert Manager.


Logging in

Logging in

To start using the newly created application, double click on the Axpert.exe icon on your desktop. The Login screen will appear. You need to log in to start using the application. Every user shall be provided with a User Name and a Password by the administrator. Refer the screen shot shown below.

Note : The Application name should be that of an existing one and should be created through AxpAdmin.exe.

By default,the User Name and Password for any newly created application would be admin and agile

To Login

  • Select/Verify the Application Name in the Application text box.
  • Type the User Name and the Password in the User Name and Password text boxes respectively
  • Press Enter or Click [Sign In] to log in .

To stop loading Axpert

  • Click [Cancel] to stop loading Axpert.


Remove an application

Remove an application

How to remove an application

  • Run the

  • In the Axpert Manager dialog,

select the database name from the Database drop down,

input the database user name in the DataBase User name text box,

the password in the Password text box,

host string or service name in the Host String/Service Name text box

and the URL in case you are connecting remotely within the URL for Remote Connection text box.

Note : The database username of the application to be removed should not be used to connect.

  • Click

  • Select Remove Application option button from the list of Actions and click [Next]

  • Select the application to delete from the list . Click [Next] and confirm.

  • Click [Finish] to complete the deletion

  • You'll see a message that the application has been dropped successfully.

Click [Close] to close the Axpert Manager.


Change password

Change password

How to change login password

To change login password,

    • Log In with your old password .
    • Click Change Password hyperlink located on the Application title bar at the top right hand side . Refer the screen shot below.

    • In the Change Password pop up,enter your old password in the Password textbox. Enter new password in the New Password textbox, retype it in the Confirm Password textbox .

    • Click [Ok].


Features

Features

Pick a topic

The Axpert interface

Application Properties

TStructs

IViews

Pages

Set Language

Schedule Action

Actions

Utilities

Roles and Users


The Axpert interface

The Axpert interface

Pick a topic

About The Axpert Bar

About The Navigation Pane

About the Property Panel


About the Axpert Bar

About the Axpert Bar

The Axpert Bar is located at the top of the Application development interface.

Back | Goes back to the previous page you viewed.
Forward | To view a page you viewed before clicking the Back button, click the Forward button.
Refresh | Refreshes the currently active page.
Users | Use this button to define the users and their roles for your application.
Build | This is a toggle button that lets you build TStructs,IViews, Pages and modify them if needed. You can also set the application properties and schedule your actions here.

Build Tool Bar

Build Tool Bar gets activated/deactivated when you click the Build toggle button.

    • Clicking on TStruct will open the TStruct Definition Screen .
    • Clicking on IView will bring about the IView Definition .
    • Click on Page to create/modify pages through Page Design .
    • Click on Properties to set the Application Properties ,environment variables, user defined variables and Passwords.
    • Set Language will make it possible to set the language and define the captions in that language for the application.
    • Utils lists a set of utilites available in Axpert for efficient application development.
    • Schedule Action allows the creation and scheduling of actions for execution.


About the Navigation Pane

About the Navigation Pane

All the pages you create within an application are displayed within the Navigation Pane on the left hand side of the Application developement screen. The Navigation Pane plays a very important role throughout the application development. You can open the pages from here either in the design mode or in the run mode. Opening the pages in the design mode lets you define the contents of the page. The following screen shot displays the Navigation Pane.


About the Property Panel

About the Property Panel

In Axperty , you use properties to determine the characteristics of TStructs, DCs, InputFields, IViews,Pages and other data elements. Every component on a form, page, or print form has properties as well. These properties determine the structure, appearance, and behavior of a control, as well as the characteristics of the text or data it contains. You set properties by using the property panel. For example, the following illustration shows the property panel for a TStruct .

Tip : To get Help on any property in the property sheet, click the property and then press F1.


Application Properties

Application Properties

The Properties functionality in the Build toolbar makes it possible to set the Application Properties,Environment Variables,User Defined Variables and other features of the application.

In the Properties tab, you can assign the Name and Logo of the application.These will be displayed in the Application development screen.

In the Environment Vars tab,add/remove the currencies using the [+] button and select the native currency from the list. You can also specify the financial year and the number of sites in which the application will be deployed.

User Defined Vars tab facilitates the creation of global variables that could be used in the application.

In the Mail Settings tab , you can set the host ,port and login details of the mail application.

Login Display tab allows you to add more details to the User Information displayed below the Navigation Pane in the Application development screen.


TStructs

TStructs

Pick a topic

TStruct Definition Screen

Data Containers

InputFields

MDMaps

GenMaps

FillGrids

Forms

Expressions

Mode of Entry In Inputfields

Print Forms


TStruct Definition Screen

TStruct Definition Screen

Properties Example

Transaction structure (TStruct) is a process structure that describes a collection of data elements along with the associated business rules and actions.

For every TStruct, Axpert generates UI forms or web pages at run time. Each data element is created as components in the form or web page. The data entered into these forms are validated and stored into corresponding database tables.

How to create a TStruct

To create a TStruct,

    • Add data elements to the grid in the transaction definition form. The first row should be TStruct followed by DC and then followed by field definitions.

    • Add a line and set the type as DC. Each DC is connected to a database table. If the database table does not exist, the table will be automatically created in the database. Each DC provides a frame in the form.
    • Add each component that is needed in the form . The default properties related to each field/component are displayed in the property panel on the right side. Change these properties as per the need.
    • Save the TStruct. While saving a new TStruct, Axpert will ask if you need to create a default page for the TStruct. If you opt for the page to be created a page corresponding to the form will be listed in the navigation pane.

Data can be submitted to a TStruct from external sources like CSV, XML etc or from external applications by making web service calls.


TStruct properties

TStruct properties

The properties of a transaction structure are displayed in the property panel of TStruct Definition Screen .They are :

TransId(Name)

Every Transaction Structure is identified using a TransId or Name. This TransId is always of character datatype and length five. Every TStruct should have a unique TransId.

Caption

Every Transaction Structure is given a unique Caption or Transaction Description.

SaveControlField

SaveControlField is used to save the transactions conditionally.

To set the SaveControlField property,

    • Create an InputField within the relevant DC of the TStruct.This InputField should contain either 'T' or 'F' during runtime.The boolean value can be input directly . It can also be generated through an expression or through an SQL statement.
    • Select the above InputField from the SaveControlField dropdown in the TStruct properties.
    • Save the TStruct

During runtime, if the InputField value is true(‘T’), the transaction information gets saved into the database .Otherwise no save is executed.

Note : Only the InputFields which have the Save Value property set as True, will be saved into the database.

Example

Case 1: An Invoice is to be saved only if the invoice amount is less than Rs.1,00,000. In such cases, an InputField is created with the Expression property set as IIF(InvoiceAmount < 100000, {T}, {F}) and then the SaveControlField is set to this InputField.

Case 2: While saving a voucher, it is to mandatory to check if the debit and credit amounts are equal.

DeleteControlField

The DeleteControlField facilitates conditional deletion of the transaction . Deletions are made only after confirmation as the information once deleted cannot be recovered.

To set the DeleteControlField property,

    • Create an InputField within the relevant DC of the TStruct.This InputField should contain either 'T' or 'F' during runtime.The boolean value could be either input directly or generated through an expression / SQL statement.
    • Select the above InputField from the DeleteControlField dropdown in the TStruct properties.
    • Save the TStruct

During runtime, the DeleteControlField is evaluated. In case it holds a 'T', the transaction gets deleted or else the deletion is not carried out.

Note: Deletion of Master entries that are used in Transactions is not allowed.

Example

In any conventional system, the Master information should not be allowed to be deleted in case it has been used in any Transaction. For instance, say an ItemName in the ItemMaster should not be allowed to be deleted if it is used in any Invoice. To bring about this control, the number of transactions in which the selected item is used is retrieved into a field, say ,CountField. Another InputField is created where the Expression is set as IIF(CountField <= 0, {F}, {T}) and then the DeleteControlField is set to this InputField.

Track Changes

Set this property to maintain a history of all the changes made to transactions. The modified field name,modifying person , date and time of modification, value prior to modification and the new value are recorded when this property is set.These details can be viewed through View History at run time. Read More .

Attachment

Set this property to True to allow pictures or documents to be attached to a transaction. At run time an attach option automatically appears in the task drop down that can be used to attach any external document or picture to a transaction.The attachments are stored in the database.

ListView

Set this property to True to create automatic lists. On setting the property to True the Form will have a button called List View . This button when clicked at run time lists all the data of the transaction thus acting as a dynamic report.

BlockSize

Use this property alongwith Listview to create monthly,weekly or daily reports.


Data Containers

Data Containers

Properties Example

A data container (DC) groups the data elements in a transaction structure. There can be many DCs in a TStruct. The fields in each DC are stored into a database table given in the table name property of the DC.

The defined DCs will appear as frames in the form related to the structure. The frames can be rearranged using the functionalities available in the Form Designer .

Every TStruct should contain at least one data container (DC).When the TStruct is created, a database table is also created by Axpert automatically.

How to create a DC

To create a DC,

    • Create a new TStruct .
    • Add a line in the grid and set the type as DC.
    • Set the Name, Caption and TableName property of DC.
    • Add the InputFields and other components as required.
    • Save the TStruct

A DC could be any one of the following types :

        • Simple
        • Grid

A simple DC produces a frame in which each InputField is shown as a component. A grid DC produces a Grid frame in which each InputField under the DC is shown as column in the Grid. A Grid frame allows multiple rows to be entered.

There can be any number of DC in a TStruct. Each DC can have a different table name. The table attached with the first DC is called the primary table. More than one DC can point to the same table name. More than one TStruct can point to the same database table. When more than one table is defined in a TStruct, the tables are automatically related by storing the record id of the primary table in all the other tables.


Data Container properties

Data Container properties

Example

The properties of a DC are as follows:

Name

Every DC is identified by a unique Name of length three.The default name cannot be altered.

Caption

Every DC is given a default Caption which can be modified as needed.

TableName

A DC is connected to the database table by setting the TableName property. All InputFields created in a DC are created as columns in the table. The first DC in the TStruct is called the Primary DC. If a TStruct contains more than one DC, the DC tables are connected to the Primary DC table. This establishes a relation between them. Hence multiple tables belonging to a TStruct gets created and related when it is saved.

When a TStruct is created, a Primary field is created by the system in the Primary DC table with the name <TableName>Id. For instance, when an Item Master DC is created, the field called 'ItemMasterId' is created as the first field in the ItemMaster table. During runtime, a unique number is generated by the system for every record saved in this field.

AsGrid

Set this property to True to define a Grid DC.

The first or the Primary DC in any TStruct should always be a Non-Grid (by default AsGrid property is set to False.) .The DC can be altered from Simple (Non-Grid) to Grid and vice-versa by changing the AsGrid property. This does not apply to the Primary DC.

AllowEmpty

Applicable to Grid DC.If this property is set to False a grid DC will not allow empty values.At least one row of values needs to be input during runtime


InputFields

InputFields

Properties Example

An InputField is a data element which accepts data from the user. InputFields are placed within Data Containers (DC).An InputField can be defined only after defining a DC. Whenever an InputField is defined, simultaneously a column in the table corresponding to the DC is created. The column name is the same as the InputField name. The InputField caption is shown to the user in the Form .

The type of data keyed into an InputField could belong to character, text, date, numeric or image data type.

Additionally, an InputField has several other properties of which ModeOfEntry is one of the most important. The MOE of an InputField determines the manner in which data would be accepted during runtime.


InputField properties

InputField properties

The properties of each InputField displayed in the property panel are as follows :

Name

This is the name of the Input field. No special characters and spaces are allowed to be included as part of the Name. A column with this Name is created in the table in the database specified for the DC.

Caption

The Caption is the caption given to the InputField. The Caption is displayed to the user in the Transaction Form.

DataType

This is the data type for the input field value. Axpert allows five data types of which one should be chosen from the list in the Property Panel

1. Characters (Alphanumeric)

2. Numeric

3. Date/Time

4. Image

5. Text

By default, Character data type is displayed. On setting the DataType, the system allows only the specified Data Type value to be entered at run-time.

DataWidth

Enter the width of the field specific to the data type . On setting the DataWidth ,the data entry is restricted to the value specified.

In the case of a Character, the minimum width of 1 can be defined and allows a maximum of 4000 characters.

Decimals

Applicable only in the case of the Numeric Data type. On specifying this, the system allows a real number to be entered.

ModeOfEntry

A MOE defines the manner in which data will be input or derived into the InputField during run time.

The MOE should be Accept if an InputField should accept the data input by the user at runtime.

If the value needs to be computed at runtime, then the MOE should be Calculate .

The MOE should be set to AutoGenerate if the field value has to be automatically generated as a sequence.

Use Select as the MOE to retrieve data from another structure or query.

Use Fill to populate the InputField based on a value above it. Read More

Details

Applicable when the MOE is Accept, Select, AutoGenerate or Fill. For each of these MOE, the details property needs to be set accordingly. Read More

Hidden

Set this property to True to hide the field in the Transaction Form. Default value is False.

AllowEmpty

This property is used to specify whether a field data entry is mandatory or not. To make it mandatory, set the value as False. During runtime, on not entering the information into the field, a "<Field> cannot be left empty" warning would be displayed. Default value is True.

ReadOnly

Set this property to True to make the InputField read only. If set to True the focus will not move to this field during runtime.

SetCarry

Set the SetCarry property to True to carry the previous transaction's field value to the next transaction.

For instance,if you are entering a number of Vouchers for the same date, you can set this property as True for the Voucher Date field in a Voucher TStruct. On doing this, the date of the previous voucher in the Voucher Form will be defaulted in the new one entered. It is also possible to alter this carried forward data.

SaveValue

The SaveValue property determines whether the InputField is to be created in the physical table or not. A True value, which is also the default, creates the field in the physical table.

For instance, while generating a Payslip for employees, there are certain fields such as Basic, DA, Advances etc. that needs to be entered and stored in the database. In such cases the SaveValue property is set as True. In the same payslip, there may be a field called Total Pay Amount (given by Basic +DA + Advances) that just requires to be displayed. As there is no necessity to store the calculated Total Pay Amount, you can set the SaveValue as False. During runtime, the total amount will be calculated and displayed but will not be saved in the database.

Expression

Use this property to perform calculations, evaluations or for prefixing values. Read More

ValidateExpression

Set another expression here to check if the value for the field is correct or not. Read More

AllowDuplicate

The purpose of this property is to control/allow duplicate entries. Set this property to True to allow duplicate entries for the InputField. Otherwise, you will be prompted with an error message.

OnlyPositive

Set to True to allow only positive values for the InputField. Set to False otherwise.

ApplyComma

Applies only to numeric field. Set to True to display numbers with comma, i.e. 100000 as 1,00,000 . Comma will not be stored in the database. They are used only for display.

Mask

Use the Mask property to get or set the input mask to use at run time. Mask is a string that consists of three fields with semicolons separating them. Read more .

Pattern

The value that is entered for a field will be matched against the pattern string. If it does not match the pattern then an exception is raised.

Each literal character in pattern string must match a single character in the string. The comparison to literal characters is case-insensitive.

Each set begins with an opening bracket ([) and ends with a closing bracket (]). Between the brackets are the elements of the set. Each element is a literal character or a range. Ranges are specified by an initial value, a dash (-), and a final value. Do not use spaces or commas to separate the elements of the set. A set must match a single character in the string. The character matches the set if it is the same as one of the literal characters in the set, or if it is in one of the ranges in the set. A character is in a range if it matches the initial value, the final value, or falls between the two values. All comparisons are case-insensitive. If the first character after the opening bracket of a set is an exclamation point (!), then the set matches any character that is not in the set.

Wildcards are asterisks (*) or question marks (?). An asterisk matches any number of characters. A question mark matches a single arbitrary character.

PasswordCharacter

Specify a single character here. This character will be used for display in case the entered text/value is being used as a Password or is being hidden for the sake of security.

Hint

The tip to be displayed when the mouse pointer moves over the InputField at runtime.

ClientValidation

Set the property to True if you need the field data to be validated at the client.If set to False server side validation will have to be implemented.


List of dependencies

List of dependencies

The List of dependencies window comes up when you try to change the Name of an Inputfield to which some other TStruct is linked.

Axpert lists all those TStructs which are dependent on this field name. You can either proceed with the change in the name or you can retain the old name.Axpert will not auto update the dependencies .The updation will have to be done manually.


MDMaps

MDMaps

Properties Example

A Master Detail Map is provided to update the information from a Detail transaction to a Master transaction. Data from a field in the Detail table is updated to a specific field in the Master table subject to certain criteria. The MDMap is always inserted in the Detail table and the properties are set so as to link the Detail Tstruct and the Master TStruct.

For instance, consider a case where the closing stock quantity needs to be maintained in the Item Master. In such a case, quantity in all plus transactions (which add to the stock like Goods Received Note, Material Receipts etc.) needs to be cumulated into a field in the Item Master. Quantity in all minus transactions (which reduce stock like invoice, issues etc) needs to be reduced from the same field.

How to add an MDMap

To add an MDMap to a TStruct,

    • Within the relevant DC , add a row to the grid and select the MDMap component.
    • In the Master Transaction property, select the TStruct which needs to be updated.
    • In the Master Field property, select the field within the Master TStruct that should be updated.
    • In the DetailField, select the InputField within the current TStruct from which data should be updated to the Master Field.
    • In the MasterSearchField and DetailSearchField, select the fields on the basis of which the link between Master and Detail TStruct should be established so as to search the records for updation.
    • Set the UpdateType property to define the type of updation to be carried out.
    • Save the TStruct.


MDMap properties

MDMap properties

Example

An MDMap allows a field value in the Master table to be updated on the basis of a transaction in the Detail table. The properties of an MDMap are as follows :

Name

Unique Name given by Axpert to the Master Detail Map.Cannot be altered.

Caption

The caption given to the MDMap that would be displayed during run time.

Extended

Set this property to True if you want the record from the Detail table to be added to the Master in case it does not exist.When this property is set to False ,Axpert searches for the record in the Master and if it exists, the specified Masterfield value is updated.If it doesn't exist no operation is performed. On setting to True the record details will be added to the Master. On setting this property to True , the corresponding update definition should be specified in the MapText property.

MasterTransaction

The TStruct into which the details are to be updated. Select from the list of TransId of the various Master TStructs.

MasterField

The field in the Master TStruct which needs to be updated. On selection of the Master TStruct in the MasterTransaction property, all the fields in it are populated here for selection. During run time, this field in the Master gets updated in the manner specified in the UpdateType.

DetailField

This is a field in the Detail TStruct from which data is updated into Master field.

MasterSearchField

This is a field in the Master TStruct to which the detail relation field relates.

The Master search field is the field to be searched for updation.

All the fields in the Master TStruct selected in the MasterTransaction property are listed here for selection.

In case 'Default' is specified, the field search is done by the system where the key field or the Primary Key is used for matching.

DetailSearchField

This is a field in the Detail TStruct that relates it to the Master TStruct. All fields in the Detail TStruct are provided for selection.

MasterTable

On selecting the MasterTransaction,the table name corresponding to the Master TStruct is displayed here automatically.

UpdateType

Select the Update Type from the list.

Add : Adds the value in the Detail field to the Master field

Less : Subtracts the value in the Detail from the Master field.

Highest: Replaces the highest value of the Detail field into the Master field.

Lowest : Replaces the lowest value of the Detail field into the Master field.

Inc : Increments the Master field value.

Dec : Decrement the Master field value.

Replace : Replaces the Master field value with the value entered in the Detail field.

ControlField

This property is used to perform Conditional updation .Only those fields which accepts boolean values should be selected as ControlField. If the ControlField value is 'F' ,then the Master updation is not done.If the value is 'T',then the master field is updated.If the value in this field changes from T to F, then the update that was done earlier will be reversed.

To set the ControlField property,

    • Create an InputField within the relevant DC of the TStruct.This InputField should contain either 'T' or 'F' during runtime.The boolean value could be either input directly or generated through an expression/ SQL statement.
    • Select the above InputField from the ControlField dropdown in the MDMap properties.
    • Save the TStruct.

Example :

When a PROFORMA Invoice is entered, the quantity is not to be updated to the Item Master.

In the Invoice TStruct, create a field called PROFORMA which accepts 'Y' or 'N'' from the user.

Create a field called UPField where the Expression is entered as follows

IIF ( PROFORMA = 'Y', {F} , {T})

Select UPField as the ControlField in the MDMap properties.

The result : If PROFORMA has the value 'Y', the control field is updated as 'F' and the updation is not done. In case of 'N', the control field will read 'T' and updation is carried out.

Append

Set this property to True to update the records without using any search condition. If search field values are specified, records will be updated based on the search values. If search field values not specified, records will get updated automatically without undergoing any search condition.

InitOnDel

Applicable when the UpdateType is Replace.This is the operation that should be initiated in the Master in case the Detail transaction gets deleted at any point of time.

MapText

This property is applicable only when the Extended property is set to True.The update definition for the Master table is specified here. Read More


GenMaps

GenMaps

Properties Example

The GenMap feature enables the posting of a transaction from one structure to another. In an Enterprise scenario, a transaction may be the source of another transaction. Hence, as soon as the Source transaction is carried out, the Target transaction should be automatically executed. Such an automated system will eliminate repeated data entry. This is achieved by defining a Transaction Generator Map (GenMap) in which the Source TStruct is mapped to the Target TStruct.

How to add a GenMap

To add a GenMap to a TStruct,

    • Within the relevant DC , add a row to the grid and select the GenMap element.
    • In the TargetTStruct Property, select the TStruct to which the transaction needs to be posted.
    • In the BasedOnDC property, select the DC from which the details should be posted.
    • Set the Active property to True.
    • Map the source fields to the target fields in the Map Property .
    • Save the TStruct

Some real time scenarios that emphasize the need of this feature are :

a) A Purchase Bill is a TStruct through which bills given by various Suppliers are entered. A Purchase Voucher is a TStruct through which a financial accounting transaction is entered. In such a case, when a Purchase Bill is made, a provisional Purchase Voucher should be automatically generated. The concerned authority in the Finance Department may go through a list of such provisional entries and approve them, there by making them actual entries. This would avoid the need of data to be entered by the Finance Department again.

b) In a production environment, when a production slip is entered, the posting of raw material issue document based on the bill of material should happen automatically. The raw material issue will reduce the raw material stock in the Stores.

c) In a distribution system, goods are loaded into a vehicle and distributed to various agents at different points depending on the order received from them on the previous day. The agents pay the money as soon as the material is received to the transporter who in turn deposits it back to the company. In such a case, sales invoices and cash receipts may be raised on each agent to whom the material is supplied. This could be automated, if there is a system that facilitates posting of a cash receipt voucher when a sales invoice is made.


GenMap properties

GenMap properties

Example

A GenMap (Transaction Generator Map) is used to post data from one transaction form(Source) to another transaction form(Target).The properties of a GenMap as displayed in the property panel are as follows :

Name

Unique name given by Axpert to GenMap.Cannot be altered.

Caption

The caption given to the GenMap that would be displayed during run time

TargetTStruct

The TransID of the Target Transaction Structure where the posting is to be done. All the transaction structures in the project are listed here for selection.

Based On DC

The DC from which the details should be posted to the TargetTStruct. All the DCs in the Source or the current TStruct are listed here for selection.

In case a Grid DC is specified, multiple transactions are posted from a single transaction.

ControlFieldName

This field is used for conditional posting. During runtime, the posting is executed based on the value in the field specified here. In case it holds the value 'T' posting is executed and in case of 'F' no posting is done.If the value in this field changes from 'T' to 'F', then the already posted transaction will be deleted.

To set the ControlFieldName property,

    • Create an InputField within the relevant DC of the TStruct.This InputField should contain either 'T' or 'F' during runtime.The boolean value could be either input directly or generated through an expression/ SQL statement.
    • Select the above InputField from the ControlFieldName dropdown in the GenMap properties.
    • Save the TStruct.

Active

The GenMap can be made Active or Inactive by specifying True or False. The posting is carried out only if the Gen Maps are active.

TargetProject

A Source transaction may post a Target transaction in any other project. In such a case, the ProjectID should be specified here. The Target transaction will be posted into the ProjectID mentioned here.

Map

Mapping of Source fields to the Target fields is done here. Read More

OnPost

Define the expression(s) that should be executed on posting the details. Read More


FillGrids

FillGrids

Properties Example-Using SQL Example-From IView Example-Grid to Grid

FillGrids are used to automate the process of data entry into a Grid DC. The result set of any SQL can be filled into any grid in the TStruct . Each column in the result set can be mapped to a column in the grid. Each row in the result set will be added as a row to the grid.

For instance, in an Order Processing scenario, there are Indents based on which Purchase Orders are placed. Indents or material requisitions may be entered into the system by a number of executives on various dates and locations. An Indent contains the list of items to be ordered/purchased and their indented quantity. A Purchase Order can be placed by including all/required items in the Indents. This is where the concept of automation steps in. To avoid repetition of work, during purchase order entry, a list that contains all the indents entered into the system can be provided. The user can choose the required ones to be included in the order. Thus, using the automation-FillGrid, all the Indents to be included in the Purchase Order can be retrieved. An SQL can be written to get the list of Indents. The FillGrid will populate the result set of the SQL.

A FillGrid can be defined in three ways :

    • Using SQL : In this option an SQL is written to fetch the required grid information
    • From an IView : A IView is used to retrieve the data to the grid.
    • Grid to Grid Copy :This option facilitates copying of information from one grid to another within a TStruct.

How to add a FillGrid

To add a FillGrid to a TStruct,

    • Within the relevant Grid DC, add a row to the grid and select the FillGrid component.
    • To fill a grid from IView set the From Iview property to True and select the Iview from those listed in the Caption property drop down.Map the IView fields and the target fields in the MapDetails property of the FillGrid.Set the AutoShow property to True to fill the grid automatically when the focus moves to the grid.
    • To fill a grid from a SQL query, set the From Iview property to False and define the SQL in the SQL property .Map the sql fields and the target fields in the MapDetails property of the FillGrid.Set the AutoShow property to True to fill the grid automatically when the focus moves to the grid.
    • To implement grid-to-grid copy, set the SourceDC and TargetDC property of the FillGrid and the map the source fields to target fields in the MapDetails property.
    • Save the TStruct.


Fill Grid properties

FillGrid properties

A FillGrid is used to pick data from database using an SQL statement and populate it into a grid frame.The properties of a FillGrid are as follows :

Name

The unique name given to the FillGrid.

FromIView

Select False if the FillGrid is based on an 'SQL' or 'GridToGrid' Copy. Select True if the FillGrid is based on an IView and use the Caption property to select the IView.

Caption

The caption may be entered if the FromIView property is set as False. In case the FromIView property is set to True, then all the IViews created in the project are listed. The IView to be attached to the Fillgrid can be selected. In such cases, the IView Name itself acts as FillGrid caption

SQL

In case the FillGrid is based on an SQL, the SQL statement is entered here.The SQL Explorer can be used to generate the SQL. Read More

TargetDC

Select the Target DC from the list. The Target DC is the DC for which the FillGrid is specified. All the grid DCs in the TStruct are listed here for selection. It is mandatory to select a Target DC. The Target and Source DC should not be the same.

MapDetails

The MapDetails is used to map the Source fields and the Target Fields. Read More.

MultiSelect

Set the Multiselect property in FillGrid to True in case only selected rows from the SQL result is to be filled into the grid.

AutoShow

Select True to activate the FillGrid automatically when the focus moves to the Grid DC. In such cases, the FillGrid button need not be created. If False is selected, then the Fill Grid can be activated by defining an action within button click.

SourceDC

To specify a FillGrid with Grid to Grid copy, select the Source DC from the list. All the grid DCs in the TStruct are listed here.

ValidateOnFill

Set this property to False to turn off the automations and validations associated with the InputFields in the DC.By default, the property is set to True.In this case when the SQL result is populated into the grid, the validations will be automatically performed.


Forms

Forms

A data input form is automatically created on defining a Transaction Structure(TStruct). The end user can input data into the Information System through these forms. For each DC in the TStruct,Axpert creates a frame in the Form. The mode of entry for an input field with in a DC will decide the kind of component that appears in the form.

How to create a Form

To create a form,

    • Create a TStruct and define its properties .
    • Add DC(s ) and InputFields .
    • Save the TStruct.
    • To view how the design of the Form looks ,click on the Form Tab.

The Form Designer allows you to design the user interface for your application. The functionalities provided includes : aligning the input fields, changing the font and the background color of the screen. You can also add images, buttons and labels through the context menu. The toolbar for a transaction Form can be customized according to need.

The Group DCs button lets you group different DC together in a single frame under separate tabs.

The Print Form feature makes it possible to save the form in various formats and print them out at run time.

The Tab Order for the various components in the Form can be assigned through the TStruct Definition Screen

To view the form in run mode,

    • Select the Run mode check box at the bottom left corner of the form. To go back to the design mode, uncheck the Run mode check box.


Customizing toolbar and task menu in a Form-Task Lists

Customizing toolbar and task menu in a TStruct Form

The toolbar and the task button for a Transaction Form can be customized according to the requirements.

The Form toolbar contains New, Save, Search, Remove, Print, Preview and Task buttons by default.

How to modify the Form toolbar

To modify the toolbar and the Task dropdown menu ,

    • Click on Tasks button. The Tasks button is activated only in the Form tab

    • In the Task Lists pop up double click on the options to change their status.


Add components to a Form

Add components to a Form

How to add a component to a Form

To add a button,label or image to a Form,

    • Right click on the form and select the relevant component from the context menu.
    • For a button, define the Button properties ;for an image select the image to be loaded ; and for a label specify the caption of the label.

Once a label is added, you can select it and convert it to a hyperlink . This option is available in the context menu of the label.


Expressions

Expressions

Example

Expressions are defined to enforce certain business rules in the application developed using Axpert . They are used for computations, evaluations or for prefixing values for a field .

An Expression may constitute Fields, Functions and Operators and its result is always a value.

For instance, to fix the Discount in an Invoice as 3.25, the Expression may be set as 3.25. To calculate the value of any item in an Invoice, the Expression can be set as Rate* Quantity.

Here are a few common examples of operations where you use expressions:

  • To obtain a calculated value or to establish a validation rule, or to set a default field value for a field in a TStruct or a column in IView
  • To filter records using a criteria or to create a calculated field.
  • To set a condition for carrying out a task or series of tasks in an IView.
  • To calculate the values of parameters in an IView.
  • To obtain results using an SQL statement.

How to create an Expression for an InputField

To create an Expression ,

    • Click on the [...] button in the Expression /ValidateExpression property of an InputField
    • Enter the expression in the space provided

Expressions defined here are calculated / validated during runtime and result is populated into the relevant input field. An Expression should contain only those fields that have been defined earlier in the TStruct.

For instance, to calculate the value of a product purchased, the fields namely 'Quantity' and 'Rate' should be defined prior to the current InputField . In such cases, the values will change dynamically as the change occurs in the 'Quantity' and 'Rate' field.

Note :When the Tab Order is changed, care must be taken to check the order of the 'Expression' fields.

Validating Expressions

Setting the ValidateExpression property of the input field can perform data validations. Refer screen shot above.

The Validate Expression is set in the same way as that of a Expression. The significant difference between the two is that a Validate Expression does not return a Value; it always returns a Flag i.e. either 'T' or 'F'. The ValidateExpression uses the IIF function

Syntax : IIF(Expression, True_Result, False_Result : String)

Usage : Evaluates the expression. If expression returns True, then the True_result is returned else the false_result is returned.

Example :

iif(10 > 5, {Greater}, {Lesser}) -> Greater

iif((10-6) > 5, {Greater}, {Lesser}) -> Lesser

iif(10 < 5, {Lesser 1}, iif(10 < 11, {Greater 2}, {Lesser 2})) -> Greater 2

iif(10 < 5, {Lesser 1}, iif(10 > 11, {Greater 2}, {Lesser 2})) -> Lesser 2

For instance,
In the case of an Invoice, if the quantity field value is to not exceed 300 numbers, then the ValidateExpression property can be set for the 'Quantity' field as
IIF(Quantity < 300, {T}, {F})
By default a system message appears in this case when the condition returns 'F'.

You can also set your own error/warning message in the following manner
IIF(Quantity < 300, {T}, {Item quantity should be equal to or not exceed 300})

Note : In both the above cases, the focus does not move to the next field unless 'T' is returned i.e. correct value is entered.To overcome this, you can specify Validate Expressions that act as 'Warn and Proceed' validations. The error message in the ValidateExpression will be prompted and irrespective of the validation, it will allow the user to proceed (i.e. focus moves to the next field). To achieve this, an ‘_’ is entered before the error message.

For example, ValidateExpression property can be altered to
IIF(Quantity < 300, {T}, {_Item quantity should be equal to or not exceed 300})


Track change

Track changes

Set the Track Changes property to maintain the history of changes made to transactions within a TStruct .

To enable this, select the option button On.

You can track changes based on specific users as well as track changes made to specific fields.

When this property is set to true,the View History option gets activated during runtime.

To view the history at runtime,

    • Select View History from the Task dropdown menu in the relevant page . You'll see the View History window as shown below. This gives the details of modifications made to the TStruct fields.


Tab Order-Form

Tab Order-Form

Tab Order plays a vital role in designing a Form . It is used to set the cursor movement between controls in the TStruct during runtime. The tab order for the various components are set by default in the order of creation and the focus will transverse as the tab order increases. In case you need to alter the tab order of any control you need to use the Tab Order option in the context menu of TStruct definition screen .

How to modify the tab order

To view/modify the tab order,

    • Click on the Structure Tab at the bottom of the TStruct definition screen.
    • Right click and select Tab Order from the context menu

On clicking this option, the Tab Order window will pop up which lists all the controls (DCs and corresponding Input fields) within the TStruct in a Tree format.

To alter the tab order of the DC :

Select the DC and drag it to the required position. On moving the DC, the corresponding fields will also be moved.

Note : The position of the Primary DC cannot be altered.

To change the order of any particular field : Select the field and drag it to the required position. Before setting/changing the tab order of a field, it is important to note that the fields with Expressions that depend on prior fields should be after the independent fields.

For example , the field 'Amount' is a calculated field that is based on the value of Rate and Quantity.Hence, the Amount should have a tab order greater than Rate and Quantity.

Note :
You cannot move a field from one DC to another i.e. alteration of tab order is allowed within a DC only.
To move any field to the end, the field is to be moved to the last but one position and then the last field is to be moved one step up.


Group DCs in a Form

Group DCs in a Form

The Group DCs feature lets you organize data containers in a single frame under separate tabs.With this feature a form could be made to look less cluttered during runtime.

How to group DCs

To group DCs,

    • Click on the Group DCs button in the Form Designer

    • Select the DCs to be grouped from the list provided.
    • Selected DCs can also be grouped under a specific group head using the New group drop down.You can also ungroup a DC and add it to a new group. To ungroup, select the DC and right click.

How to ungroup DCs

To ungroup DCs,

    • Right click within the grouped frame and select Ungroup.


Hyperlink

Hyperlink

A TStruct can have one or more hyperlinks . This allows you to navigate to another page or structure at run time.

How to create a hyperlink in a Form

To create a hyperlink,

    • Add a label to the Form through the Form Designer.
    • Select the label ,right click and select Hyperlink from the context menu.
    • In the dialog that pops up, enter the necessary details.

Input a unique name for the hyperlink.Select the Type (TStruct/IView/Page) and Structure Name and provide the field value pairs(Target and Source). If the Load option is selected ,the transaction that has the given field values will be loaded at run time.If Open is selected the Target TStruct will be opened for data entry at run time.

To load an IView the parameter values should be provided.The column values from the source can be mapped to parameters in the target IView. This will help in navigating to another IView that provides information related to the selected row.

The hyper link can open another structure (TStruct/IView) within the same container. Alternatively, it can also open it in another page. Use the Popup IView/TStruct checkbox for this purpose.


Mask property of InputField

Mask property in InputFields

Example

The mask property is used to specify a certain format for data entry in an InputField during runtime.(eg.telephone number). A mask is used in fields (in forms) to format data and provide some control over what values can be entered.

The input mask definition can contain up to three sections separated by semicolons; for example, (999) 000-0000!;0;*.

Section | Meaning
First | The input mask itself.Refer the table below to read about the Masking elements.
Second | Determines whether to store the literal display characters as part of the data. 0 = Do not store literal characters with the value entered. any other character or leave blank = Store all the characters including literals.
Third | Character that is displayed for blanks or spaces in the input mask. By default, this is the same as the character that stands for literal spaces. The two characters appear the same in an edit window. However, when a user edits the text the cursor selects each blank character and skips over the space character.

For example, the mask for a telephone number with area code could be the following string:

(000)_000-0000;0;*

The 0 in the second field indicates that the saved data would consist of the 10 digits that were entered, rather than the 14 characters that make up the telephone number as it appears in the field.The '*' represents the blank spaces.

The first part of the mask must be a string composed of one or more of the masking elements, as shown below :

Masking element Purpose

! | If this character appears in the mask, optional characters are represented in the text as leading blanks. Otherwise, optional characters are represented in the text as trailing blanks.
> | If a > character appears in the mask, all characters that follow are in uppercase until the end of the mask or until a < character is encountered.
< | If a < character appears in the mask, all characters that follow are in lowercase until the end of the mask or until a > character is encountered.
< > | If these two characters appear together in a mask, no case checking is done and the data is formatted with the case the user uses to enter the data.
\ | The character that follows a \ character is a literal character. Use this character to use any of the mask special characters as a literal in the data.
L | The L character allows only an alphabet (A-Z or a-z) at that position.
I | The l character allows only an alphabet at that position. Optional entry.
A | The A character allows an alphanumeric character (A-Z, a-z, 0-9) at that position.
a | The a character permits an alphanumeric character at that position. Optional entry
C | The C character requires any arbitrary character in this position.
c | The c character permits any arbitrary character in this position. Optional entry
0 | The 0 character requires a numeric character at that position.
9 | The 9 character permits a numeric character at that position. Optional entry.
# | The # character permits a numeric character or a plus or minus sign in this position. Optional entry.
: | The : character is used to separate hours, minutes, and seconds while entering time. If the character that separates hours, minutes, and seconds is different in the regional settings of the Control Panel utility on your computer system, that character is used instead.
/ | The / character is used to separate months, days, and years in dates. If the character that separates months, days, and years is different in the regional settings of the Control Panel utility on your computer system, that character is used instead.
; | The ; character is used to separate the three fields of the mask.
_ | The _ character automatically inserts spaces into the text. When the user enters characters in the field, the cursor skips the _ character.

Any character that does not appear in the list above can appear in the first part of the mask as a literal character. Literal characters must be matched exactly in the edit control. They are inserted automatically, and the cursor skips over them during editing. The special mask characters can also appear as literal characters if preceded by a backslash character \.

Note: When working with multibyte character sets, such as Japanese Shift-JIS, each special mask character represents a single byte. To specify multi-byte characters using the L, l, A, a, C, or c specifiers, the mask characters must be duplicated as well. For example, LL would represent two single-byte alphabetic characters or a one double-byte character. Only single-byte literal characters are supported.

m


Mode of entry in InputFields

Mode of entry(MOE) in InputFields

A MOE defines the manner in which data can be input into the InputField in a Transaction Form at run time.

An input field can have any of the five following Modes of Entry :

1. Accept

2. Calculate

3. AutoGenerate

4. Select

5. Fill


Accept

Accept

Example

This is the simplest and most commonly used MOE and it allows the user to input any data during run time.

How to create an InputField with MOE Accept

To create an InputField with MOE Accept,

    • Add an InputField to the relevant DC within the TStruct
    • Set the DataType and DataWidth properties
    • In the ModeOfEntry ,select Accept from the drop down.
    • Save the TStruct.

Expressions in Accept

By default, an InputField with the MOE Accept will accept any value during runtime. To calculate some value and populate the field by default, attach an expression to the Expression property of this field. In this case the expression will be evaluated and the result will be set as the field value if the field value is empty. In case the field already contains a value, the expression will not be evaluated.

Example

1. Consider the 'Invoice' Form having a 'Narration' field that should display the following message "The invoice amount is : Rs. 20000" on every new transaction. This is achieved as follows :

InputField | Narration
ModeOfEntry | Accept
Expression | {The invoice amount is : Rs 20000}

2. Consider an 'Invoice' Form where the Discount is to be fixed at 3.2%. To achieve this the Expression is set as 3.2.

SQL Statements in Accept

You can also attach an SQL statement to the field.To attach an SQL click on the Details property of the InputField. You'll see the SQL pop up as shown below.

Once the SQL statement is keyed in and saved,at run time, when the user clicks on this field, the SQL will be executed and the value in the first row, first column will be assigned as the value for the field. In case, the end user wants to get the value from the SQL and should be allowed to change the value, then check the Suggestive property check box. In case the end user wants to fire the SQL every time a transaction is entered, check the Refresh On Save check box .The Auto Select option if enabled will display the first value of the result set in the field.

Example

Consider the 'Order Booking' scenario. When an order is booked, the present Stock Quantity is to be inferred to make sales. To achieve this, set the ModeOfEntry as Accept and in the Details Property define an SQL using which the present stock quantity can be displayed in the 'Stock Quantity' field.


Calculate

Calculate

Example

Set the MOE for an InputField to Calculate if you need to compute and calculate the value of the field. It is mandatory to specify an Expression for every Calculate field .

How to create an InputField with MOE Calculate

To create an InputField with MOE Calculate,

    • Add an InputField to the relevant DC within the TStruct
    • Set the DataType and DataWidth properties
    • In the ModeOfEntry ,select Calculate from the drop down.
    • Set the expression in the Expression property
    • Save the TStruct.

For instance, in an 'Invoice Entry' Form, the value of each item is given by multiplying Quantity and the Rate.

InputField | Value
ModeOfEntry | Calculate
Expression | Quantity * Rate

Note : 'Quantity' and 'Rate' are fields prior to the 'Value' field.

Consider another example wherein in a 'Designation Master', we require to maintain unique designations specific to the each department.

InputField Name | Designation
ModeOfEntry | Calculate
Expression | Deptcode+Designation

Note: 'DeptCode' and 'Designation' are fields prior to Designation.

Complex calculations like Stock Evaluation, Heterogenous Tax structures etc. can be implemented using this MOE.


Autogenerate

Autogenerate

Example

There exists certain transactions where numbers need to be unique and in a sequence. For instance, in Invoice generation, every Invoice entered is identified using a unique invoice number. The invoice numbers should be unique and in a sequence like INV-000001, INV-000002 and so on. By maintaining these sequences, the repository of the invoices entered can be organized and tracked.

In Axpert you can auto-generate sequences by setting the MOE of the InputField as AutoGenerate.

How to create an InputField with MOE AutoGenerate

To create an InputField with MOE AutoGenerate,

    • Add an InputField to the relevant DC within the TStruct
    • Set the DataType and DataWidth properties
    • In the ModeOfEntry ,select AutoGenerate from the drop down.
    • In the Details property,define the sequence. See notes below
    • Save the TStruct

It is mandatory to specify the Sequence which is identified by a four character prefix and a unique number ( should not exceed a maximum length of 6) which is generated and concatenated with the prefix. The Sequence should be defined in the Details Property of the InputField. There can be multiple sequences for an InputField,but only one can be active at a time.

When you click on the Details property of MOE-Autogenerate, the Define Sequence window appears.Refer the screen shot below

Enter the following information :

Prefix | Four characters required
Prefix Field | The InputField defined prior to the current field where the prefix is entered at runtime. This is applicable when the prefix is a variable value
Description | Purpose
Starting No. | Any number whose length should not exceed 6
Active | Select True to activate the sequence otherwise select False. Only one sequence can be made 'Active' at a time.
No. of Digits | Number of digits

During runtime, the system automates the sequence number generation by incrementing the current number by one every time a new transaction is entered.

To view/activate/deactivate the sequences at runtime,

    • Click the button next to the Inputfield with MOE AutoGenerate.You'll see the pop up below.

    • Click on Active to change the status.


Select

Select

Example

Set the MOE to Select if you need to retrieve the data from another TStruct,or from a list, or even from another SQL.The corresponding details needs to be defined in the Details Property.

How to create an InputField with MOE Select

To create an InputField with MOE Select,

    • Add an InputField to the relevant DC within the TStruct
    • Set the DataType and DataWidth properties
    • In the ModeOfEntry ,select Select from the drop down.
    • In the Details,select the relevant option. See notes below
    • Save the TStruct.

From TStruct

The Select window shown below appears when the you choose MOE as Select and click on the Details.By default , the From TStruct option would be active.

To get a list of data entered in another TStruct, the TStruct name and a field name is chosen in Select TStruct and Select Field to list in selection window.Based on the selection made,an SQL statement is automatically framed and displayed. This can be altered to suit the requirements. When the data is stored in this field, the record id of the selected record is stored instead of source field value.

Specify the Data source in case you are selecting the TStruct from another schema.

The Auto Select option if enabled will display the first value of the result set in the field.

An Expression can be also be attached to a field with this option using the Expression property. The expression may contain the default value to be displayed at run-time.

For instance, consider the case of Invoice generation. In an 'Invoice' TStruct, assume that there is a field called 'Prepared By' that lists all the employees maintained in the 'Employee Master'. When the Invoice is generated, the login UserName can be retrieved into a field. and this value can be set as the default for the 'Prepared By' field .

The expression in the 'Prepared By' field can be set as IIF(UserName={Sanjay}, {Sanjay}, {Shreyas}). So when 'Sanjay' logs into the system the field 'Prepared By' will always display 'Sanjay'. This avoids selection of the same name every time for invoices generated by Sanjay.

InputField | PreparedBy
ModeOfEntry | Select Details : From TStruct Employee Master, employeename
Expression | IIF(UserName={Sanjay}, {Sanjay}, {Shreyas})

From SQL Result

The following screen appears if you choose the From SQL option in the Details property of the MOE Select.

To get a list of data from an SQL statement, write the SQL statement. During runtime, the SQL result will be displayed as a list of choices. The user can choose from this list. The first column in the SQL statement should be numeric field and this will be considered as the record id. This field will be hidden in the SQL result that is displayed to the user.

click on Save normalized if you want the value in the first column(<tablename>id) of the selected row to be stored in the table.Otherwise, the value in the second column of the selected row will be stored.

Specify the Data source in case you are selecting the TStruct from another schema.

The Auto Select option if enabled will display the first value of the result set in the field.

From List

If the choices are from a list, the list values can be entered.

For this, in the Details property of the field for which MOE is Select,select the option From List and enter the List Values.

Expressions can be also set for fields with Select option - From List.


Fill

Fill

Example

The Fill MOE is used in cases where the InputField value depends on the selection made in a previous InputField.For instance, when a city is selected, the Country name needs to be populated into a field next to it.

How to create an InputField with MOE Fill

To create an InputField with MOE Fill,

    • Add an InputField to the relevant DC within the TStruct
    • Set the DataType and DataWidth properties
    • In the ModeOfEntry ,select Fill from the drop down.
    • In the Details property,enter the Fill Dialog values. See notes below
    • Save the TStruct

The Master is the field based on which the InputField whose Fill MOE has been set will be populated. The Source can be any of the other fields in the selected TStruct or other columns in the SQL statement given in the Master . At run time, when the user selects a value in the Master , the dependent fields are filled automatically.

When you click on the Details property of MOE-Fill, the Fill Dialog appears. Refer the screen shot below..

In the Fill Dialog,the Master drop down list displays all the InputFields defined prior to the present one that have data being retrieved From TStruct or From SQL.Select the relevant one from the list.

The Source drop down displays all the fields in the selected TStruct or SQL specified through Master.

If the Suggestive property is set to True ,you are allowed to modify the value retrieved from the database .This modification will be effective only for the current transaction and will not be applicable to the original data in the table.


Map Text property of MDMap

Map Text property of MDMap

The MapText property of MDMap is used to define the update definition for a Master table.

The map text is a collection of name value pairs as given below:

tablename=<name of the table that needs to be updated>

sourceframe=<dc number based on which update has to be done>

@targetfield1= sourcefield

*targetfield2= sourcefield

+targetfield3= sourcefield

Set the name of the table that needs to be updated into the tablename tag. If the sourceframe is set to a grid dc number, then the update will be done for every row in the grid.

Field names in the map text that are prefixed with @ symbol are called key fields. Axpert will search for the record where keyfield=given value. There can more than one key field.

If a record with matching key values is not found, then a new record is added. The values of each field as defined in the map will be stored.

If a record with matching key values is found, then the fields prefixed (in the map) with * symbol will be replaced with the given value. The fields prefixed with + symbol will be added with the given value.

m


Map property of GenMap

Map property in GenMap

The Map property is used to set the relation between the source fields in the source TStruct and the target fields in the target TStruct .

Click on the Add button to create and Edit button to edit the selected mapping.

Source from

Select from the three listed values

Field : Use this option if the source is a field in the TStruct

Value : Use this option to fix the value of the Target Field

ID : Choose this option if you need to use ID values for posting the information.

Source

Based on the option selected in the Source From list box, select the source field or enter the value to be posted.

Target Field

The field to which the value in the source field needs to be posted.

Target Row

Specifies the position of the Target Field.

In case it lies in the grid, the value 0 is entered and in case of a non-grid, the value 1 is specified.

Group Field

The group field is used to collate the field and post the cumulated numeric value.

Row Control Field

A Row Control Field helps in conditionally posting the information within a Grid

During runtime, the posting of a row is executed based on the value in the field specified here. In case it holds the value 'T' posting is executed and in case of 'F' no posting is done.

To set the RowControlField property,

    • Create an InputField within the relevant grid DC of the TStruct.This InputField should contain either 'T' or 'F' during runtime.The boolean value could be either input directly or generated through an expression/ SQL statement.
    • Click RowControlField button in the Map property dialog. Click Add add the field.For the grid,specify the Target Row as 0 and the select the above InputField from the RowControlField dropdown.
    • Save the TStruct.


GenMap Expressions- OnPost

GenMap Expressions-OnPost

A GenMap Expression is defined in the OnPost property of a GenMap.


SQL Property of FillGrid

SQL Property of FillGrid

Example

The SQL property of a FillGrid is used to fetch the required grid information using an SQL statement.During runtime, theFillGrid could be activated using a button. As soon as the button is clicked, the SQL is fired and the result set is retrieved and filled into the grid.

The FillGrid can be also be made to open automatically on entering the Grid DC by setting the AutoShow property of FillGrid to True. The filling can be controlled by allowing all or selected data.

Enter the relevant query within the pop up and save.Refer screen shot below.

The Suggestive property allows the modification of the retrieved data.Click on the box to set it.If you require the SQL to be fired every time a transaction is entered, check the Refresh On Save check box .The Auto Select option if enabled will display the first value of the result set in the field.


MapDetails Property of FillGrid

MapDetails Property in FillGrid

The MapDetails property of the FillGrid is used to set the relation between the SQL/IView columns in the source and the fields in the target DC.

Click on the Add button to create and Edit button to edit the selected mapping

Source Field : The Source Field relates to the fields specified in the SQL or IView.

Target Field : The target field is the field in the Target DC.

The required fields in the SQL can be mapped to the Target fields. One Source Field may be mapped to more than one Target field. During run time, the fields are filled with information automatically as per the mapped details specified.


Define buttons

Define buttons

The Define buttons dialog pops up when you click on Add Button within the Form Designer or Add Button within the IView .

Caption

The caption to be displayed on the button can be optionally mentioned here.

Action

The action that needs to be executed on button click. The actions need to be created through Action Definition .

Tasks

The task that should be carried out on button click.These tasks are the default functionalities available in Axpert.Select from the list.

Image

The icon that should be displayed on the button should be specified here.

Position

The Position of the image on the button. Select from the list.

Hint

The tip that should be displayed when the mouse pointer moves over the button.

Align

Select the button alignment from the list.

Flat Button, Stick Button

Type of button. Select any one.


Print Forms

Print Form

A Print Form is a text document in which fields from a TStruct can be embedded. Such embedded fields are called Print Fields. A print form will be printed from a TStruct Form during runtime when the user clicks on the Print button. Axpert will replace all the print fields with values entered in the Form. Similarly the print form will be used when the user clicks on the Save As option to save the Form as a document during runtime.

Axpert provides three formats to save a transaction form,

    • DOS
    • MS Word
    • PDF Doc

A Transaction Form can have more than one Print Form. The user will be provided with an option to select the format that needs to be printed or saved during runtime.


DOS

DOS

Help Not Available For This Topic.


MS Word

MS Word

The MS Word feature in Print Form is used to embed data from a transaction into a MS Word file.The Print Form functionality is a part of the TStruct Definition.

How to create an MS Word Print Form

To create an MS Word print form,

    • Create a template in Word with the field locations specified.
    • Select the MS Word File -> New option from Print Form and enter the template document name in the Name textbox.
    • Set the Properties if needed. The Grid Tables property helps in identifying the tables which would be populated with SQL result.Set the Auto Grow property to print all the rows in the SQL Result.
    • Apply the changes.

Note : If an SQL result needs to be printed as a table in MS word document ,first attach the SQL to MS Word print form and then create the word file with the table in it.

How to create an MS Word Template

To create an MS Word template,

    • Open MS Word.
    • Represent the data fields that need to be pasted onto the document as ~fieldname. The fieldname should be a valid field from the tstruct. Arrange the fieldnames in the format as needed.
    • Tables also could be used in the document.This is useful when an SQL Result/Grid is attached to the Print Form.

If the SQL result consists of three columns named col1, col2, col3, create a table in MS Word as shown below and set the Grid Tables property to 1.

Column head 1 | Column head 2 | Column head 3
~col1 | ~col2 | ~col3
~col1 | ~col2 | ~col3
~col1 | ~col2 | ~col3
 |  | ~#col3

    • Save the file with .doc extension.

Notes : Each table in MS Word has a unique serial number starting from 1. If there are three tables in the template and the first table is populated from SQL/Grid then set the Grid Tables property for the Print Form as 1. If more than one table prints results from different SQL statements, then the table numbers can be comma separated . For instance ,Grid Tables property will be 3,4 if the third and the fourth tables are being used for SQL results.

On execution, the above table will be replaced with values from first three rows in the SQL result/Grid. The last line in the table will print the total of the values in that column. If there are more rows in the SQL result, then a new page will be added and the rest of the rows are printed . Before adding the new page, the values of the rest of tags in the same page will be replaced. This kind of a feature can be useful to print on preprinted stationary.

In case all the rows in the SQL result /Grid should be printed before proceeding further, then check the Auto Grow property. In this case ,the table format should be as follows :

Column head 1 | Column head 2 | Column head 3
~col1 | ~col2 | ~col3


PDF Doc Designer

PDF Doc Designer

The PDF Doc designer is a part of the Print Form functionality provided with TStructs.This enables you to design a PDF document into which the TStruct fields can be embedded.

How to create a PDF Doc

To create a PDF document format,

    • From the Print Form option in the TStruct Definition Screen , select PDF Doc.
    • Use the Toolbar to create new PDF and drop text boxes, labels, images and tables onto the document and arrange them the way it is required.

    • The properties for each component can be set in the properties box. Refer the screen shot below.

Note : The above property box is that of a text box component placed on the page.A text box can have a static caption.To print a tstruct field value in a text box, select the source for the text box as field, and select the required field from the drop down.

Printing an SQL Result in a PDF

    • An SQL result can be printed as a table in a PDF document. Attach the SQL statement to the PDF document using the Add SQLs button in the tool bar.

    • In the pop up,enter the Name, select the Type as SQL and key in the SQL Text.
    • Add a table component to the page using Add Table button, select the source SQL, set the number of columns required in the table. Click on the [...] besides the Cols field in the table properties box to customise the columns in the table..

    • Select the fieldname (from sql result), and enter caption and select data type for each column. Refer screen shot below.

    • Apply the changes and save.


IViews

IViews

Pick a topic

IView Definition

IView Properties

Extract Data

Subtotals In IViews

IView Parameter Definition


IView Definition

IView Definition

Properties

Information Views (IViews) are Process Structures that are used for the purpose of data extraction and presentation.An IView is an SQL result that is laid in a tabular format.In simple words, reports are defined as Information Views(IViews).

Every Iview generates an Information form at runtime.

The parameters for the IView can be defined through the IView Parameter Definition .You can access it through the Params tab.

The Subtotals functionality is used to introduce control breaks in a report.

How to create an IView

To create an IView,

    • Define the IView properties . These properties govern the way the report is presented to the user.

    • Define the SQL statement for extracting the data from the tables. Extract Data functionality is used to define the SQL statement/Expression for retrieving the data into an IView. To access the extract data functionality click on [Extract Data] button in the View tab

    • Set the individual column properties of the IView .You can be access it by double clicking within a column. If needed,create hyperlinks for an individual column.This functionality can also be accessed by double clicking within a column and clicking on the Hyperlink tab within the Column Properties popup.
    • Save the IView. Click on the Show Data check box to preview the generated report.


IView properties

IView properties

The properties of an IView are set through the IView properties window.

Name

Name of the IView. Should be unique.

Caption

Caption of the IView.

Report Heading

For an IView, three lines of Report heading can be entered. These will be printed on top of the Report in the order specified. The headings can be static text keyed into the text boxes .They could also be variable values(parameters) embedded in the text within curly braces. Refer screen shot above.

The parameters are created through the Parameter Definition functionality of IViews .

Grand Total

Set this option if the Grand Total is to be displayed in the IView.A Grand Total would be displayed at the end of the IView for Numeric fields only..

Group Field

The result set in the IView can be grouped by defining a Group Field. All rows that have the same value in the Group Field Column will be considered as a View Group. All the rows in a View Group will be collated and displayed as one line in the resulting IView. The collation will be done by summing all the numeric columns in the View Group.

For the fields to be listed in the Group Field drop down, the SQL statement needs to be defined for the IView in the Extract Data

Display Param Window

Activate this check box if you want to view the parameters being used in the IView prior to running it. This will display the parameters in a separate window at run time.

Hide CheckBox Column

Click here to hide the first check box column that appears in the IView.

Hide Columns Line Separator

Show Graph

Check this to add the show graph button to the IView tool bar. This functionality will be activated only at run time.

Caption Column

The Caption Column is used to specify the column in the IView under which the Grand Total is to be printed/displayed.

LoadTStruct

Select the TransId of the TStruct to be loaded.This property enables a TStruct to be associated with an IView.In such cases, the IView will allow the deletion and creation of new transactions from the IView at run time. When a TStruct is associated with the IView, all the tasks and actions pertaining to the TStruct will be available in the IView.

On Click

Select the task to be executed in the case of a Mouse Click.

On DblClick

Select the task to be executed in the case of a double Click


Extract Data

Extract Data

The Extract Data functionality allows you to define the SQL statement/Expression for populating the IView. Axpert allows multiple number of SQL statements or expressions for an IView.Each statement/query or expression will be considered as a separate task and will be executed in the order specified when the IView is generated.

    • Choose the type of retrieval from two values; viz. sql or expr and the input the name of the task.
    • Choose sql if you are retrieving the data with an Sql statement, else choose expr if you intend to execute an expression
    • Enter the Sql statement or Expression in the space provided. You can use parameters to accept data directly from the user.
    • For an Sql statement, click Execute SQL to verify if the statement is correct or not. If the statement is correct, the fieldnames will be displayed in the SQL Result box.
    • To add the columns to IView use the Add SQL columns to View check box.
    • Save and Close to go back to the IView Definition.

Note : After defining the SQL you need to associate the TStruct to which the IView is attached in the IView Properties .

[Params] button is activated only if a parameter is defined in the query.


Column properties-IView

Column properties-IView

An IView is a report in tabular format and hence is made up of columns. Each column within the IView Definition will correspond to a field in the SQL statement defined in the Extract Data .Additionally,you can add expression columns to the IView as per need.

Each column when double-clicked in IView definition opens up the column property window.All the property settings will be listed here. You can set these properties and save the changes, which will have an effect at runtime. The Column Properties also has a Hyperlink Tab which could be used to create hyperlinks for the IView .

How to set the Column properties of an IView

To access the Column properties,

    • Create an IView .
    • In the IView Definition, double click with in a column.

The following are some of the important column properties :

Name

Each column is identified by a Name. The column name will be the same as the field name in the SQL statement.

Caption

The Caption is displayed as the 'Column Heading'. In case, more than one line of column heading is required, the caption string could be embedded with "~" character. The system will display the string following the "~" character in a new line.

Data Type

Effective from Version 7.7.1

Data types of columns added through Add Column in the IView Definition can be specified here.

The data types for columns that are created through the Query will get displayed automatically and cannot be edited.

Decimals

Enter the decimal width in case the Data Type is specified as 'Numeric'.

Table Name

Not applicable for Version 7.7.1

Search Name

Not applicable for Version 7.7.1

Expression

Define expression for the column here. Expression Columns which are not part of the SQL statement can be added to the IView. In such cases, the column value can be derived from a user-defined expression. These expressions are called 'Column Expressions'. The column names before the current column could be used in the expressions.

To add a column to the IView,

    • Click on [Add Column] in the IView Definition.

Running Total

Set this property if running total is required for the column.

Display Total

Set this property if total needs to be computed for the column.

Apply Comma

Set this property if comma should be applied to the numeric columns in the Report.

No Repeat

Set this property if the column with recurring values are not to be repeated.

Column Separator

Set this property if column separator is to be previewed/printed during runtime.

ZeroOff

Set this property if the zero appearing should be replaced by spaces.

Hidden

Columns could be hidden so that only needed columns are displayed.

Column Width

The data width for the column. It can changed to required length.

On DblClick

Select the action to be executed on double click within the column. The action needs to be created through the Action Definition


Hyperlink -IView columns

Hyperlink -IView columns

The Hyperlink feature in the Column Properties of an IView is used to create hyperlinks to other structures.

How to create a hyperlink for a column

To create a hyperlink for a column,

    • Create an IView
    • Double click within the relevant column to bring up the Column Properties pop up . In the pop up, click on the Hyperlink tab.
    • Enter the details as described below.

Input a unique name for the hyperlink.Select the Type (TStruct/IView/Page) and Structure Name and provide the field value pairs(Target and Source). The transaction that has the given field values will be loaded at run time.

To load an IView the parameter values should be provided.The column values from the source can be mapped to parameters in the target IView. This will help in navigating to another IView that provides information related to the selected row.


Subtotals in IViews

Subtotals in IViews are used to introduce control breaks in a report.

To create a Subtotal,

    • A key column is identified.This column is selected from the left hand panel.

All rows that contain the same value in the key column are grouped under a sub heading and a subtotal is displayed. The Header needs to be defined within { }.The subtotal will be displayed against the Footer. The column within the IView in which these headings should be printed is specified in the Caption.

If more than one subtotal is defined for an IView, then the order in which the sub totals are to be displayed are set in the Subtotal Order. The first subtotal to be displayed should be assigned the order 0, the second one 1 and so on.

In the Advance settings,

Multiple lines of heading and footer lines can be added under the Header Lines and Footer Lines respectively. The grid allows you to enter data that will be displayed after the sub heading line and the total line.

Any expressions involving any column names can be set in the expressions tab. The total value for each numeric column can be retrieved using the expression
Tot<subtotalorder>columnname

This can be used to print balances that are required in cases like Accounts ledger or stock ledger.


Customizing toolbar and task menu in an IView

Customizing toolbar and task menu in an IView

The toolbar and the task button for anIView can be customized according to the requirements.

The IView toolbar contains New, View, Find, Remove, Print, Preview and Tasks buttons by default.

How to modify the IView toolbar

To modify the toolbar and the Task drop down menu ,

    • Click on Tasks button in the IView Definition .

    • In the Task Lists pop up double click on the options to change their status.


Add components to an IView

Add components to an IView

How to add a component to an IView

To add a button, text or image to an IView ,

    • Right click on the IView title bar and select the relevant component from the context menu.
    • For a button, define the Button properties ; for an image select the image to be loaded ; and for a text specify the caption of the text.


IView Parameter Definition

IView Parameter Definition

Parameters can be defined in an IView in two ways:

1) Define the parameters as part of the SQL .

2) Define the parameters using the Parameter Definition functionality of IViews

How to define parameters for an IView

To define the parameters for an IView,

    • In the IView definition, click on Params tab.

    • Add a new row and enter the following details as needed on the right hand panel.

Name

Enter the name of the parameter. It should not exceed 15 characters. The name is used as part of the heading or column within {} to retrieve the value of the parameter in the heading.

Caption

Enter caption for the parameter. The caption should not exceed 25 characters.

Data Type

Select the relevant data type for the parameter from the list.

Decimals

Enter the decimal width for the parameter in the case of Numeric Data Type.

Value

The value of the parameter can be specified here. It may be entered/selected based on the Mode of Entry.

Hidden

The parameter can be hidden by marking this checkbox. Ignore if you need to display the parameter.

Expression

Expression for the parameter may be entered here. This is applicable when the parameter values need to be calculated. The parameters names that are listed before a parameter can be used as variables in the expression.

Validate Expression

Validate Expression can be specified to validate the values entered in the parameter and prompt the user with relevant error messages.

SQL

Enter the SQL statement here to retrieve values for the parameter in the IView.
The result set of the SQL is listed as the values for the parameter during run time.

Mode of Entry

Select from Accept, Select or MultiSelect .If the MOE is Accept, then the value is input by the user.

If the MOE is set as Select or MultiSelect, then the values (if any) to be selected are listed. The required value can be selected. The Select and MultiSelect MOE is allowed only if an SQL statement is entered in the SQL text box.


Define Parameters-Extract data

Define Parameters-Extract data

Example

Parameters can be defined in a IView in two ways:

1) Define the parameters as part of the SQL. See notes below.

2) Define the parameters using the Parameter Definition functionality of IViews .

How to define parameters as part of an SQL

To define a parameter as a part of the SQL,

    • Precede it with a colon (:).In such cases the parameters are created automatically.The values for these parameters are accepted in the IView Form before displaying the result.

The Define Parameters popup appears when a SQL statement with a parameter written within the Extract Data is executed using the Execute SQL option.

Note: The [Params] button gets activated only if a parameter is specified in the query.

If the Define Parameters dialog pops up while executing the SQL,

    • Specify the Type and the Value of the parameter with in the popup.

Click the [Params] button to view the Define Parameter popup and to input the parameter value in subsequent executions.


Tab Order-IView parameters

Tab Order-IView parameters

The tab order is used to set the order of preference of parameters to appear at run-time when the IView is displayed .The Tab Order for the IView parameters are assigned using the [Tab Order] functionality within the Parameter Definition of IViews.

The tab order lists all the parameters in the Tree format in the order of the creation.

How to set the tab order

To set the tab order,

    • Select the parameter and drag it to the required position in the Tree to change the tab order.


IView Parameters

IView Parameters

Example

Parameters are used in IViews as part of SQL queries.These queries when executed displays its own dialog box prompting you for information, such as criteria for retrieving records .You can design the query to prompt you for more than one piece of information; for example, you can design it to prompt you for two dates. Axpert can then retrieve all records that fall between those two dates.

Parameter queries are also handy when used as the basis for reports. For example, you can create a monthly earnings report based on a parameter query. When you print the report, Axpert displays a dialog box asking for the month that you want the report to cover. You enter a month and Axpert prints the appropriate report.


Pages

Pages

Pick a topic

Page Design

Containers

Component Properties


Page Design

Page Design

A Page is the actual user interface for any application created using Axpert. Once the TStructs and IViews have been defined, the next task for you as a developer would be to create an interface to integrate the structures of the application so as to make them work at runtime. This is where a Page comes into picture.

How to create a Page

To create a Page,

    • Click on the [Page] button in the Build toolbar to open the Page Design screen.
    • Click [New]
    • Set the Caption property of the page.
    • Add a TStruct , IView or an empty Container to the page. Use the toolbar for this purpose.
    • Set the relevant properties for each container. For TStruct, set the Transid; for IView set the Name
    • Save the page.

The structures that are to be used by the end user are embedded as components onto these pages. The navigation between pages is defined as hyperlink. Hence, an application can be considered as a set of pages with embedded structures and associated actions. The pages created will be displayed in the Navigation Pane in the main window of the application.

The appearance of the page can be changed to suit either the Desktop or Web using the WebView/Desktop toggle button in the Page Design menu bar.

Page Properties

A page has its own set of properties.

To view the properties of a page,

    • Click on Page Properties in the Page Design menu bar.Refer screen shot above.

Following are the properties of a page :

Name

Axpert provides a unique name for each page. Cannot be altered.

Caption

Set the caption of the page here. Caption need not be unique.

Type

The created page could be either a main page or a subpage of a main page. Select either option from the list.

Folder

This property refers to the heading under which the page should be placed. Headings can be created using the Arrange option in the Page Design menu bar.

Image

The image/icon associated with the page. This will be displayed along with the page name on the navigation pane .

Visible

Set this property to True if the page should be displayed at runtime. Otherwise set it to False.


Containers

Containers

A Page can contain one or more TStructs, IViews or both.A TStruct or IView has its own structure container. It could also have components such as Buttons to perform certain predefined actions. Buttons, images or text should be placed within separate containers.

A unique number prefixed by the word ‘Container’ will identify each Container. Each Container can contain only one TStruct or IView. Further, a container cannot be placed inside another container.

Container Properties

Each container has its own properties.

To view the properties,

    • Select the container by double clicking on it.
    • Click [image] [Open Property Window] button in the toolbar.

For a TStruct container, the most important property is Transid. This lists all the defined TStructs within the application. Select the relevant one.

For an IView container, the significant property is Name. This lists all the IViews within the application. Select the relevant one.

In case an empty container is placed components such as Buttons, Images , Text or Combobox could be added to it and the corresponding component properties should be set.


Component properties

Component properties

A component placed within a container has its set of properties.

To view the properties,

    • Select the component.
    • Click [image] [Open Property Window] button in the toolbar.

Button properties

Some of the prominent properties of a button are:

Caption

The caption to be displayed on the button can be optionally mentioned here.

Action

The action that needs to be executed on button click. The actions need to be defined at the page level.

Task

The task that should be carried out on button click. These are the default functionalities available in Axpert.Select from the list.

Relations

The relation associated with the button. The relations need to be defined at the page level.

Image

The icon that should be displayed on the button should be specified here.

Position

The Position of the image on the button. Select from the list.

Hint

The tip that should be displayed when the mouse pointer moves over the button.

Image properties

The most important property of an image component is Image. Click here to select the image to be loaded.

Text Box properties

The most important property of a Text Box component is Caption. Type the caption to be displayed on the text box here.

ComboBox properties

The most important property of a ComboBox component is Items. Indicate the items to be listed in the ComboBox here.


Arrange Pages

Arrange Pages

The Arrange functionality is used to set the order of appearance of pages in the Navigation Pane. The order is defined/altered using the [image] button in the Page Design Menu Bar .

The Arrange Pages pop up lists all the pages in the Tree format in the order of creation.

How to alter the page order using Arrange

To alter the page order,

    • Select the page and drag it to the required position in the Tree .
    • Use the Add Head menu option to add a new heading .The new heading is identified as folder and will be listed in the Folder property of the page
    • Use the Remove menu option to remove a selected page from the list.


Relations

Relations

The Relations functionality is used to set a relation between two or more structures within a page.At runtime, data is displayed taking the relation into consideration.

How to define a Relation

    • Select the Master structure (TStruct or IView) and the structure name from the dropdown.
    • Select the Detail structure and the structure name.
    • Specify the Container
    • The Auto Refresh when checked will display the details dynamically.For instance when the first row in the IView is selected, the corresponding TStruct detail gets loaded in the Detail structure.
    • Apply and save the page.

Case 1 : To display the Product information in a TStruct when a Product name in an IView is clicked - set the product list as the IView and Product Master as TStruct and select the common field between master and details as the Relate to field , clicking on which the details of the TStruct will be displayed accordingly.

The Relate to field in relation would directly relate the fields between two structures if both of the fields corresponds to the same schema field names. But if the relation needs to be set between an item name and item code the mapping comes into picture, the source and the target need to be selected, by specifying params or (:) names.

Case 2 : To display all the details(purchase order, invoice and voucher) related to one Item Master - set the Item Master as Tstruct Master in relations. The detail entry would be one or more iview/tstruct where the item is related .For this multiple relations need to be defined . The relation can be defined in a button at page level and the related items can be mapped.


Set Language

Set Language

Set Language feature lets you select a language and define the captions and hints for an existing TStruct/IView/Page in the selected language.


Schedule Action

Schedule Action

The Schedule Action functionality in the Build toolbar is used to define and schedule actions to be executed at predefined time intervals.

The Define Scheduled Actions screen is similar to the Action definition in usage and functionality.

Execute action on this Sql result set enables the action to be executed on a set of SQL statements.

How to schedule an action

    • Once the action is defined, use the Schedule button to bring up the Schedule Action dialog.
    • Specify whether the action is to be executed monthly,weekly or daily; the day of execution and the time of execution.
    • Save the schedule.


Create TStruct

Create TStruct - Examples

Follow the instructions given in the TStruct Definition to create a TStruct and enter the following details.

Supplier Master TStruct

Type | Name | Caption | Properties
TStruct | supp | Supplier Master | TransId = supp
DC | dc1 | Supplier Details | TableName= suppliers
InputField | SupplierName | Supplier Name | DataType = Character, DataWidth=50,AllowEmpty=False, AllowDuplicate = False
InputField | Address | Address | DataType = Character, DataWidth= 150
InputField | Taxno | Tax no. | DataType = Character, DataWidth = 10

    • Save the TStruct.
    • When asked if to create a page automatically, click [Yes].
    • Click on the Form tab to view the field alignments,modify if needed and click [Save]
    • The above steps creates a table called Suppliers in the database.

The fields defined in the TStruct correspond to the fields in this table.

In addition to this, a field name suppliersid will be created in which a unique number will be generated and stored.

This field is used to relate to other tables in the database and is the primary key for the table.

Repeat the above steps to create the TStruct as mentioned below.

Customer Master TStruct

Type | Name | Caption | Properties
TStruct | cust | Customer Master | TransId = cust
DC | dc1 | Customer Details | Table Name= Customers
InputField | CustomerName | Customer Name | DataType = Character, DataWidth=50 ,AllowEmpty=False, AllowDuplicate = False
InputField | Address | Address | DataType = Character, DataWidth= 150

Similar to the Supplier Master form, an input form can be seen for Customer Master . The Customers will be created in the database in a manner similar to the Suppliers table.


Examples for MOE

Examples for MOE

Use the following details to create some sample TStructs :

Product Master TStruct

Type | Name | Caption | Properties
Tstruct | Prod | Product Master |
DC | dc1 | Product Details | TableName = Products
InputField | ProductName | Product Name | Data Type = Character, DataWidth = 50,AllowEmpty=False, AllowDuplicate = False
InputField | Unit | Unit | Data Type = Character, Data Width = 10 ModeOfEntry = Select Click on Details and set as : From list ,Listvalues = [Nos , Kgs , Lts ]
InputField | SellingRate | Selling Rate | DataType = Numeric , DataWidth = 10 , Decimal = 2
InputField | PurchaseRate | Purchase Rate | DataType = Numeric , DataWidth = 10 , Decimal = 2

Purchase Bill TStruct

Type | Name | Caption | Properties
Tstruct | Pbill | Purchase Bill |
DC | dc1 | Header | TableName = Pbill1
InputField | DocNo | Document No. | Data Type = Character, Data Width =10 ModeOfEntry = AutoGenerate Click on Details Property and set as : Prefix = Pur- Description = Sequence for Pbill Starting No = 1 Active = True No.of Digits = 4
InputField | DocDate | Date | Data Type = Date/Time Expression = Date( )
InputField | Supplier | Supplier | Data Type = Character, Data Width =50
InputField | SAddress | Address | Data Type = Character, Data Width =150
DC | dc2 | Details | TableName = Pbill2
InputField | Product | Product | Data Type = Character, Data Width =50 , ModeOfEntry = Select Click on Details and set as : From TStruct Select TStruct = Product Master Select Field to list in Selection Window = ProductName
InputField | Unit | Unit | Data Type = Character, Data Width =10 , ModeOfEntry = Fill Click on Details and set as : Master = Product Source = Unit
InputField | Qty | Quantity | DataType = Numeric , DataWidth = 10 , Decimal = 2 ModeOfEntry = Accept ValidateExpression : iif(Qty > 0 , {T}, {Qty should be greater than zero } )
InputField | Rate | Rate | Data Type = Numeric, Data Width =10, Decimal = 2 ModeOfEntry = Fill Click on Details and set as : Master = Product Source = PurchaseRate
InputField | Amount | Amount | Data Type = Numeric, Data Width =10, Decimal = 2 ModeOfEntry = Calculate Expression = Qty * Rate

    • The system creates 2 tables Pbill1 & Pbill2. These have been specified as table names for the 2 DCs in the Purchase Bill TStruct. These 2 tables are related through the Pbill1Id. This means that the primary table’s (Pbill1) primary field (Pbill1id) is created in all the tables related to the TStruct.

    • The mode of entry for the DocNo field is Autogenerate. So, during runtime this field will be populated with a sequential number that is generated by the system according to the sequence specified by you. The number that is generated will have a 4 character prefix. Click on the sequence property to set the prefix, sequence.

    • An expression is attached to the DocDate field. The expression will be evaluated and its result will be populated into the field. The user may change this value if needed. In this case, the date function returns the current date. So, the docdate field will be populated with current date suggestively.

    • Note the properties of Product Field

ModeOfEntry = Select

Click on Details and set as : From TStruct

Select TStruct = Product Master

Select Field to list in Selection Window = ProductName

This definition provides a pick list from which the end user can choose,in this case, the productname.In this method,the product name will not be stored in the database. Instead a reference to the product will be stored i.e the primary field of the table in which the product name exists will be stored in this field (Productsid) . Thus , a relationship is established between the Pbill1 table and Products table.

    • Note the properties of Unit field.

Data Type = Character, Data Width =10 ,

ModeOfEntry = Fill

Click on Details and set as :

Master = Product

Source = Unit

The Unit (defined as the Source) is populated automatically into the Unit field on the basis of the selection made in the Product Field.

    • The Qty field has a Validate Expression. Axpert will evaluate this expression and consider the value entered in the field to be valid if the result of this expression is T. If the result is F, then it will display the message.

    • An Expression is attached to the Amount field. In this case the expression result is populated into the field. Here the ModeOfEntry is Calculate, which means that the user cannot modify the value.


Examples of Input Masks

Examples of Input Masks

The following table shows some useful input mask definitions and examples of values you can enter into them. Refer to Mask Property in InputField for details on the codes used to create input mask definitions.

Input mask definition | Examples of values
(000) 000-0000 | (227) 123-6618
(999) 999-9999! | (227) 123-6618
 | ( ) 123-6618
(000) AAA-AAAA | (227) 123-TELE
#999 | -20
 | 2000
>LLLLLLL000L0 | RECEIPT339M3
>L0L 0L0 | T2F 8M4
00000-9999 | 98115-
 | 98115-3007
>LL00000-0000 | DB51392-0493


Examples for Expressions

Examples for Expressions

Examples of default values in fields

Field | Expression | Default field value
Quantity | 10 | 10
Country | India | India
Pvalue | 10*20 | 200
Order Date | Date( ) | Today's date

Examples of arithmetic operations in Forms and IViews

The following table lists examples of expressions that you can use in calculated fields on forms and IViews

Expression | Result
Pvalue + 10 | Adds a constant to the Pvalue field
Quantity * Rate | The Product of the values of the Quantity and Rate fields.
Price - Discount | The difference between the values of the Price and Discount fields
Pvalue/100 | Divides the Pvalue field by 100

Examples of validation expressions

The following table lists examples of expressions that you can use for validations on forms and to return boolean values to fields.

Expression | Description
IIf(Confirmed = {Yes}, {Order Confirmed}, {Order Not Confirmed}) | Uses the IIf function to display the message "Order Confirmed" if the value of the Confirmed field is Yes; otherwise, it displays the message "Order Not Confirmed"
iif(Qty > 0 , {T}, {Qty should be greater than zero } ) | Uses the IIf function to display the message "Qty should be greater than zero" if the value of the Qty is negative; otherwise, the value is considered as validated


MDMap Illustrations

MDMap Illustrations

Illustration 1 : Stock Updation in the Stores

One of the importants tasks carried out within a store is the issue of Items. When an issue is made, the stock is to be reduced. There would be two TStructs, namely 'Inventory Master' where all the items are maintained and an 'Item Issues' TStruct where the items issued are recorded. When an item issued is saved in the 'Item Issues', the opening quantity of this item is to be reduced in the 'Inventory Master'.

Detail TStruct - Item Issues

Master TStruct - Inventory Master

The requirement is to update the Master TStruct with the information saved in the Detail TStruct.

    • Create the Inventory Master (Master TStruct having a single non-grid DC) .
Type | Name | Caption | Properties
TStruct | invnt | Inventory Master | TransId = invnt
DC | dc1 | Master | TableName= inventory
InputField | ItemCode | Item Code | DataType = Character, DataWidth=15,AllowEmpty=False, AllowDuplicate = False
InputField | ItemName | Item Name | DataType = Character, DataWidth=50,AllowEmpty=False, AllowDuplicate = False
InputField | OpeningQty | Opening Qty | DataType = Numeric
InputField | IssueQty | Issue Qty | DataType = Numeric
InputField | Rate | Rate | DataType = Numeric
    • Create the Item Issues (Detail TStruct having a single non-grid DC) .
Type | Name | Caption | Properties
TStruct | item | Item Issues | TransId = item
DC | dc1 | Detail | TableName= itemissue
InputField | ItemCode | Item Code | Data Type = Character, Data Width =15 , ModeOfEntry = Select Click on Details and set as : From TStruct Select TStruct = Inventory Master Select Field to list in Selection Window = ItemCode
InputField | ItemName | Item Name | Data Type = Character, Data Width =10 , ModeOfEntry = Fill Click on Details and set as : Master = ItemCode Source = ItemName
InputField | IssueQty | Issue Qty | DataType = Numeric
    • In the Item Issues TStruct, insert a Master Detail Map control.Set the properties as follows :

Caption = StockIssueUpdate

MasterTransaction = Inventory Master

Master Field = OpeningQty

Detail Field = IssueQty

MasterSearchField = Default

Detail Search Field = ItemCode

Update Type = Less

    • Save the TStruct definition .
    • In the run mode, open the 'Inventory' Form and enter all the items. Make a note of one item and its Opening Quantity (Assume that for Item C, the opening quantity is 2000). Close the Inventory Master.
    • Open the 'Item Issues' Form and enter the issue made. Let the issue quantity for the Item C be 1000. Save the information entered and close the form.
    • Open the Inventory Master and navigate to the Item C Details to view the change.The Opening Quantity will be displayed as 1000.

Note: In the definition the Relation Field in master has been specified as 'Default' .In this case the Primary Field of the Master table will be considered as the Relation field in Master Document. The relation field in the Detail is mentioned as ItemCode which means that the ItemCode field in the Item Issue relates to the Primary Key in the Master.

Illustration 2 - Conditional Updation of stock

The inventory master in a store gets updated when items are purchased. When a receipt is entered,the received quantity is to be added to the item quantity based on the user's choice.If user enters 'Yes' the quantity should be added to the item quantity or else no updation takes place.

There would be two TStructs - an Inventory Master to maintain all the items and an Item Receipt for recording all the Items received.

Detail TStruct - Item Receipt

Master TStruct - Inventory Master

    • Create the Inventory Master (Master TStruct having a single non-grid DC) with fields like the ItemCode, ItemName, Opening Qty and Rate. See illustration 1.
    • Create the Item Receipt (Detail TStruct having a single non-grid DC) with fields like the ItemCode, ItemName and Receipt Quantity.

Type | Name | Caption | Properties
TStruct | Recpt | Item Receipt | TransId = Recpt
DC | dc1 | Detail | TableName= itemreceipt
InputField | ItemCode | Item Code | Data Type = Character, Data Width =15 , ModeOfEntry = Select Click on Details and set as : From TStruct Select TStruct = Inventory Master Select Field to list in Selection Window = ItemCode
InputField | ItemName | Item Name | Data Type = Character, Data Width =10 , ModeOfEntry = Fill Click on Details and set as : Master = ItemCode Source = ItemName
InputField | ReceiptQty | Receipt Qty | DataType = Numeric

    • Insert a field called the StockUpdate with ModeOfEntry - Select ( From List) . List values are Yes, No
    • Insert a field called UPField with MOE - Calculate where the Expression is set as follows
      IIF ( StockUpdate = {YES}, {T},{F})
    • In the Item Receipt TStruct, insert a Master Detail Map control.Set the properties as follows :

Caption = StockReceiptUpdate

MasterTransaction = Inventory Master

Master Field = OpeningQty

Detail Field = ReceiptQty

MasterSearchField = Default

Detail Search Field = ItemCode

Update Type = Add

Control Field = UPField,Hidden = True
    • Save the TStruct definition .
    • In the run mode, open the 'Inventory' Form and enter all the items. Make a note of one item and its Opening Quantity (Assume that for Item C, the opening quantity is 1000). Close the Inventory Master.
    • Open the 'Item Receipt' Form and enter the receipt made. Let the receipt quantity for the Item C be 3000. Save the information entered and close the form.

Based on the value in the StockUpdate field updation may or may not take place.

Case 1 :If 'YES' is selected in the field StockUpdate in the Inventory Form , it could be seen that the opening quantity for the Item C is updated with the receipt quantity ( 4000 will be displayed).

Case 2 : In case the StockUpdate is set as 'No' , then the stock is not updated. In the Inventory Master the quantity for Item C will remain unchanged (1000).

m


FillGrid Illustration - Using SQL

FillGrid Illustration-Using SQL

Illustration 1 : Retrieval of employee details for PaySlip generation.(Using SQL)

In any organization ,the monthly pay-slip generation task requires the employee details to be retrieved from the master into a tabular format.The 'Employee Master' is used to maintain the details of all the employees and the 'Payslip' TStruct contains their salary details.

    • Create a sample Employee Master with the following details
Type | Name | Caption | Properties
TStruct | Emp | Employee Master | TransId = Emp
DC | dc1 | Master | TableName=empmast
InputField | EmpId | Employee Id | DataType = Character, DataWidth=15,AllowEmpty=False, AllowDuplicate = False
InputField | EmpName | Employee Name | DataType = Character, DataWidth=50,AllowEmpty=False
InputField | Basic | Basic | DataType = Numeric
InputField | DA | DA | DataType = Numeric
InputField | HRA | HRA | DataType = Numeric

    • Create the Payslip TStruct with the following details :

Type | Name | Caption | Properties
TStruct | Pay | Payslip | TransId = Pay
DC | dc1 | Month | TableName=Month AsGrid = False
InputField | Month | Month | DataType = Character, DataWidth=15,AllowEmpty=False
InputField | Year | Year | DataType = Character, DataWidth=50,AllowEmpty=False
DC | dc2 | Pay Details | TableName=PayDet AsGrid = True
InputField | Employee | Employee | DataType = Character, DataWidth=50
InputField | Basic | Basic | DataType = Numeric
InputField | DA | DA | DataType = Numeric
InputField | HRA | HRA | DataType = Numeric
    • In the Payslip TStruct, insert a FillGrid control .Set the properties as follows.

Caption = Fill Employees

SQL = SELECT EmpId, EmpName, Basic,DA,HRA FROM empmast

TargetDC = dc2

MapDetails :

SQL Fields Field in the PaySlip
EmpName Employee
Basic Basic
DA DA
HRA HRA

AutoShow = True
    • Save the Tstructs and enter some records into the Employee Master.
    • During runtime, open the PaySlip Form and move the focus to the grid. The SQL specified is fired and the result set

of the SQL(all the employee details) gets displayed. All or selected data can be filled into the grid from the pop up.Complex SQL's can also be written to achieve all the required information


FillGrid Illustration-From IView

FillGrid Illustration-From IView

The FillGrid -From IView option is used in cases where the data in the FillGrid comes from a multiple number of tables or TStructs

Illustration 2 : Retrieval of employee details for PaySlip generation.(Using IView)

In a large organization, the monthly pay-slip generation task requires the employee details and other details such as leave encashment,bonus and loan details to be retrieved from various tables into a single grid. Writing an SQL to retrieve data becomes rather tedious and time consuming in such cases .In situations like these, an IView could be used to gather the data.

    • Create an IView which retrieves all the necessary details.
    • In the PaySlip Tstruct ,create all the required fields under a grid DC and add a FillGrid component.
    • Set the From IView property of FillGrid to True.
    • In the Caption, select the IView from the list.
    • Map the IView columns and the grid fields in the PaySlip TStruct.

This also gives the user the advantage of using all the features provided in IView which are absent in an SQL.


FillGrid Illustration-Grid to Grid

FillGrid Illustration-Grid to Grid

The Grid to Grid fill option is used in cases where the source data is located in the tabular form within the same TStruct.. The SourceDC is the DC from which the information gets copied.The destination DC is specified as TargetDC. The fields of the Source DC can be mapped to the relevant field(s) in the Target DC using the MapDetails property.


GenMap Illustrations

GenMap Illustrations

Illustration 1 : Maintaining Supplier and Contact details within a manufacturing organization.

A manufacturing organization may have a number of suppliers who supply various raw materials for its use.

The 'Stores' division of the Company maintains a data bank of these Suppliers . The Company also maintains a data bank of all Contacts. All the Suppliers known to the Stores are also maintained as Contacts in addition to customers and other parties.When a new Supplier is added to the Stores data bank, the same information should be posted to the Contacts list.

There would be two TStructs, namely the 'Supplier Master' to accept the Supplier Details and a Contact Master to maintain the contact information.Since all the Suppliers are being maintained as Contacts, when a supplier information is created and saved in the Supplier Master,the Contact Master also should be updated simultaneously.

Source TStruct - Supplier Master

Target TStruct - Contact Master

    • Create the Supplier Master with the following fields
Type | Name | Caption | Properties
TStruct | Supp | Supplier Master | TransId = Supp
DC | dc1 | SMaster | TableName=suppmast
InputField | SuppCode | Supplier Code | DataType = Character, DataWidth=15,AllowEmpty=False, AllowDuplicate = False
InputField | SuppName | Supplier Name | DataType = Character, DataWidth=50,AllowEmpty=False
InputField | SAddress | Supplier Address | DataType = Character , DataWidth = 50
InputField | CPerson | Contact Person | DataType = Character, DataWidth = 50
InputField | CAddress | Contact Address | DataType = Character , DataWidth = 50
InputField | CDesignation | Designation | DataType = Character
InputField | CDepartment | Department | DataType = Character
InputField | CPhone | Phone | DataType = Character
InputField | CEmail | Email | DataType = Character

    • Create the Contact Master with the following fields :

Type | Name | Caption | Properties
TStruct | Cntct | Contact Master | TransId = Cntct
DC | dc1 | CMaster | TableName=cntctmast
InputField | CCode | Contact Code | DataType = Character, DataWidth=15,AllowEmpty=False, AllowDuplicate = False
InputField | CName | Contact Name | DataType = Character, DataWidth=50,AllowEmpty=False
InputField | CAddress | Contact Address | DataType = Character , DataWidth = 50
InputField | CDesignation | Designation | DataType = Character
InputField | CDepartment | Department | DataType = Character
InputField | CPhone | Phone | DataType = Character
InputField | CEmail | Email | DataType = Character

    • In the source(Supplier Master ) insert a GenMap component and the set the properties as follows :

Caption = Post Supplier To Contact

Target TStruct = Contact Master

Based On DC = dc1(SMaster)

Active = True

Map : Click on the [...] button and map details as follows.

Source from : Field

Source | Target field
SuppCode | CCode
CPerson | CName
CAddress | CAddress
CDesignation | CDesignation
CDepartment | CDepartment
CPhone | CPhone
CEmail | CEmail

    • Save the TStruct definition.
    • In the run mode, open the Supplier Master Form and enter data.
    • Open the Contact Master and verify if the corresponding record has been posted.

Illustration 2 : Conditional Posting of records.

Assume that in an organization , the suppliers are categorized into 'Regular Suppliers' and 'One-time Suppliers'. The requirement in this case is to maintain only Regular Suppliers as Contacts.

To implement conditional posting,

    • Insert a field called SuppType into the Supplier Master with MOE-Select (From List) . List values are Regular, OneTime.
    • Insert another field called PCField with MOE-Calculate and set the Expression as IIF (SupplierType = {Regular}, {T},{F}).
    • In the GenMap component inserted into Supplier Master(See Illustration 1) set the ControlFieldName property to PCField.
    • Save the TStruct.
    • Open the Supplier Master Form and enter the Supplier Information. Select the Supplier Type as 'Regular' and it can be seen that the PCField is instantly populated with 'T'. On saving , the supplier information is posted in the Contact Master. Open the Contact Master to verify if the information on the Supplier is present.

      Tip : The PCField may be hidden after values are checked for Gen Map specified.


Examples for Parameters in IViews

Examples for Parameters in IViews

Consider a TStruct with following details

TransID : Inv .

Primary DC -Table name : Inv1

Fields : InvNo, InvDate,CustomerName, Address

DC2 - Table name : Inv2

Fields : ItemName , Qty, SellingRate, Amount

Assume that CustomerName is selected from the CustomerName field in the Customers table. The ItemName is selected from the ItemName field in the Items table.

Case 1 : To produce an IView Form which gives a list of invoices entered between two given dates the following SQL is defined as part of the IView :

Select A.Inv1ID, A.InvNo, A.InvDate, B.CustomerName, C.ItemName, D.Qty, D.SellingRate, D.Amount

From Inv1 A, Customers B, Items C, Inv2 D

Where A.Inv1Id = D.Inv1id and A.CustomerName = B.CustomersID and

D.ItemName = C.ItemsID and

A.InvDate >= :StartDate and A.InvDate <= :EndDate

Order by B.Customername, A.InvDate

The StartDate and EndDate which are preceded with a " : " are considered as Parameters. The values for these parameters are accepted in the IView Form before displaying the result.


Actions

Actions

Pick a topic

Action Definition

Tasks


Action Definition

Action Definition

The structures (TStructs,IViews) describe the various entities and their relationships between them. However, these structures themselves can only describe static data that display information to end user. An application is expected to perform various functions. These are described as actions. Actions are collections of simple tasks that are combined together with business rules. Actions work on the data elements in the structures.

Actions constitute a set of tasks as well as conditions defined sequentially in an order . Tasks are a set of basic software functions .For instance sending email, transforming data into different data formats like MS Word, restricting access to data based on business rules, printing a form and running a web service .Conditions are those rules based on which the tasks are executed.If constructs are used to specify conditions.

The actions can be assigned to a button and executed through its click events or through other events. The user can define an action within a Page, a TStruct or an IView.To define an action for a TStruct or an IView use the Actions tab within the TStruct Definition Screen and IView Definition .For a page, click on the Action button within the Page Design menu bar .The Action Definition is similar for all the three except for some minor variations.

Each type of Process Structure (TStruct,IViews) has its own set of tasks that needs to be defined . The combined set of tasks will be available in page action. There is also another set of tasks which is available only at run-time for IViews/Tstructs (Eg. Print, Preview, Find etc) .

Actions can also be Scheduled to execute at prerecorded time interval using the Schedule Actions functionality in the Build Tool bar.

How to create an Action

To create an Action,

    • Specify the Action name in the text box.
    • In the command column, Select the desired command . For example, if user wants to specify condition, select “IF” command. If the user wants to specify a task in the Values column, select “Do” command.
    • For each task, the detail that needs to be input varies. This is reflected in the right hand side panel .You can define the details for each task and click [Apply].

Note : Only when applied, the task details would get updated. Otherwise you'll be prompted to apply the previous task

    • For a TStruct, you can optionally specify the Event for which the action should be executed in the Event list box.For an IView, the action can be Applied on selected rows .In this case, the action will not execute based on the event.It'll have to be assigned to some component’s action (ie button) to execute.
    • Click Apply to save the action.
    • Save the structure.

Note : There is also an Execute on web option that is used for web.When the option is checked, it handles client validation for the components in web.

The Confirmation msg before execution is also for web, where the execution is based on pages. When an action is to be executed on a web-page,you can specify a confirmation msg like “Do u want to proceed?” to proceed to the next page.If this is not provided a default message appears before the user.

The Validate before execution option is used to validate data before executing an action in a TStruct/ IViews.


Tasks

Tasks

This section lists out the basic tasks provided by Axpert. These tasks are used along with commands to create actions. The actions are then used with various events such as button click within an application.Click on any of the task name within the Tasks folder in the Table of Contents to read about it


Attach

Attach

Attach will attach files to a transaction. It can be one or more files of any type.Multiple file names need to be separated with comma.The filenames accept wild card characters.

    • If this task is defined as part of a TStruct, the Attachment property of a TStruct should be set to True.
    • If the task is being defined within an IView, the Attachment property of the associated TStruct should be set to True.


Cancel Transaction

Cancel Transaction

Cancel Transaction will mark the current transaction as cancelled. The updates done through MDMap will be reversed and the transactions generated through GenMaps will be marked as cancelled.

If Cancel task is called from IView or Page, the record from the associated TStruct will be marked as cancelled. Any update done through MDMap will be reversed and the transactions generated through GenMap will be marked as cancelled.


Close Window

Close Window

Used to close the pop up window. Applicable only when TStruct or IView form is opened as a pop up


CSV Import

CSV Import

Used to import the CSV file to TStruct. You need to provide the target TStruct, file name or structure variable and the mapping. If the column information exists within the file as the first line, check the Map In File option.


DBF Import

DBF Import

Used to import the DBF file to TStruct. You need to provide the target TStruct, file name or structure variable and the mapping


Delete Row

Delete Row

This task can be used to delete rows from a grid DC in a tstruct. The task can delete all rows that satisfy the given condition. The condition can be specified based on any field in the Grid DC.


Delete Transaction

Delete Transaction

Delete Transaction will purge the current transaction. The updates done through MDMap will be reversed and the transactions generated through GenMaps will be purged.

If Delete task is called from IView or Page, the updates done through MDMap will be reversed and the transaction generated through GenMaps will be purged.


EMail

EMail

Sends EMail.

If this task is defined within a TStruct,

The transaction data will be send as email in Word/PDF/HTML format. If the Prompt at runtime checkbox is checked, it will prompt before sending the email. The attachments of the Tstruct are attached if you enter a __* in Attach field. For all word documents to be attached you need to enter w__* and for all PDF documents p__*. The structure variables can also be used in all fields (To, CC, Subject, Attach and Body)

If this task is defined within an IView,

An email will be sent with the IView result as an attachment. In addition, if there is an associated TStruct, mail will be sent for every selected row. The email can contain the data from TStruct and its attachments.

If this task is defined within an Page,

An email will be sent depending on the associated TStruct or IView in that page


Field Access

Field Access

This task allows you to enable/disable/show/hide selected DC, field or button.These can be selected from the list of DCs, Fields and the buttons.Applicable only to TStructs.


Fill Grid

Fill Grid

Fill Grid will execute the selected Fill Grid Map. If there are no FillGrids in the TStruct, the task will not be listed.Applicable only to TStructs.


FTP Download

FTP Download

Used to download one or more FTP files from the specified IP Address to the Target.


FTP File Delete

FTP File Delete

Delete one or more files at remote location through FTP service.


FTP Folder Create

FTP Folder Create

Creates folder at remote location through FTP service.


FTP Upload

FTP Upload

Used to upload one or more Source FTP files to the specified IP Address.


Load Transaction

Load Transaction

Loads the Transaction form with Transaction data from the TStruct tables. The transaction that matches the given field values is loaded.


New

New

This task is used to clear the TStruct form. Not applicable for associated TStructs in an IView.


Open TStruct

Open TStruct

Open TStruct opens a new TStruct form with the default values provided in the Details during action definition .


Open IView

Open IView

Opens an IView form for the given parameter values . If parameter value not specified, all the values will be displayed.


Page Load

Page Load

Loads the page with the default values for the TStructs and IViews in that page. The default values are provided in Details panel during Action Definition .


Page Open

Page Open

Similar to Page load except a new form (in case of TStruct) will be displayed with the default values provided in this task form.


PDF

PDF

Prints the TStruct data in the provided PDF format. The user can provide the file name or Structure variable.

If the Show PDF check box is checked it will be displayed in the pdf reader as well after saving the file.

In case of IViews the data will be selected from the associated TStruct


Post

Post

Used to post the values from the IViews to the TStruct. The mapping, grouping column and TStruct name are provided in the form. Used in IViews.


Preview Form

Preview Form

Displays the TStruct Form in the selected Print format .

p


Print Form

Print Form

Prints the TStruct Form in the selected print format .


Refresh

Refresh

Refreshes the page.


Remote Del

Remote Del

Deletes the record in the remote system. The TStruct is provided as TransId and the record id is provided in the parameters. Used in TStructs.


Remote ExecSql

Remote ExecSql

Executes the SQL statements provided in the task at the remote location. Used in TStructs.


Remote Load

Remote Load

Loads a specific record in the remote system.

Used in TStructs.


Remote Save

Remote Save

Saves the record in the remote Axpert system. The field mapping can be provided.

Used in TStructs.


Save

Save

Saves the current record.


Save As

Save As

Similar to save, but a copy is saved as a new record.


Send

Send

Sends mail to select users or user groups. The message can be provided in the form. Optionally the transaction record can be attached. If it is sent from an IView, the associated TStruct record will be sent.


Set Value

Set Value

Sets the value to a field in a TStruct.


Show Message

Show Message

Used to show message to the user.


User Defined Task

User Defined Task

You can define a task constituting a set of expressions.These expressions can use structure variables and all the default functions provided by Axpert.


XCall

XCall

This task is used to call any webservice.The URL name, the service name,the return type and the parameters need to be supplied in the details panel.


Commands

Commands

Each task within an action can be executed either conditionally or unconditionally.

Commands are used to indicate conditional or unconditional execution and are part of the Action Definition .

The available commands and their syntax is as given below :

Do <task> : Executes the selected task unconditionally

If <condition>

Do <selected task> : Executes the selected task if the condition is satisfied

If <condition>

Do <task 1>

Else

Do <task 2> : Executes task 1 if the condition is satisfied else executes task 2.

If <condition 1>

Do <task 1>

Else if <condition 2>

Do <task 2> : Executes task 1 if the condition is satisfied else checks condition 2. Executes task 2 if condition 2 is satisfied.

If <condition 1> And <condition 2>

Do <task > : Executes the selected task if both are satisfied

If <condition 1> or <condition 2>

Do <task 1> : Executes the selected task 1 if either one is satisfied

End : Ends a process


Utilities

Utilities

Pick a topic

SQL Explorer

Export Structures

Import Structures


SQL Explorer

SQL Explorer

SQL Explorer is a utility that can be used to generate an SQL statement, execute it and view the corresponding result. The utility is provided in the Utils menu in the Build toolbar .

The SQL statement is entered in the space provided under SQL Text .Use the Execute button to execute the statement and view the results.In case the statement includes parameters, the Define Parameter dialog pops up on clicking Execute.Specify the Type and the Value of the parameter within the dialog. Help and Support

t


Export Structures

Export Structures

The Export Structures utility accessed through the Utils menu in the Build toolbar will read the selected structures from database and create a set of encrypted and compressed files. These files can then be copied onto any medium and transported.

How to export a selected structure

To export,

    • Select the type of structure from the Select Structure drop down.
    • Select the individual TStructs,IViews or Pages or check Select All.
    • Input/Select the Folder Name on the right hand panel
    • Click [Export]

Axpert creates a folder Export in the destination specified during export and generates a file corresponding to each structure exported.


Import Structures

Import Structures

The Import Structures utility accessed through the Utils menu in the Build toolbar allows the importing of structures into the database.The structures can be accessed using Axpert and can be copied onto individual machines. Alternatively, the Axpert Web support services can be deployed under a web server along with a set of dot net pages that comes along with the services. This makes it possible to access all the structures through a browser from anywhere.

Note :The structures to be imported should have been exported at the source so as to convert it into compressed files and make the transmission possible.

How to import

To import,

    • Select the source.(Export folder)
    • Click [Import].


Roles and Users

Roles and Users

Pick a topic

Roles

User Groups

Users


Roles

Roles

For each application being created/used in Axpert, you can define certain roles for each user. .Access to TStruct, IView and pages can be restricted using the roles and users module.The term Role indicates the level of access each user has within the Application. For instance, you can create a role called Admin who can access, view or manipulate all the pages within the application. Or, there can be a role called employee who is allowed only limited access to the contents within the application.

The Users button in the Axpert Bar provides the functionality to create and manage roles,user groups and users.

How to create and manage Roles

To create and manage the available Roles,

    • In the Roles and Users window, click Roles tab.
    • Use the [Add] button to add and [Remove] button to remove a selected Role.
    • To add, enter the Role name.
    • Specify the Pages,TStructs or IViews to be enabled, disabled or hidden for this Role in the Access Rights on the right side. Select structure within the Panel and right click. From the context menu opt for Allow or Deny.
    • Save the Role.
    • Once the Role is created ,you need to assign the role to a User Group .


User Groups

User Groups

User Groups for an application can be created through the User Groups tab in the Roles and Users screen.

How to create and manage User Groups

To create and manage the available User Groups,

    • In the Roles and Users window, click User Groups tab.
    • Use the [Add] button to add and [Remove] button to remove a selected group.
    • To add, enter the Group name.
    • Assign a Role to the Group.
    • Apply the changes.
    • Once the group is created ,you need to assign the Group to a User .


Users

Users

You can create Users for an application through the Users tab in the Roles and Users functionality.

How to create and manage Users

To create and manage the available Users,

    • In the Roles and Users window, click Users tab.
    • Use the [Add] button to add and [Remove] button to remove a selected user.
    • To add, enter the User Name and Password .
    • Assign a Group to the user.
    • Apply the changes.

Once a user is created, the new Username and Password could be used to login to the application.


Abs

Abs

Function : Abs

Syntax : Abx(Number)

Description : Returns the absolute value


AddToDate

AddToDate

Function : AddToDate

Syntax : AddToDate(DateValue,NumberToIncrease)

Description : Adds the given number to Date.

Example :

AddToDate(Ctod({01/04/2007}, 10)

Result : 10/04/2007


AddToMonth

AddToMonth

Function : AddToMonth

Syntax : AddToDate(DateValue,NumberToIncrease)

Description : Adds the given number to the month of Date.

Example :

AddToMonth(Ctod({01/04/2007}, 5)

Result : 10/08/2007


AmtWord

AmtWord

Function : AmtWord

Syntax : AmtWord(Amount : Numeric)

Description : Converts the given Amount to words.

Example :

AmtWord(1356.50)

Result : One thousand three hundred and fifty six and paise fifty only.


Bulkexecute

Bulkexecute

Function : Bulkexecute

Syntax : Bulkexecute(SQLText)

Description : Fires the given SQL. Expects the first column in the SQL result to be an SQL text. Fires this SQL text from every row in the result. This can be used to do complex SQL processing.


CheckStock

CheckStock

Function : CheckStock

Syntax : CheckStock(ItemId, OldItemId, DocDate, OldDocDate, PlusOrMinus, Qty, OldQty)

Description : Checks if enough stock is available to carry out the transaction for the given ItemId as on given DocDate for the Qty. In case of modification mode, the old values will be used if the modification can be allowed. The function will return T if the transaction can be allowed or else a message will be returned.


CMonthYear

CMonthYear

Function : CMonthYear

Syntax : CMonthYear(Dt : DateTime)

Description : Returns the character month and four digit year from the given date.

Example :

CMonthYear('01/04/2004')

Result : April 2004


Constructtable

Constructtable

Function : Constructtable

Syntax : Constructtable(SQLText, TableName)

Description : Expects the SQL result to contain fieldname, datatype, width and decimal as columns.

A table with the TableName specified will be created at the backend .


Convertmd5

Convertmd5

Function : Convertmd5

Syntax : convertmd5(string)

Description : Converts the given stringvalue to MD5


CopyFileTo

CopyFileTo

Function : CopyFileTo

Syntax : CopyFileTo(Source, Destination)

Description : CopyFileTo is a function used to copy the file specified in Source to the file specified in Destination. CopyFileTo will return False if the file in Destination already exists


CreateDbf

CreateDbf

Function : CreateDbf

Syntax : CreateDbf(SQLText, DirName,TableName)

Description : Creates a dbf file in the directory given by DirName. The result of the SQL text is created as the contents of the table. The name of the table will be TableName.


CreateWordDoc

CreateWordDoc

Function : CreateWordDoc

Syntax : CreateWordDoc(FileName)

Description :Creates a new MS Word file and opens MS Word for editing.


CTOD

CTOD

Funtion : CTOD

Syntax : CTOD(Dt : String)

Description : Converts character to DateTime type


CurrAmtWord

CurrAmtWord

Function : CurrAmtWord

Syntax : CurrAmtWord(Amount : Numeric, Currency, SubCurrency, InMillions: Boolean, Decimals :integer)

Description : Converts the given amount to words as per the specification.

Currency - Name of the currency to convert to.

SubCurrency - Name of the sub currency

InMillions - {T} if amount should be in millions.

Decimals - number of decimal digits in the amount.

Example :

CurrAmtword(1200000, {Dollars}, {Cents}, {T}, 2)

Result : One million two hundred thousand only.

CurrAmtword(1200000, {Rupees}, {Paise}, {T}, 2)

Result: Twelve lacs only.


Date

Date

Function : Date

Syntax : Date( )

Description : Returns today's date.


Dayofdate

Dayofdate

Function : Dayofdate

Syntax : Dayofdate(dt : DateTime)

Description : Returns the day of date.


DaysElapsed

DaysElapsed

Function : DaysElapsed

Syntax : DaysElapsed(date1, date2)

Description : Returns the number of days elapsed between date2 and date1.


DoMRP

DoMRP

Function : DoMRP

Syntax : DoMRP(StartDate, EndDate)

Description : Runs the MRP for all records in the demand table between given start and end date. It expects the stock available in the stockvalue table, item master to be present in itemmaster table, bom to be present in Bomtable.


DTOC

DTOC

Function : DTOC

Syntax : DTOC(Dt : DateTime)

Description : Converts a Datetime to String.Useful in passing date type of variables to functions that expect string as a parameter.


Eval

Eval

Function : Eval

Syntax : Eval(ExpressionVar)

Description : ExpressionVar is a variable that should consist of an axpert expression. That expression will be evaluated and the value will be returned.


Extractnum

Extractnum

Function : Extractnum

Syntax : Extractnum(StringValue)

Description : Extracts only the number that is embedded in a string. This can be useful in getting numeric values from a string when reading from XML tags.


FindAndReplace

FindAndReplace

Funtion : FindAndReplace

Syntax : FindAndReplace(S, FindWhat, ReplaceWith: String)

Description : Finds the string given by FindWhat and replaces it with ReplaceWith in String S and returns the new string.

Example :

FindAndReplace({xxxyyyzzz}, {xxx}, {aa})

Result : aayyyzz.


Firesql

Firesql

Function : Firesql

Syntax : Firesql(SQLName, SQLText)

Description : Fires the given SQL and stores the result set in a dataset identified by the given SQLName. The result set can be accessed in subsequent expressions using the FindRecord and SQLGet functions. To these functions the name of the SQL should be provided.


FormatDateTime

FormatDateTime

Function : FormatDateTime

Syntax : FormatDateTime(formatstring, datetimevariable)

Description : The given datetimevariable will be converted using the given formatstring.

If the formatstring is empty, the datetimevariable is formatted as if a 'c' format specifier had been given.

The first form of FormatDateTime is not thread-safe, because it uses localization information contained in global variables. The second form of FormatDateTime, which is thread-safe, refers to localization information contained in the FormatSettings parameter. Before calling the thread-safe form of FormatDateTime, you must populate FormatSettings with localization information. To populate FormatSettings with a set of default locale values, call GetLocaleFormatSettings.

Date Time Format Strings are composed from specifiers that represent values to be inserted into the formatted string. Some specifiers (such as "d"), simply format numbers or strings. Other specifiers (such as "/") refer to locale-specific strings from global variables.

In the following table, specifiers are given in lower case. Case is ignored in formats, except for the "am/pm" and "a/p" specifiers.

Specifier | Displays
c | Displays the date using the format given by the ShortDateFormat global variable, followed by the time using the format given by the LongTimeFormat global variable. The time is not displayed if the date-time value indicates midnight precisely.
d | Displays the day as a number without a leading zero (1-31).
dd | Displays the day as a number with a leading zero (01-31).
ddd | Displays the day as an abbreviation (Sun-Sat) using the strings given by the ShortDayNames global variable.
dddd | Displays the day as a full name (Sunday-Saturday) using the strings given by the LongDayNames global variable.
ddddd | Displays the date using the format given by the ShortDateFormat global variable.
dddddd | Displays the date using the format given by the LongDateFormat global variable.
e | (Windows only) Displays the year in the current period/era as a number without a leading zero (Japanese, Korean and Taiwanese locales only).
ee | (Windows only) Displays the year in the current period/era as a number with a leading zero (Japanese, Korean and Taiwanese locales only).
g | (Windows only) Displays the period/era as an abbreviation (Japanese and Taiwanese locales only).
gg | (Windows only) Displays the period/era as a full name. (Japanese and Taiwanese locales only).
m | Displays the month as a number without a leading zero (1-12). If the m specifier immediately follows an h or hh specifier, the minute rather than the month is displayed.
mm | Displays the month as a number with a leading zero (01-12). If the mm specifier immediately follows an h or hh specifier, the minute rather than the month is displayed.
mmm | Displays the month as an abbreviation (Jan-Dec) using the strings given by the ShortMonthNames global variable.
mmmm | Displays the month as a full name (January-December) using the strings given by the LongMonthNames global variable.
yy | Displays the year as a two-digit number (00-99).
yyyy | Displays the year as a four-digit number (0000-9999).
h | Displays the hour without a leading zero (0-23).
hh | Displays the hour with a leading zero (00-23).
n | Displays the minute without a leading zero (0-59).
nn | Displays the minute with a leading zero (00-59).
s | Displays the second without a leading zero (0-59).
ss | Displays the second with a leading zero (00-59).
z | Displays the millisecond without a leading zero (0-999).
zzz | Displays the millisecond with a leading zero (000-999).
t | Displays the time using the format given by the ShortTimeFormat global variable.
tt\ | Displays the time using the format given by the LongTimeFormat global variable.
am/pm | Uses the 12-hour clock for the preceding h or hh specifier, and displays 'am' for any hour before noon, and 'pm' for any hour after noon. The am/pm specifier can use lower, upper, or mixed case, and the result is displayed accordingly.
a/p | Uses the 12-hour clock for the preceding h or hh specifier, and displays 'a' for any hour before noon, and 'p' for any hour after noon. The a/p specifier can use lower, upper, or mixed case, and the result is displayed accordingly.
ampm | Uses the 12-hour clock for the preceding h or hh specifier, and displays the contents of the TimeAMString global variable for any hour before noon, and the contents of the TimePMString global variable for any hour after noon.
/ | Displays the date separator character given by the DateSeparator global variable.
: | Displays the time separator character given by the TimeSeparator global variable.
'xx'/"xx" | Characters enclosed in single or double quotes are displayed as-is, and do not affect formatting.


Filewrite

Filewrite

Function : Filewrite

Syntax : Filewrite((Formatfile, TargetFile)

Description : Used in a TStruct to convert the data related to a transaction into any ASCII file format.

The format of the ASCII should be created and stored prior to using this function. Fields are represented in the file within curly braces. In case one of the lines in the format file consists of grid fields, then the line will be repeated for the rows in the grid.

This can be used to create any kind of file formats for interfacing with other devices like barcode printer or to enable electronic data interchange (EDI)


Findrecord

Findrecord

Function : Findrecord

Syntax : Findrecord(SQLName, ColumnName, ColumnValue)

Description : Finds the record that has the given ColumnValue in the given columnname in the SQL result identified by SQLName.


Getdelimitedstr

Getdelimitedstr

Function : Getdelimitedstr

Syntax :Getdelimitedstr(SQLName, ColumnName, Delimiter)

Description : All the values in the column will be concatenated to a single string separated by the delimiter.

Example : A comma separated string can be created by setting the delimiter as ‘,’.


GetId

GetId

Function : GetId

Syntax : GetId({FieldName}, RowNo: Integer)

Description : Returns the record id of a normalized selection field at the given rowno.


GetInteger

GetInteger

Function : GetInteger

Syntax : GetInteger(Value :numeric)

Description : Returns the integer part in a decimal number.

Example :

GetInteger(12.33)

Result : 12.


GetLength

GetLength

Function : GetLength

Syntax :GetLength({value})

Description : Returns the length of the string.

Example :

GetLength({xyz})

Result : 3.


GetMax

GetMax

Function : GetMax

Syntax : GetMax( {ColumnName })

Description : Applicable only to grid fields.Returns the row that contains the maximum value in a column in a grid DC.

Use in : TStructs

Example:

Consider a grid frame as follows

Sno | Category | Amount
1 | A | 100.00
2 | A | 200.00
3 | B | 300.00
4 | C | 400.00
5 | A | 500.00

GetMax({Amount})

Result : 5 ( 5th row contains the maximum value in the amount column )


GetMin

GetMin

Function : GetMin

Syntax : GetMin(ColumnName)

Description : Applicable only to grid fields.Returns the row in the grid that contains the minimum value in the column given by fieldname.

Use in : TStructs

Example:

Consider a grid frame as follows

Sno | Category | Amount
1 | A | 100.00
2 | A | 200.00
3 | B | 300.00
4 | C | 400.00
5 | A | 500.00

GetMin({Amount})

Result : 1 ( the 1st row contains the minimum value in the amount column )


GetMod

GetMod

Function : GetMod

Syntax : GetMod(numerator, denominator)

Description : Returns the reminder after division.


GetRow

GetRow

Function : GetRow

Syntax : GetRow({ColumnName }, Fieldvalue)

Description : Gets the first row that matches the given fieldvalue in the column.

Use in : TStructs

Example:

Consider a grid frame as follows

Sno | Category | Amount
1 | A | 100.00
2 | A | 200.00
3 | B | 300.00
4 | C | 400.00
5 | A | 500.00

GetRow({Category}, {A}) returns 1. Only the first matching rowno is returned.


GetRowCount

GetRowCount

Function : GetRowCount

Syntax : GetRowCount({Columnname})

Description : Returns the number of rows in the grid under the given column name.

Use in : TStructs

Example:

Consider a grid frame as follows

Sno | Category | Amount
1 | A | 100.00
2 | A | 200.00
3 | B | 300.00
4 | C | 400.00
5 | A | 500.00

GetRowCount({Category})

Result : 5


GetStockValue

GetStockValue

Function : GetStockValue

Syntax :GetStockValue(ItemMasterID, TransDate, Qty, ValuationMethod, LocationId)

Description : Returns the issue value for Qty of an item as on the date given by TransDate. The ItemMasterID is the record id of the required item. The ValuationMethod can be ‘f’ for FIFO or ‘W’ for weighted average. The LocationId parameter is optional. If this is provided, the issue value will be calculated considering the stock in the given location.


GetValue

GetValue

Function : GetValue

Syntax : GetValue({Fieldname} , RowNo: numeric)

Description : Returns the value of the field at the given row.FieldName is the name of the field. For fields in a non grid DC, give the rowno as 1.

Use in : TStructs

Example:

Consider a grid frame as follows

Sno | Category | Amount
1 | A | 100.00
2 | A | 200.00
3 | B | 300.00
4 | C | 400.00
5 | A | 500.00

GetValue({Category}, 3)

Result : B


IIF

IIF

Function : IIF

Syntax : IIF(Expression, True_Result, False_Result : String)

Description : Evaluates the expression.

If expression returns True, then the True_result is returned else the false_result is returned.

Example :

iif(10 > 5, {Greater}, {Lesser})

Result : Greater

iif((10-6) > 5, {Greater}, {Lesser})

Result : Lesser

iif(10 < 5, {Lesser 1}, iif(10 < 11, {Greater 2}, {Lesser 2}))

Result : Greater 2

iif(10 < 5, {Lesser 1}, iif(10 > 11, {Greater 2}, {Lesser 2}))

Result : Lesser 2

iif((10-6) < 5, {Lesser 1}, iif(10 > 11, {Greater 2}, {Lesser 2}))

Result : Lesser 1


IsEmpty

IsEmpty

Function : IsEmpty

Syntax : IsEmpty(Value)

Description : Returns true if the given value is null.


IsEmptyValue

IsEmptyValue

Function : IsEmptyValue

Syntax : IsEmptyValue(Value, Datatype)

Description : Returns true if the given value is empty. However, zero in case of numeric is not considered as empty.


IsVarEmpty

IsVarEmpty

Function : IsVarEmpty

Syntax : IsVarEmpty(Variablename)

Description : Returns true if the variable is empty.


LastDayOfMonth

LastDayOfMonth

Function : LastDayOfMonth

Syntax : LastDayOfMonth(DateVar)

Description :Returns the last day of the month in datevar. It can be 28, 29, 30 or 31.


LeftPad

LeftPad

Function : LeftPad

Syntax : LeftPad(S: String; MaxLength: integer; c: Char)

Description : If the length of the given string S is less than MaxLength, then pads it to the left with the character given by c to make its length equal to MaxLength.

If the length of the given word is greater or equal to the MaxLength then the given word is returned as it is.

Example :

LeftPad('abc', 5, 'x')

Result : 'xxabc'


Lower

Lower

Function : Lower

Syntax : Lower(Str : String)

Description : Converts the given string to lower case.

l


MakeDate

MakeDate

Function : MakeDate

Syntax :MakeDate(day,month,year)

Description :Returns the date

l


Monthofdate

Monthofdate

Function : Monthofdate

Syntax :Monthofdate(Date)

Description :Returns the month of date


MandY

MandY

Function : MandY

Syntax : MandY(PDate : Date)

Description : Returns the month and year in the given date in the format YYYYMM.

Example :

MandY({01/04/2005})

Result : 200504

MandY({01/10/2006})

Result : 200610


OpenDialog

OpenDialog

Function :OpenDialog

Syntax : OpenDialog

Description : Displays the file open dialog to the user. The selected file name is returned to the user.


Pad

Pad

Function : Pad

Syntax : Pad(S: String; MaxLength: integer; c: Char)

Description :Pads the string S to the right with the character given in C. If the length of the given word is greater or equal to the MaxLength then the given word is returned as it is.

Example :

Pad('abc', 5, 'x')

Result : 'abcxx'


Power

Power

Function : Power

Syntax :Power(ConstVal, Exponent)

Description : The result will be Constval raised to the given Exponent.


RegVar

RegVar

Function : RegVar

Syntax : RegVar(varname, datatype, value)

Description : Registers the varname as a variable. This can be used in axpert expressions within the current structure


Rnd

Rnd

Function : Rnd

Syntax : Rnd(Amount, RoundTo : Numeric)

Description : Rounds off the given amount to the nearest given RoundTo figure. The RoundTo could be 100 to round off the amount to nearest 100. If RoundTo is 50, the amount will be rounded to the nearest 50. This could be useful to roundoff amounts to the nearest rupee or nearest 50 paise .

Example :

Rnd(100.20, 50) Result : 100.00

Rnd(100.45, 50) Result : 100.50

Rnd(100.65, 50) Result : 100.50

Rnd(100.20, 100) Result : 100.00

Rnd(100.65, 100) Result : 101.00


Round

Round

Function : Round

Syntax : Round(Num , Decimals:Numeric)

Description : Rounds the given number to given decimals.

Example :

Round(100.334,2) Result : 100.33

Round(100.337,2) Result : 100.34


SaveDialog

SaveDialog

Function : SaveDialog

Syntax : SaveDialog

Description : Displays the save file dialog to the user. The selected file name is returned to the user


SetExtSequence

SetExtSequence

Function : SetExtSequence

Syntax : SetExtSequence(TransId, FieldName, Prefix)

Description :The sequences defined in another TStruct could be used to generate numbers for a field in the current TStruct. The TransId parameter is the name of the other TStruct. This will enable sharing a single sequence across different TStructs


SetSequence

SetSequence

Function : SetSequence

Syntax : SetSequence(FieldName, Prefix:String)

Description : Auto generated fields can have multiple sequences. Each sequence is identified by a unique four letter prefix. There may be a need to set the sequence for number generation based on the value set in another field. In the on exit even of the field a user defined task could be written with a call to this function.. The name of the auto generated field and the prefix that should be used for number generation are passed as parameters.

Note : The functions related to numbering sequence viz SetSequence and SetExtSequence cannot be used in OnFormLoad. Moreover, the case of the parameters should exactly match the ones defined in the tables. If the field name is defined in lower case, then parametric field name should also be in lower case .

Example:

Consider a TStruct that has a field name Type. This can have either A or B as its value. If it is A, then the DocNo field following this field should have the 'AAA-' sequence selected. If type is not A, then the sequence for DocNo should be 'BBB-'.

seq := iif(Type = {A}, {AAA-}, {BBB-})

SetSequence({DocNo}, Seq)


SetValue

SetValue

Function : SetValue

Syntax : SetValue( {FieldName },Rowno: integer;Value)

Description : Sets the value for the field at the given row to the given value. For non grid fields, the rowno should be 1.

Example: Consider a TStruct that has a field named ItemCode in a Grid DC. If the value of the itemcode in row 2 is to be changed to 'x1' use SetValue({ItemCode},2,{x1}).


Sqlget

Sqlget

Function : Sqlget

Syntax : Sqlget(sqlname, columnname)

Description : Returns the value of the column in the SQL result from the current record.


SQLRegVar

SQLRegVar

Function : SQLRegVar

Syntax : SQLRegVar(SQLText)

Description : This function will register the result of the SQL for using them in expressions.The SQL text will be fired and a result set will be obtained. The SQL result should have the following columns : VarName, VarType, VarValue The function will register the given varname with the VarValue.

Example : If the SQL result is as follows :

VarName | VarType | VarValue
a1 | n | 100.00
a2 | c | abc
a3 | d | 01/04/2004

Three variables will be registered as follows : a1 = 100.00 a2 = abc a3 = 01/04/2004

These variables could be used in subsequent expressions.


Str

Str

Function : Str

Syntax : Str(Num :Numeric)

Description : Converts given string to numeric.

Example :

Str({123}) Result :123.


Stuff

Stuff

Function : Stuff

Syntax :Stuff({Str1 }, {Str2}, P : Numeric)

Description : Inserts the str2 into str1 at position p.

Example:

Stuff({abcd}, {x}, 2) Result : axbcd

Stuff({abcd}, {}, 2) Result : acd

Stuff({abcd}, {xyz}, 2) Result : axyzbcd


SubStr

SubStr

Function : SubStr

Syntax : SubStr(S:string; Posn,Num:numeric)

Description : Returns num characters from Posn in the string S.

Example :

Substr({123Abc}, 4, 3) Result : Abc


Sum

Sum

Function : Sum

Syntax : Sum({ColumnName}, ColValue, {SumField })

Description : Returns the total value of the SumField from all rows in the grid that has the Colvalue in the Columnname. Applicable only to Grid DC.

Use in : TStructs

Example:

Consider a grid frame as follows

Sno | Category | Amount
1 | A | 100.00
2 | A | 200.00
3 | B | 300.00
4 | C | 400.00
5 | A | 500.00

Sum({Category}, {A}, {Amount}) will return 800.


SumTill

SumTill

Function : SumTill

Syntax : SumTill({ColumnName }, ColValue, {SumField}, RowNo)

Description : Returns the total value of the SumField from all rows in the grid that has the ColValue in the ColumnName and rowno less than or equal to the given RowNo. Applicable only to Grid DC.

Use in : TStructs

Example:

Consider a grid frame as follows

Sno | Category | Amount
1 | A | 100.00
2 | A | 200.00
3 | B | 300.00
4 | C | 400.00
5 | A | 500.00

SumTill({ItemCategory}, {A}, {Amount}, 4) will return 300.


Time

Time

Function : Time

Syntax : Time()

Description : Returns current time.


TimeElapsed

TimeElapsed

Function : TimeElapsed

Syntax : TimeElapsed(d1, d2)

Description : Returns time elapsed between two given dates along with time.


Total

Total

Function : Total

Syntax : Total({FieldName})

Description : Returns the total value of the given field in a TStruct.FieldName is the name of the grid column.Applicable only to grid DC

Use in : TStructs

Example:

Consider a grid frame as follows

Sno | Category | Amount
1 | A | 100.00
2 | A | 200.00
3 | B | 300.00
4 | C | 400.00
5 | A | 500.00

Total({Amount}) gives the result as 1500


Trim

Trim

Function : Trim

Syntax : Trim({Value})

Description : Trims spaces from the given string.


Trimspace

Trimspace

Function : Trimspace

Syntax : Trimspace({Value})

Description : Trims spaces from the given string.

Example :

Trimspace({ abc })

Result : abc


Upper

Upper

Function : Upper

Syntax : Upper(Str : String)

Description : Converts the given string to upper case.


Val

Val

Function : Val

Syntax :Val(Num:String)

Description : Converts given string to numeric.

Example :

Val({123})

Result : 123


ValidEncodeDate

ValidEncodeDate

Function : ValidEncodeDate

Syntax : ValidEncodeDate(year, month, day)

Description : Returns a date. If day is greater than highest day available in the month then the day will be considered as the last day of the month.


Yearofdate

Yearofdate

Function : Yearofdate

Syntax : Yearofdate(date)

Description : Returns year of date


XRun

         Previous Topic

XRun

Function : XRun

Syntax : XRun(ApplicationName)

Description : Runs the given application. This function does a shell execute of the given application name.

The application name can also be document name along with extension. If the given extension is recognized by windows then the document will be opened using the relevant application. For example if an MS word document file name is given as a parameter then XRun will open MS Word and open the document file.

Parameters can be passed to the application. The application name and the parameter name should be separated with a % character. If more than one parameter needs to be passed, then each parameter should be separated with % character.


Define buttons in a form

Define buttons in a form

The Define button dialog pops up when you click on Add Button in the context menu within the Form Designer.

Caption

The caption to be displayed on the button can be optionally mentioned here.

Action

The action that needs to be executed on button click. The actions need to be defined prior to the creation of the buttons.

Tasks

The task that should be carried out on button click. Select from the list.

Relations

Pop up IView/TStruct

Image

The icon that should be displayed on the button should be specified here.

Position

The Position of the image on the button.Select from the list.

Hint

The tip that should be displayed when the mouse pointer moves over the button.

Align

Button alignment

Flat Button, Stick Button

Type of button. Select any one.


Expression Definition Screen

Expression Definition Screen

Expressions can be defined in this screen. During runtime these expressions are calculated / validated and result is instantly popped into the inputfield.

Note that an Expression can contain fields appearing before the current field only.

For instance,to calculate the value of a product purchased,the fields namely 'Quantity' and 'Rate' should appear before the field 'Value'. In such cases, the values will change dynamically as the change occurs in the 'Quantity' and 'Rate' field.

Note :When the Tab Order is changed, care must be taken to check the order of the 'Expression' fields..


Form Designer

Form Designer

Axpert generates a form for every TStruct. The Form Designer allows you to design the user interface for your application.The functionalities provided includes :aligning the input fields, changing the font and the background color of the screen. You can also add images, buttons and labels through the context menu.

Once the interface is designed you can also view the form in run mode.For this, select the Run mode check box at the bottom left corner of the form. To go back to the design mode, uncheck the Run mode check box.

For each DC in the TStruct, Axpert creates a frame in the Form.The Group DCs button lets you group different DC together in a single frame under separate tabs.


IView Definition Screen

IView Definition Screen

Information Views (IViews) can be created and defined in this screen. An IView generates an information form (Report) at the front end. To define an IView you need to set its properties and define the SQL statement for extracting the data from the tables.

The properties of an IView govern the way the report is presented to the user.

Extract Data functionality is used to define the SQL statement/Expression for retreiving the data into an IView.To access the extract data functionality click on [Extract Data] button in the View tab.

Each column in the IView has its own properties and can be accessed by double clicking on it.Additionally,it is possible to create hyperlinks for an individual column.This functionality can also be accessed by double clicking within a column and clicking on the Hyperlink tab within the Column Properties popup.

The parameters for the IView can be defined through the IView Parameter Definition Screen.You can access it through the Params tab.


IView Parameter Definition Screen

IView Parameter Definition Screen

Parameters can be defined in a IView in two ways:

1) Define the parameters as part of the SQL.

2) Define the parameters directly.

Parameters for an IView can be defined directly through this screen.

For any parameter being created,enter the following details on the right hand panel

Name

Enter the name of the parameter. It should not exceed 15 characters. The name is used as part of the heading or column within {} to retrieve the value of the parameter in the heading.

Caption

Enter caption for the parameter.The caption should not exceed 25 characters.

Data Type

Select the relevant data type for the parameter from the list.

Decimals

Enter the decimal width for the parameter in the case of Numeric Data Type.

Value

The value of the parameter can be specified here. It may be entered/selected based on the Mode of Entry.

Hidden

The parameter can be hidden by marking this checkbox. Ignore if you need to display the parameter.

Expression

Expression for the parameter may be entered here.

Validate Expression

Validate Expression can be specified to validate the values entered in the parameter and prompt the user with relevant error messages.

SQL

Enter the SQL statement here.

A parameter SQL is written to retrieve values for the parameter in the IView.
In such cases, the result set of the SQL is listed as the values for the parameter during run time.

Mode of Entry

Select from Accept, Select or MultiSelect .If the MOE is Accept, then the value is input by the user.

If the MOE is set as Select or MultiSelect, then the values (if any) to be selected are listed. The required value can be selected.


TStruct Definition Screen

TStruct Definition Screen

Transaction structures (TStructs) can be defined in this screen. A transaction structure will generate an input form at the front end. This definition is done by defining line items in the table and altering the properties related to each line item.

Each line item in the table can be any one of the following types

    • DC
    • InputField
    • FillGrid
    • GenMap
    • MDMap

A DC is a data container that groups a set of fields. The fields in each DC are stored into a database table given in the table name property of the DC.

The properties of each input field govern the way data is entered/derived into a field and validated.

Axpert generates a form by default. The look and feel of this form can be changed as per needs through the Form Designer. Access the form designer by clicking on the Form Tab.

Actions are a sequence of tasks that can be attached to a button click in a TStruct or to any TStruct event.

For each component,set the name and caption and key in the properties in the Property panel on the right hand side.

The properties of a transaction structure as displayed in the property panel in the TStruct Definition Screen are as follows :

TransId

Every Transaction Structure is identified using a TransId. This TransId is always of character datatype and length five. Every TStruct should have a unique TransId.

Caption

Every Transaction Structure is given a Caption or Transaction Description which need not be unique.

SaveControlField

SaveControlField contains the name of the InputField based on which the transactions entered in the Transaction Form are saved conditionally.

The InputField specified here always holds the value 'T' or 'F' which is the result of an Expression defined in the Transaction Structure. During runtime, if this expression is evaluated as 'T', the transaction information gets saved into the database otherwise no save is executed.

Only the InputFields which have the Save Value property set as True, will be saved into the database.

Example

Case 1: An Invoice is to be saved only if the invoice amount is less than Rs.1,00,000. In such cases, an InputField is created with the Expression property set as IIF(InvoiceAmount < 100000, {T}, {F}) and then the SaveControlField is set to this InputField.

Case 2: While saving a voucher, it is to mandatory to check if the debit and credit amounts are equal.

DeleteControlField

The DeleteControlField contains the name of the InputField that facilitates conditional deletion of the saved transaction in the Transaction Form. Deletions are made only after confirmation as the information once deleted cannot be recovered.

The InputField that is selected as DeleteControlField should always hold the value 'T' or 'F' which in turn should be the result of an Expression defined in the Transaction Structure. During runtime, the DeleteControlField is evaluated. In case it holds a 'T', the transaction gets deleted or else the deletion is not carried out.

Note: Deletion of Master entries that are used in Transactions is not allowed.

Example

In any conventional system, the Master information should not be allowed to be deleted in case it has been used in any Transaction. For instance, say an ItemName in the ItemMaster should not be allowed to be deleted if it is used in any Invoice. To bring about this control, the number of transactions in which the selected item is used is retrieved into a field, say ,CountField. Another InputField is created where the Expression is set as IIF(CountField <= 0, {F}, {T}) and then the DeleteControlField is set to this InputField.

Track Changes

All the changes made to the saved transaction in the Transaction Form can be tracked.Read More.

DateField

The system allows the archiving of data on the basis of the date specified here. For this, an InputField with date data type has to be created first.

TreeParents

Under development

Attachments

Set this property to True to allow pictures or documents to be attached to a transaction.

SearchCondition

Specify a condition here to filter the data and display during runtime.

ListView

Set this property to True to create automatic lists.

BlockSize

Use this property alongwith Listview to create monthly,weekly or daily reports.


Understanding Actions

Understanding Actions

What are Actions?

The structures (TStructs,IViews) describe the various entities and their relationships between them. However, these structures themselves can only describe static data that display information to end user. An application is expected to perform various functions. These are described as actions. Actions are collections of simple tasks that are combined together with business rules. Actions work on the data elements in the structures. Thus, it could be said that actions breathe life into the static structures.

Actions constitute of a set of basic software functions known as tasks. These are needed to make application software. These tasks are commonly used software functions like sending email, transforming data into different data formats like MS Word, restricting access to data based on business rules, printing a form, running a web service etc. These tasks are used to execute actions that are defined as part of a structure.

Commonly used algorithms in enterprise applications like MRP, Capacity planning, shortest route calculation, IRR calculation etc. are also made available as tasks that can be used in actions.

The tasks that could be executed as part of an action are listed under the values column within the Action Tab.


Understanding Data Containers

Understanding Data Containers

What are Data Containers?

A Data Container (DC) is a collection of InputFields. To put in simple terms, a DC corresponds to a table in the database and the InputFields correspond to the columns in the table. In Axpert, a DC produces a frame within the data input form. All Input Fields are created within the frame.

A DC could be any one of the following types :

      • Simple
      • Grid

A simple DC produces a frame in which each InputField is shown as a component. A grid DC produces a Grid frame in which each InputField under the DC is shown as column in the Grid. As a Grid frame allows multiple rows to be entered, each field in a grid DC can have multiple values.

Every TStruct should contain at least one data container (DC). A table name is specified for a DC. When the TStruct is created, a database table is also created by Axpert automatically.

There can be any number of DC in a tstruct. Each DC can have a different table name. The table attached with the first DC is called the primary table. More than one DC can point to the same table name. More than one tstruct can point to the same database table. When more than one table is defined in a tstruct, the tables are automatically related by storing the record id of the primary table in all the other tables.

When a TStruct is created,a Primary field is created by the system in the Primary DC table with the name <TableName>Id. For example when an Item Master DC is created, the field called 'ItemMasterId' is created as the first field in the ItemMaster table. During runtime, a unique number is generated by the system for every record saved in this field.


Understanding Expressions

Understanding Expressions

Expressions form the core of the system through which all the business rules can be enforced. They are used for computations, evaluations or for prefixing values for a field .

An Expression may constitute Fields, Functions and Operators and its result is always a value.

For instance, to fix the Discount in an Invoice as 3.25, the Expression may be set as 3.25.
To calculate the value of any item in an Invoice, the Expression can be set as Rate* Quantity.

In Axpert,an expression is defined in the Expression property of an InputField using the Expression definition screen.To view the Expression definition Screen click on the [...] button in the Expression property of an InputField.

.


Understanding FillGrids

Understanding FillGrids

What are FillGrids?

FillGrids are used to automate the process of data entry into a Grid DC- the result set of any SQL can be filled into any grid in the TStruct. Each column in the result set can be mapped to a column in the grid. Each row in the result set will be added as a row to the grid.

For instance, in a typical Order Processing scenario, there are Indents based on which Purchase Orders are placed. Indents or material requisitions may be entered into the system by a number of executives on various dates and locations. An Indent contains the list of items to be ordered/purchased and their indented quantity. A Purchase Order can be placed by including all/required items in the Indents. This is where the concept of automation steps in. To avoid repetition of work, during purchase order entry, a list that contains all the indents entered into the system can be provided. The user can choose the required ones to be included in the order. Thus, using the automation-FillGrid, all the Indents to be included in the Purchase Order can be retrieved. An SQL can be written to get the list of Indents. The FillGrid will populate the result set of the SQL.

A FillGrid can be defined in three ways :

  • From SQL : In this option an SQL is written to fetch the required grid information
  • From an IView : A IView is used to retrieve the data to the grid.
  • Grid to Grid Copy :This option facilitates copying of information from one grid to another in a TStruct.


Understanding Forms

Understanding Forms

What are Forms?

A data input form is automatically created on defining a Transaction Structure(TStruct). The end user can input data into the Information System through these forms. The Transaction Form provides List View,Search, New, Save, Save as, Remove, Print and Preview actions by default.

For each DC in the TStruct,Axpert creates a frame in the Form.

The mode of entry for an input field with in a DC will decide the kind of component that appears in the form.


Understanding GenMaps

Understanding GenMaps

What are Gen Maps?

This feature facilitates Document movement and Data Integration in Axpert. In an Enterprise scenario, a transaction may be the source of another transaction. Hence, as soon as the Source transaction is carried out, the Target transaction should be automatically executed. Such an automated system will eliminate repeated data entry. This is achieved by defining a Transaction Generator Map (Gen Map) in which the Source TStruct is mapped to the Target TStruct.

Some real time scenarios that emphasize the need of this feature are :

1. A Purchase Bill is a TStruct through which bills given by various Suppliers are entered. A Purchase Voucher is a TStruct through which a financial accounting transaction is entered. In such a case, when a Purchase Bill is made, a provisional Purchase Voucher should be automatically generated. The concerned authority in the Finance Department may go through a list of such provisional entries and approve them, there by making them actual entries. This would avoid the need of data to be entered by the Finance Department again.

2. In a production environment, when a production slip is entered, the posting of raw material issue document based on the bill of material should happen automatically. The raw material issue will reduce the raw material stock in the Stores.

3. In a distribution system, goods are loaded into a vehicle and distributed to various agents at different points depending on the order received from them on the previous day. The agents pay the money as soon as the material is received to the transporter who in turn deposits it back to the company. In such a case, sales invoices and cash receipts may be raised on each agent to whom the material is supplied. This could be automated, if there is a system that facilitates posting of a cash receipt voucher when a sales invoice is made.


Understanding Inputfields

Understanding Inputfields

What are InputFields?

The component used for inputting data is termed as InputField. InputFields are placed within Data Containers(DC). Whenever an InputField is defined, simultaneously a column in the table corresponding to the DC is created. The column name is the same as the InputField name. The field caption is shown to the user in the data input Form.


Understanding IViews

Understanding IViews

What are Iviews?

Information views (IViews) are Process Structures that govern the Data Extraction and Presentation as Reports or Queries. In layman's terms, queries and reports are defined as Information Views(IViews). These are definitions based on which a query or report is generated i.e an IView is an SQL result that is laid in a tabular format.Every Iview generates an Information form. The Information Form provides Search, New, Save, Save as , Delete, Print, Send,Params and Preview actions in the form of buttons by default.

As part of an IView the following can be defined

    • Heading

    • SQL Statements

    • SQL Parameters

    • Columns

    • Subtotals

    • Group Fields

    • Filter Expressions

    • Buttons


Understanding MDMaps

Understanding MDMaps

What are MDMaps?

A Master Detail Map is provided to update the information from a Detail transaction to a Master transaction. Data from a field in the Detail table is updated to a specific field in the Master table subject to certain criteria.The MDMap is always inserted in the Detail table.

For instance, consider a case where the closing stock quantity needs to be maintained in the Item Master. In such a case, quantity in all plus transactions (which add to the stock like Goods Received Note, Material Receipts etc.) needs to be cumulated into a field in the Item Master. Quantity in all minus transactions (which reduce stock like invoice, issues etc) needs to be reduced from the same field.

Another example is when an Invoice is generated, the Sale Qty is to be cumulated into a 'TotalSaleQty' field in Customer Master.


Understanding Pages

Understanding Pages

What are Pages?

A Page is the actual user interface for any application created using Axpert. Once the TStructs and IViews have been defined,the next task for you as a developer would be to create an interface through which data can be entered and subsequently displayed.This is where a Page comes into picture.

A Page can contain one or more TStructs, IViews or both. It could also have components such as Buttons to perform certain predefined actions.

After creating the process structure(TStruct or IView), create a page, add a container to the page and drop the structure within the container.

These structures that are to be used by the end user are embedded as components onto these pages. The navigation between pages is defined as hyperlink. Hence, an application can be considered as a set of pages with embedded structures and associated actions.


Understanding Print Forms

Understanding Print Forms

A Print Form is a text document in which fields from a TStruct can be embedded. Such embedded fields are called Print Fields. A print form will be printed from a TStruct Form during runtime when the user clicks on the '

Print' or 'Preview' button. Axpert will replace all the print fields with values entered in the Form.Similarly the print form will be used when the user clicks on the Save As option to save the Form as a document during runtime.

A Transaction Form can have more than one Print Form. The user will be provided with an option to select the format that needs to be printed or saved during runtime.


Understanding TStructs

Understanding TStructs

What are TStructs?

Transaction structure (TStruct) is a process structure that describes a collection of tables into which validated data is stored. The data that is submitted to a transaction structure is validated and stored into respective tables in a single database transaction by the STEM. Each data element in the structure can have derived values. The values can be derived using simple expressions that are associated with the data elements. The data submitted to the data elements in a structure are validated using simple validate expressions associated with them.

A transaction structure is a collection of

    • Data containers (DC)
    • InputFields
    • Transaction generator maps (Genmaps)
    • Form designer
    • Master detail maps (MDMap)
    • FillGrids

A Transaction Structure is identified through a unique string called 'TransId' (Name) and a 'Caption'. Read More...

A transaction structure can be mapped to other TStructs. The mapping can be one to one or one to many. The STEM will generate the target transaction when the source transaction is saved. A relationship is maintained between the source and the target transaction.

A master detail relationship can be made between transaction structures. The STEM will maintain the relationship between the transactions and also update the data from the detail into master when the detail is saved.