Axpert 11
TStructs (Forms)
- Create Form
- Create DC
- Create Fields
- Grid DC/frames
- Formulae in fields
- SQL in fields
- Drop down fields
- Autogenerate fields
- Table fields
- File upload fields in forms
- Photos &Image fields
- Barcode /QR Code Scanner
- Fill Grid
- Posting data – Gen maps
- Updating fields in DB tables – MD Map
- Toolbars in tstructs
- Tracking changes/Audit trial
- Try it yourself
IViews
Scripts
Axpert Jobs
Axpert Cards
HTML Plug-ins
Users & Roles
- Users, roles & responsibilities
- Responsibilities
- User Role
- User Login
- SSO Authentication
- Stay Sign In
Workflow
Axpert API
Application Var/Params
Publish Axpert Apps
Axpert Mobile
Settings
- Axpert installation
- Change password
- Forgot Password
- Developer Options
- Global Settings
- In-Memory DB
- Notifications for Long Running Webservice’s
- Axpert Configuration on web
- Axpert Licensing
Utilities
Customization
- Main Page Customization
- Home Page Customization
- More API
- Custom User Interface
For Reports - Custom HTML In Forms
- CSS And JS Customization
- Developer Notes
- Hooks In Forms
- Third Party SSO Integration
WebServices
Axfast
Updating fields in DB tables – MD Map
Numeric data entered in a field in a form may need to be aggregated into a field in a master table. Similarly, a string or date field may need to be replaced into a field in a master table. Some use cases for this may be to aggregate total sales in customer table from invoice form, replace the last sale date in customer form with invoice date, etc. The form from which data is to be updated is called the detail form. The form to which the data is to be updated is called the Master form. This update is defined using a Master-Detail Map (MD Map).
The field to be updated is defined by selecting the master form and master field. The detail field is the field from which data entered in the details form is updated to the master field.
The relationship between the master table and detail table is selected in the Master Search Field and Detail Search Field.
An MD Map definition is converted into an “Update” SQL statement and posted to database. A typical update statement looks like :
Update <TableName> set MasterFieldName=MasterFieldName+DetailFieldName where MasterSearchField=DetailSearchField
Example 1: Consider an invoice form as below:
Name | Details |
---|---|
InvNo | Invoice No. Autogenerated |
InvDate | Date, Auto filled with today date |
CustomerName | Drop down from customer master |
Address | Fill based on customer drop-down, save normalized. |
Item details | Grid DC storing in InvItemDetails table. |
ItemName | Drop down from item master |
SaleQty | Qty to sell |
SaleUnit | Unit of measurement – filled from ItemName dropdown |
Rate | Selling rate |
SaleValue | SaleQty*Rate |
Footer | Non-Grid DC |
SaleValue | Total({SaleValue}) |
Terms | Terms of sale |
Consider customer master form as below:
Name | Details |
---|---|
Name | Drop down from customer master |
Address | Fill based on customer dropdown |
TaxNo | Tax No. |
TotalSaleValue | Hidden numeric field. |
To update the TotalSaleValue in Customer form from SaleValue field in invoice form, define an MD Map as below:
- Master form – Customer master
- Master field – TotalSaleValue
- Detail field – SaleValue
- Master search field – Default (This refers to the primary field of the customer master table)
- Detail search field – CustomerName
- Update type – Add
In the invoice form, if the customer name field is not save normalized, then:
- Master Search field – Name in the Customer form
- Detail search field – CustomerName in invoice form.
Contents
Control field
A control field controls the MD Map execution. The MD Map will be posted only if this field value is T.
If the control field value changes from T to F, the already updated value will be reversed. If the control field value changes from F to T, the value will be updated.
Example 2:
In example 1 given above, consider the invoice header has another drop-down field named Invoice type with drop-down values Proforma, Tax Invoice. In run time, if the user selects Proforma in this field, then the MD Map should not be executed. Add a field named CanUpdateMaster with expression iif(InvoiceType={Proforma}, {F}, {T})
Execute on approve/reject
An MD Map can be executed only when the data in the form is approved or rejected. The MD Map will not be executed when the transaction is saved. This can be enabled by checking those two options.
Append MD Maps (AMD Maps)
MD Maps will search the master table using the master search field and detail search field. Matching records in the master are updated. If matching records are not found, a new record can be added to the master table. This can be achieved by ticking the Append option in MD Map definition.
MD Map definition as script
An MD Map can be defined as a script like below:
- tablename = Give the name of the table to be updated
- transid =transid of the form in which this MD Map is defined
- sourceframe = if all rows from a grid DC should be updated, give gird DC number here else give 1
- @mastersearchfield = detailsearchfield
- +masterfield1= detailfield1
- *masterfield2= detailfield2
- append = true
Create a Tstruct with an MDMap. Open the Maptext with ellipsis on the side.
Insert the script in the pop-up editor as shown below
The script is a collection of name-value pairs. Name-value pairs prefixed with the@ symbol is considered as a master search field and detail search field. Name-value pairs prefixed with the * symbol are considered as master field and detail field with update type replace. Name-value pairs prefixed with + symbol is considered as master field and detail field with update type add. The @ symbol in the script helps find the keyword. The other special characters that can be used in the script are as follows:
- @ find
- + Add
- – Less
- = Replace
- > Highest
- < Lowest
- ^ Increment
- ! Decrement
Include the username, usergroup, startdate, endate ( the column names of the axuserlevelgroups table) based on the details in the columns of your table. And make sure the keyword append is set to true. Save the script and click on run. Insert new values into the form.
Open the list view and find the new entry.
Now goto Dbeaver and run the SQL query to fetch the columns of axuserlevelgroups and find the new username entry in the list.
Try Out
Update the employee and department count in the corresponding master tables.