Simple Calculator

How to Create calculator with add, sub, mul, div in form by calling class program?

Could you please explain what’s your level of knowledge (do you know how to create a method, for example) and what exactly do you need help with?

Note that you can find documentation in Microsoft Dynamics AX Developer Center.

Also, when you’re creating a new thread, can you always attach a tag with your AX version (such as AX 2012), please?

I am in a starter level of the course, and i know to create method, class, form…

Hello ParthaSarathy,

I have a code for calculator app implementation which I have done long before when I started learning AX, but unfortunately I couldn’t post it here.

I will post the XPO content here you can either copy and past it into notepad and save it as .xpo or you can give me your email I will send you the Calculator XPO.

Exportfile for AOT version 1.0 or later
Formatversion: 1

***Element: FRM

; Microsoft Dynamics AX Forms unloaded
; --------------------------------------------------------------------------------
FRMVERSION 12

FORM #NkdCalculator
PROPERTIES
Name #NkdCalculator
Origin #{6DCDDEDC-9C5F-4104-B8F6-AFB41983F47D}
ENDPROPERTIES

METHODS
SOURCE #classDeclaration
#public class FormRun extends ObjectRun
#{
#}
ENDSOURCE
ENDMETHODS
OBJECTBANK
PROPERTIES
ENDPROPERTIES

ENDOBJECTBANK

REFERENCEDATASOURCES
ENDREFERENCEDATASOURCES

JOINS
ENDJOINS

PARTREFERENCES
ENDPARTREFERENCES

DESIGN
PROPERTIES
Caption #@SYS25926
ENDPROPERTIES

CONTAINER
CONTROL TAB
PROPERTIES
Name #Calculator
ElementPosition #1073741823
ENDPROPERTIES

METHODS
ENDMETHODS
ENDCONTROL

CONTROL TABPAGE
PROPERTIES
Name #NkdCalculator
ElementPosition #1431655764
HierarchyParent #Calculator
Caption #@NKD10
ENDPROPERTIES

METHODS
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonClear
AutoDeclaration #Yes
Left #220
Top #35
ElementPosition #180840728
HierarchyParent #NkdCalculator
Text #@SYS60541
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

super();

NkdDisplay.text("");

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonDel
AutoDeclaration #Yes
Left #220
Top #5
ElementPosition #271261092
HierarchyParent #NkdCalculator
Text #@NKD12
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

int startPosition;

int textLength;

;

super();

textValue = NkdDisplay.valueStr();

startPosition = 1;

textLength = strLen(textValue) - 1;

NkdDisplay.text(subStr(textValue,startPosition,textLength));

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonDiv
AutoDeclaration #Yes
Left #80
Top #135
ElementPosition #1921432735
HierarchyParent #NkdCalculator
Text #@SYS35673
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+’/’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonEight
AutoDeclaration #Yes
Left #80
Top #85
ElementPosition #1243280005
HierarchyParent #NkdCalculator
Text #@SYS24280
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘8’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonEqual
AutoDeclaration #Yes
Left #155
Top #135
ElementPosition #2034458190
HierarchyParent #NkdCalculator
Text #@SYS177639
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

real ret;

str formula = NkdDisplay.valueStr();

;

super();

ret = runBuf(strFmt(“real calculate()\n”

+"{\n"

+" ;\n"+" return %1;\n"

+"}\n",formula));

