Exportfile for AOT version 1.0 or later Formatversion: 1 ***Element: CLS ; Microsoft Dynamics Class: Tutorial_RunbaseForm unloaded ; -------------------------------------------------------------------------------- CLSVERSION 1 CLASS #Tutorial_RunbaseForm PROPERTIES Name #Tutorial_RunbaseForm Extends #RunBaseBatch RunOn #Called from ENDPROPERTIES METHODS Version: 3 SOURCE #canGoBatch #public boolean canGoBatch() #{ #// return false; # return true; #} ENDSOURCE SOURCE #classDeclaration #// This is a framework class. Customizing this class may cause problems with future upgrades to the software. #class Tutorial_RunbaseForm extends RunBaseBatch #{ # // Packed # TransDate transDate; # CustAccount custAccount; # InventTransType transType; # InventTransType transTypeOnForm; # # SysQueryRun queryrun; # # DialogField dlgtransDate; # DialogField dlgComboBoxTransType; # # SysFormEnumComboBox sysFormEnumComboBox; # # #define.CurrentVersion(3) # #define.Version1(1) # #localmacro.CurrentList # transDate, # custAccount, # transType, # transTypeOnForm # #endmacro #} ENDSOURCE SOURCE #dialog #public Object dialog() #{ # DialogRunbase dialog = Dialog::newFormnameRunbase(formstr(tutorial_RunbaseForm),this); # Set enumSet = new Set(Types::Enum); # ; # dialog = super(dialog); # # dlgtransDate = dialog.addField(typeid(TransDate)); # dlgtransDate.value(transDate); # # // Add the control on the dialog form. typeId has to represent an enum (EDT based on enum is also OK) # dlgComboBoxTransType = dialog.addField(typeId(InventTransType)); # # // Fill in acceptable values in the comboBox # enumSet.add(InventTransType::InventTransfer); # enumSet.add(InventTransType::WMSTransport); # enumSet.add(InventTransType::TransferOrderReceive); # enumSet.add(InventTransType::Sales); # enumSet.add(InventTransType::Purch); # # // Initialize the comboBox and fill it with values # // The first argument is null, because formRun is not available at this moment # // The last argument provides for a way to handle the control before the form is opened # sysFormEnumComboBox = SysFormEnumComboBox::newParameters(null, dlgComboBoxTransType.control().id(), enumNum(InventTransType), enumSet, dialog.form()); # # return dialog; #} ENDSOURCE SOURCE #dialogPostRun #public void dialogPostRun(DialogRunbase dialog) #{ # ; # super(dialog); # # if (sysFormEnumComboBox) # { # // Specify the formRun (at this point the formRun is already available) # // This is needed to track selection in the comboBox # sysFormEnumComboBox.parmFormRun(dialog.dialogForm().formRun()); # // Select a specific entry in the comboBox, if needed # sysFormEnumComboBox.select(InventTransType::InventTransfer); # } #} ENDSOURCE SOURCE #getFromDialog #public boolean getFromDialog() #{ # boolean ret; # # ret = super(); # # transDate = dlgtransDate.value(); # # if (sysFormEnumComboBox) # // Need to use the selection method of the SysFormEnumComboBox class here, not the DialogField.value() # transType = sysFormEnumComboBox.selection(); # # //transTypeonForm is handled via modified method on the form # //custAccount is handled via the edit method on the form # # return ret; #} ENDSOURCE SOURCE #initParmDefault #public void initParmDefault() #{ # this.initQuery(); # # super(); #} ENDSOURCE SOURCE #initQuery #void initQuery() #{ # Query query = new Query(); #; # query.addDataSource(tablenum(InventTable)); # queryrun = new SysQueryRun(query); #} ENDSOURCE SOURCE #new #protected void new() #{ # super(); #} ENDSOURCE SOURCE #pack #public container pack() #{ # return [#CurrentVersion,#CurrentList,queryRun.pack()]; #} ENDSOURCE SOURCE #parmCustAccount #CustAccount parmCustAccount(CustAccount _custAccount = custAccount) #{ #; # custAccount = _custAccount; # # return custAccount; #} ENDSOURCE SOURCE #parmTransTypeOnForm #public InventTransType parmTransTypeOnForm(InventTransType _transTypeOnForm = transTypeOnForm) #{ # ; # transTypeOnForm = _transTypeOnForm; # # return transTypeOnForm; #} # ENDSOURCE SOURCE #queryrun #QueryRun queryrun() #{ # return queryrun; #} ENDSOURCE SOURCE #run #public void run() #{ # super(); # # // Just show the selection is correct # info(strFmt('Generated from dialog method = %1', transType)); # info(strFmt('Created on form = %1', transTypeOnForm)); #} ENDSOURCE SOURCE #showQueryValues #public boolean showQueryValues() #{ # return true; #} ENDSOURCE SOURCE #unpack #public boolean unpack(container packedClass) #{ # Version version = RunBase::getVersion(packedClass); # container queryCon; # # switch (version) # { # case #CurrentVersion: # [version,#CurrentList,queryCon] = packedClass; # if (SysQuery::isPackedOk(queryCon)) # queryRun = new QueryRun(queryCon); # else # this.initQuery(); # break; # default: # return false; # } # # return true; #} ENDSOURCE SOURCE #construct #server static Tutorial_RunbaseForm construct() #{ # return new Tutorial_RunbaseForm(); #} ENDSOURCE SOURCE #main #static void main(Args args) #{ # Tutorial_RunbaseForm tutorial_RunbaseForm = Tutorial_RunbaseForm::construct(); # # if (tutorial_RunbaseForm.prompt()) # tutorial_RunbaseForm.run(); # #} ENDSOURCE ENDMETHODS ENDCLASS ***Element: CLS ; Microsoft Dynamics Class: SysFormEnumComboBox unloaded ; -------------------------------------------------------------------------------- CLSVERSION 1 CLASS #SysFormEnumComboBox PROPERTIES Name #SysFormEnumComboBox Extends # RunOn #Called from ENDPROPERTIES METHODS Version: 3 SOURCE #construct #public static SysFormEnumComboBox construct() #{ # return new SysFormEnumComboBox(); #} # ENDSOURCE SOURCE #selection #/// #/// Converts current selection to an enum value. #/// #/// #/// Enum value corresponding to the current selection in the combobox. #/// #public int selection() #{ # FormComboBoxControl formComboBoxControl; # int ret; # ; # # formComboBoxControl = formRun.control(comboBoxControlId); # ret = sysDictEnum.name2Value(formComboBoxControl.getText(formComboBoxControl.selection())); # return ret; #} ENDSOURCE SOURCE #select #/// #/// Selects a combobox item corresponding to the required value. #/// #/// #/// Enum value to select in the combobox. #/// #/// #/// The required value is not one of the allowed enum values. #/// #public void select(int _enumValue) #{ # FormComboBoxControl formComboBoxControl; # ; # # if (!enumValue2ComboBoxItemMap.exists(_enumValue)) # throw error(Error::wrongUseOfFunction(funcname())); # # formComboBoxControl = formRun.control(comboBoxControlId); # formComboBoxControl.selection(enumValue2ComboBoxItemMap.lookup(_enumValue) - 1); #} ENDSOURCE SOURCE #parmFormRun #public FormRun parmFormRun(FormRun _formRun = formRun) #{ # ; # formRun = _formRun; # # return formRun; #} # ENDSOURCE SOURCE #parmEnumId #public enumId parmEnumId(enumId _enumId = enumId) #{ # ; # enumId = _enumId; # # return enumId; #} # ENDSOURCE SOURCE #parmComboBoxControlId #public int parmComboBoxControlId(int _comboBoxControlId = comboBoxControlId) #{ # ; # comboBoxControlId = _comboBoxControlId; # # return comboBoxControlId; #} # ENDSOURCE SOURCE #parmAllowedEnumValuesSet #public Set parmAllowedEnumValuesSet(Set _allowedEnumValuesSet = allowedEnumValuesSet) #{ # ; # allowedEnumValuesSet = _allowedEnumValuesSet; # # return allowedEnumValuesSet; #} # ENDSOURCE SOURCE #new #protected void new() #{ #} ENDSOURCE SOURCE #classDeclaration #/// #/// The class facilitates work with a form combobox control, representing an enum, #/// when only some of the enum values are allowed. #/// #// This is a framework class. Customizing this class may cause problems with future upgrades to the software. #class SysFormEnumComboBox #{ # FormRun formRun; # int comboBoxControlId; # enumId enumId; # Set allowedEnumValuesSet; # Map enumValue2ComboBoxItemMap; # SysDictEnum sysDictEnum; # Form form; #} ENDSOURCE SOURCE #init #/// #/// Builds combobox based on which values of the enum are allowed. #/// #/// #/// The combobox is assigned no enum and is build at runtime. #/// #protected void init() #{ # #define.List(1) # # FormComboBoxControl formComboBoxControl; # SetEnumerator allowedEnumValueEnumerator; # int comboBoxItemNumber; # int allowedEnumValue; # ; # # sysDictEnum = new SysDictEnum(enumId); # # // if form was provided, do not use formRun, as it is unavailable yet # formComboBoxControl = form ? form.design().control(comboBoxControlId) : formRun.form().design().control(comboBoxControlId); # formComboBoxControl.enumType(0); // don't assign any enum type # formComboBoxControl.extendedDataType(0); //don't assign any extended data type # formComboBoxControl.label(sysDictEnum.label()); # formComboBoxControl.helpText(sysDictEnum.help()); # formComboBoxControl.comboType(#List); # formComboBoxControl.items(allowedEnumValuesSet.elements()); # # enumValue2ComboBoxItemMap = new Map(Types::Integer, Types::Integer); # comboBoxItemNumber = 1; # allowedEnumValueEnumerator = allowedEnumValuesSet.getEnumerator(); # while (allowedEnumValueEnumerator.moveNext()) # { # allowedEnumValue = allowedEnumValueEnumerator.current(); # formComboBoxControl.item(comboBoxItemNumber); # formComboBoxControl.text(sysDictEnum.value2Name(allowedEnumValue)); # enumValue2ComboBoxItemMap.insert(allowedEnumValue, comboBoxItemNumber); # comboBoxItemNumber++; # } #} ENDSOURCE SOURCE #parmForm #// Provide a way to pass in form #public Form parmForm(Form _form = form) #{ # ; # form = _form; # # return form; #} # ENDSOURCE SOURCE #newParameters #/// #/// Prepares the combobox for use. #/// #/// #/// FormRun object, where the combobox is located. #/// #/// #/// ID of the combobox control. #/// #/// #/// Enum ID. #/// #/// #/// A Set object, filled with allowed enum values. #/// #/// #/// SysCustomizedEnumComboBox instance. #/// #/// #/// The method should be used before super call in the init method of the form. #/// Example: #/// #/// public void init() #/// { #/// Set allowedValues = new Set(Types::Enum); #/// ; #/// #/// allowedValues.add(ABC::A); #/// allowedValues.add(ABC::C); #/// sysCustomizedEnumComboBox = SysCustomizedEnumComboBox::newParameters(element, #/// control::MyComboBox, #/// enumNum(ABC), #/// allowedValues); #/// super(); #/// } #/// #/// #public static SysFormEnumComboBox newParameters( # FormRun _formRun, # int _comboBoxControlId, # enumId _enumId, # Set _allowedEnumValuesSet, # Form _form = null) #{ # SysFormEnumComboBox sysFormEnumComboBox = SysFormEnumComboBox::construct(); # ; # # if (_formRun) # sysFormEnumComboBox.parmFormRun(_formRun); # if (_form) # sysFormEnumComboBox.parmForm(_form); # sysFormEnumComboBox.parmComboBoxControlId(_comboBoxControlId); # sysFormEnumComboBox.parmEnumId(_enumId); # sysFormEnumComboBox.parmAllowedEnumValuesSet(_allowedEnumValuesSet); # sysFormEnumComboBox.init(); # # return sysFormEnumComboBox; #} ENDSOURCE ENDMETHODS ENDCLASS ***Element: FRM ; Microsoft Dynamics Forms unloaded ; -------------------------------------------------------------------------------- FRMVERSION 5 FORM #tutorial_RunbaseForm PROPERTIES Name #tutorial_RunbaseForm ENDPROPERTIES METHODS Version: 3 SOURCE #classDeclaration #public class FormRun extends ObjectRun #{ # Tutorial_RunbaseForm tutorial_RunbaseForm; # SysFormEnumComboBox sysFormEnumComboBox; #} ENDSOURCE SOURCE #CloseOk #void closeOk() #{ # DialogRunbase dialog = element.args().caller(); #; # dialog.updateServer(); # # // Update the value in the class # tutorial_RunbaseForm.parmTransTypeOnForm(sysFormEnumComboBox.selection()); # # if (tutorial_RunbaseForm.checkCloseDialog()) # super(); #} # ENDSOURCE SOURCE #init #public void init() #{ # Set enumSet = new Set(Types::Enum); # ; # if (!element.args().caller()) # throw error("@SYS90597"); # # tutorial_RunbaseForm = element.args().caller().runbase(); # # // Notice that values will be always shown in order from lowest to highest integer value # enumSet.add(InventTransType::Asset); # enumSet.add(InventTransType::WMSOrder); # # // Initialize the comboBox and fill it with values # sysFormEnumComboBox = SysFormEnumComboBox::newParameters(element, control::ComboBoxOnForm, enumnum(InventTransType), enumSet); # # super(); # # // If you want to select a specific value in the comboBox, make sure to do it after super() # sysFormEnumComboBox.select(InventTransType::WMSOrder); #} ENDSOURCE SOURCE #runBase #//AOSRunMode::Client #RunBase runBase() #{ # return tutorial_RunbaseForm; #} # ENDSOURCE SOURCE #editCustAccount #//BP Deviation Documented #edit CustAccount editCustAccount( # boolean _set, # CustAccount _custAccount # ) #{ # if (_set) # tutorial_RunbaseForm.parmCustAccount(_custAccount); # # return tutorial_RunbaseForm.parmCustAccount(); #} ENDSOURCE ENDMETHODS OBJECTBANK ENDOBJECTBANK JOINS ENDJOINS DESIGN PROPERTIES Caption #@SYS70984 HideToolbar #Yes HTMLHelpFile #HTMLHelpFileIWorker HTMLHelpTopic #AxShared.chm::/html/a3a4b12f-311c-4b56-9752-c5fecf31ce54.htm ENDPROPERTIES CONTAINER CONTROL TAB ;==== controlId:12289, containerId: 0, containerdata:97 ;---------------------------------------------------------- PROPERTIES Name #Tab Tabs #1 ENDPROPERTIES CONTAINER CONTROL TABPAGE ;==== controlId:12290, containerId:12289, containerdata:12289 ;---------------------------------------------------------- PROPERTIES Name #TabPage Caption #@SYS2952 ENDPROPERTIES CONTAINER CONTROL GROUP ;==== controlId:12291, containerId:12290, containerdata:12290 ;---------------------------------------------------------- PROPERTIES Name #dialogStartGrp HTMLHelpFile #HTMLHelpFileAxShared HTMLHelpTopic #html/4D2CF679-8360-4271-85B8-9079AC40098F.htm FrameType #None ENDPROPERTIES CONTAINER ENDCONTAINER ENDCONTROL CONTROL STRINGEDIT ;==== controlId:12292, containerId:12290, containerdata:12290 ;---------------------------------------------------------- PROPERTIES Name #editCustAccount DataMethod #editCustAccount ENDPROPERTIES ENDCONTROL CONTROL COMBOBOX ;==== controlId:12297, containerId:12290, containerdata: 0 ;---------------------------------------------------------- PROPERTIES Name #ComboBoxOnForm ENDPROPERTIES ENDCONTROL CONTROL BUTTONGROUP ;==== controlId:12293, containerId:12290, containerdata:12290 ;---------------------------------------------------------- PROPERTIES Name #RightButtonGrp ENDPROPERTIES CONTAINER ENDCONTAINER ENDCONTROL ENDCONTAINER ENDCONTROL ENDCONTAINER ENDCONTROL CONTROL BUTTONGROUP ;==== controlId:12294, containerId: 0, containerdata:12290 ;---------------------------------------------------------- PROPERTIES Name #BottomButtonGrp Left #Auto (right) Top #Bottom edge ArrangeMethod #Horizontal, flush right ENDPROPERTIES CONTAINER CONTROL COMMANDBUTTON ;==== controlId:12295, containerId:12294, containerdata:12294 ;---------------------------------------------------------- PROPERTIES Name #CommandButtonOK Command #263 ENDPROPERTIES ENDCONTROL CONTROL COMMANDBUTTON ;==== controlId:12296, containerId:12294, containerdata:12294 ;---------------------------------------------------------- PROPERTIES Name #CommandButtonCancel Command #264 ENDPROPERTIES ENDCONTROL ENDCONTAINER ENDCONTROL ENDCONTAINER ENDDESIGN ENDFORM ***Element: PRN ; Microsoft Dynamics Project : DEV_SysFormEnumComboBox unloaded ; -------------------------------------------------------------------------------- PROJECTVERSION 2 PROJECT #DEV_SysFormEnumComboBox PRIVATE PROPERTIES Name #DEV_SysFormEnumComboBox ENDPROPERTIES GROUP #Classes PROPERTIES Name #Classes ProjectGroupType #Classes GroupMask # PreventEditProperties #No ENDPROPERTIES BEGINNODE FILETYPE 0 UTILTYPE 45 UTILOBJECTID 6015 NODETYPE 329 NAME #Tutorial_RunbaseForm ENDNODE BEGINNODE FILETYPE 0 UTILTYPE 45 UTILOBJECTID 50009 NODETYPE 329 NAME #SysFormEnumComboBox ENDNODE ENDGROUP GROUP #Forms PROPERTIES Name #Forms ProjectGroupType #Forms GroupMask # PreventEditProperties #No ENDPROPERTIES BEGINNODE FILETYPE 0 UTILTYPE 11 UTILOBJECTID 0 NODETYPE 201 NAME #tutorial_RunbaseForm ENDNODE ENDGROUP ENDPROJECT ***Element: END