≡ Menu

Form Development from scratch Dynamics Ax 2012 R3 part 1

Consider a scenario where we are going to build small Hospital Admission System in Dynamics Ax 2012.  This Add-on is based on small database design based on







We divide this task into two posts

For this post, we are cover following points to develop this small add-on

  • Ax Project
  • Patient, Diagnostic and admission table.
  • Simple list page for diagnostic table.
  • Entry form for Patient table (Detail form).
  • Parent Master detail form based on Patient ,Diagnostic table and patient.
  • List page for Patient table.
  • Integrate Patient List page with Patient Detail form.




AX Project:


AX Project for collecting Ax artifacts in single location.

When we create any Ax object they have to create under certain node. For example tables, forms, Classes, menu all stored in their respected node.

In Dynamics Ax we can create a Project which is not more the logical grouping of all Ax artifacts.

In these project, we create object groups and then placed our required object either drag and drop from AOT or create them here.

Advantages of Projects are

  • Logical grouping, it’s easier to locate required artifacts one location.
  • When we export project as Xpo, All objects are exported as single XPO.
  • We can export whole project into model, all object in project moved from one model to other model in single steps.



Lets make a new project


From top menu Click on View=> tools=> Project

Ax Project

Following Screen will open

Shared and Private Project

Right click on Shared folder and create a Project and renamed it to HospitalManagementSystem.


Hospital Management System Menu


New Project Managment


Click on Project and open it. Right click on it new => Group to create new groups



For example we create Form group and set it Name and Project Group type to forms

Project name


Now Project is look like

Project Details


Similarly create other groups.




Table structure design.




So our table structure look like

Diagnostic table

Column Extended data Type Primitive Data Type
DiagNo DiagnosticNumber Str10
Desc Description
Cost AmountCur Real



Patient table

Column Extended Data Type
PatNo PatientNumber Str 20
Fname Name
LName Name
BirthDate BirthDate
Address T_Address Str 20
City T_City Str20
State T_State Str20
Zip T_Zip Str20
Gender T_Gender





Column Extended Data Type Primitive Data Type Foreign Key
AdmitNo AdmissionNumber Str20
PatNO Patient Number Patient table
Diag_code Diagnosticnumber


Diagnostic table


Adminationdate FromDate date
DischargeDate ToDate date
CoPay Notes Notes


First we create a extended data type required in three tables.

First one is DiagonisticNumber extended Data Type

Extended Data Type

Rename it and set its name as “DiagnosticNumber” and its string set its size to 10


Similarly create all extended data type

List of Extended Data Type

Rest of we use out of the box extended Data Type

When you save any Extended Data Type, Ax ask for Synchronize database cancel it when all extended data Types created let it complete

DataBase Schyrni






In current example only gender is enum type, we create new base enum T_Gender instead of using out of box Gender enum.


Base enum menu

Create a new Enum and name it “T_Gender” t stands for training.


Right click on it and create a new element

Base Enum new Element



Set its name and label



Base Create one more element and it will look like

Base enum look like



Now create a click on tables group and right click and create a new table



Rename it to “DiagnosticTable”.



Now create a new field with Name “DiagNo” of string type and set its extended data type to “DiagnosticNumber”





Similarly create all other fields in table



Now expand field Groups node in Table and Create a new Field group with Name “OverView”.


Drag all fields in it.



Now want to make the Diagonistic and unique and make it primary key. For this right click and create unique index on it


Rename it to DiagNoIx and set its AllowDuplicate Property to No and Alternate key to Yes


Now drag DiagNo from fields node to DiagosticIdx.




Now right click on DiagnosticTable and set following Properties with newly created Index




Perform same steps to create PaitentTable, create Index on “PatNo” similar way.



Create a new field group with overview and arrange field in a way that you want to see them in form



Create unique index on PatientNumber


Similarly create AdmissionTable,




Now right click on Relation node in AdmissionTable and create a new relation and rename it to “PatientRelation” and sets its table property to “PatientTable”


Now Right click on relation click on new =>ForeignKey=>Single field AlternateKey based




A new field added against  relation, rename it to PatientNumber



Similarly create another key based DiagnosticTable




Save and compile all table and synchronize each table.


Form development will be on next post

{ 0 comments… add one }

Leave a Comment