NkdDisplay.text(num2str(ret,10,2,1,2));

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonFive
AutoDeclaration #Yes
Left #80
Top #60
ElementPosition #904203640
HierarchyParent #NkdCalculator
Text #@SYS24277
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘5’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonFour
AutoDeclaration #Yes
Top #60
ElementPosition #791178185
HierarchyParent #NkdCalculator
Text #@SYS24276
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘4’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonMinus
AutoDeclaration #Yes
Left #155
Top #110
ElementPosition #1695381825
HierarchyParent #NkdCalculator
Text #@SYS77038
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+’-’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonMul
AutoDeclaration #Yes
Top #135
ElementPosition #1808407280
HierarchyParent #NkdCalculator
Text #@SYS35668
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+’*’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonNine
AutoDeclaration #Yes
Left #155
Top #85
ElementPosition #1356305460
HierarchyParent #NkdCalculator
Text #@SYS24281
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘9’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonOne
AutoDeclaration #Yes
Top #35
ElementPosition #452101820
HierarchyParent #NkdCalculator
Text #@SYS24273
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘1’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonPlus
AutoDeclaration #Yes
Left #80
Top #110
ElementPosition #1582356370
HierarchyParent #NkdCalculator
Text #@NKD9
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+’+’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonSeven
AutoDeclaration #Yes
Top #85
ElementPosition #1130254550
HierarchyParent #NkdCalculator
Text #@SYS24279
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘7’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonSix
AutoDeclaration #Yes
Left #155
Top #60
ElementPosition #1017229095
HierarchyParent #NkdCalculator
Text #@SYS24278
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘6’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonThree
AutoDeclaration #Yes
Left #155
Top #35
ElementPosition #678152730
HierarchyParent #NkdCalculator
Text #@SYS24275
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘3’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonTwo
AutoDeclaration #Yes
Left #80
Top #35
ElementPosition #565127275
HierarchyParent #NkdCalculator
Text #@SYS24274
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘2’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL BUTTON
PROPERTIES
Name #NkdButtonZero
AutoDeclaration #Yes
Top #110
ElementPosition #1469330915
HierarchyParent #NkdCalculator
Text #@SYS24272
ENDPROPERTIES

METHODS
SOURCE #clicked
#void clicked()
#{

str textValue;

;

super();

textValue = NkdDisplay.valueStr()+‘0’;

NkdDisplay.text(textValue);

#}
ENDSOURCE
ENDMETHODS
ENDCONTROL

CONTROL STRINGEDIT
PROPERTIES
Name #NkdDisplay
AutoDeclaration #Yes
AllowEdit #No
Width #200
ElementPosition #361681456
HierarchyParent #NkdCalculator
ENDPROPERTIES

METHODS
ENDMETHODS
ENDCONTROL

ENDCONTAINER

ENDDESIGN

PERMISSIONS #Permissions
PROPERTIES
ENDPROPERTIES

PERMISSIONSET #Read
PROPERTIES
ENDPROPERTIES

FORM #Controls
ENDFORM

TABLES #Tables
ENDTABLES

SERVERMETHODS #Server Methods
ENDSERVERMETHODS

ASSOCIATEDFORMS #Associated Forms
ENDASSOCIATEDFORMS

ENDPERMISSIONSET

PERMISSIONSET #Update
PROPERTIES
ENDPROPERTIES

FORM #Controls
ENDFORM

TABLES #Tables
ENDTABLES

SERVERMETHODS #Server Methods
ENDSERVERMETHODS

ASSOCIATEDFORMS #Associated Forms
ENDASSOCIATEDFORMS

ENDPERMISSIONSET

PERMISSIONSET #Create
PROPERTIES
ENDPROPERTIES

FORM #Controls
ENDFORM

TABLES #Tables
ENDTABLES

SERVERMETHODS #Server Methods
ENDSERVERMETHODS

ASSOCIATEDFORMS #Associated Forms
ENDASSOCIATEDFORMS

ENDPERMISSIONSET

PERMISSIONSET #Delete
PROPERTIES
ENDPROPERTIES

FORM #Controls
ENDFORM

TABLES #Tables
ENDTABLES

SERVERMETHODS #Server Methods
ENDSERVERMETHODS

ASSOCIATEDFORMS #Associated Forms
ENDASSOCIATEDFORMS

ENDPERMISSIONSET

ENDPERMISSIONS

ENDFORM

***Element: PRN

; Microsoft Dynamics AX Project : NkdCalculator unloaded
; --------------------------------------------------------------------------------
PROJECTVERSION 2

PROJECT #NkdCalculator
SHARED
PROPERTIES
Name #NkdCalculator
Origin #{965FD1D9-0386-4B1F-895D-06A06465362F}
ENDPROPERTIES

PROJECTCLASS ProjectNode
GROUP #Forms
PROPERTIES
Name #Forms
ProjectGroupType #Forms
GroupMask #
PreventEditProperties #No
ENDPROPERTIES

BEGINNODE
FILETYPE 0
UTILTYPE 11
UTILOBJECTID 0
NODETYPE 201
NAME #NkdCalculator
ENDNODE
ENDGROUP

ENDPROJECT

***Element: END