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