static void main(Args _args)
{
Onhandwithdates onhandwithdate;
;
onhandwithdate = new Onhandwithdates();
if(onhandwithdate.prompt())
{
onhandwithdate.run();
}
}
public Object dialog()
{
;
dialog = super();
dfitemid = dialog.addField(typeid(Itemid),'Itemid');
dfitemid.fieldControl().mandatory(true);
// dfitemid.lookupButton(FormLookupButton::Always);
//dates
dffromdate = dialog.addField(typeid(Transdate),'From date');
dftodate = dialog.addField(typeid(Transdate),'To date');
//Dimensions
dfg = dialog.addGroup("Inventory Dimensions");
dfsizeid = dialog.addField(typeid(Itemvalue),'Size');
dfsizeid.lookupButton(FormLookupButton::Always);
dfssiteid = dialog.addField(typeid(InventSiteId),'Site');
dfwarehouse = dialog.addField(typeid(InventLocationId),'Warehouse');
dflocationid = dialog.addField(typeid(wMSLocationId),'Location');
return dialog;
}
public boolean getFromDialog()
{
boolean ret1;
ret1 = super();
itemidloc = dfitemid.value();
if( dfitemid.value() == '')
{
Throw error('Please fill itemid ');
}
fromdate = dffromdate.value();
if((!fromdate) )
{
Throw error("Please fill the from date");
}
todate = dftodate.value();
if((!todate) )
{
Throw error("Please fill the to date");
}
if(fromdate > todate || todate > today() )
{
Throw error("Please check the fromdate and todate");
}
sizeid = dfsizeid.value();
locationid = dflocationid.value();
siteid = dfssiteid.value();
warehouse = dfwarehouse.value();
return ret1;
}
public ClassDescription caption()
{
ClassDescription retloc;
retloc = 'Onhand Quantity between dates';
return retloc;
}
public void dialogPostRun(DialogRunbase _dialog)
{
;
Super(_dialog);
_dialog.formRun().controlMethodOverload(true);
_dialog.formRun().controlMethodOverloadObject(this);
}
public container pack()
{
return [#CurrentVersion,#CurrentList];
}
public boolean unpack(container packedClass)
{
Version version = RunBase::getVersion(packedClass);
;
switch (version)
{
case #CurrentVersion:
[version,#CurrentList] = packedClass;
break;
default:
return false;
}
return true;
}
void Fld4_1_lookup()
{
FormStringControl control = dialog.formRun().controlCallingMethod();
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(Inventsize), control);
Query query = new Query();
;
sysTableLookup.addLookupField(fieldNum(Inventsize, itemid));
sysTableLookup.addLookupField(fieldNum(Inventsize, InventSizeId));
if(dfitemid.value())
{
query.addDataSource(tableNum(Inventsize)).addRange(fieldNum(Inventsize, itemid)).value(dfitemid.value());
}
//You can add the ranges for filtering
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
.............................................................................completed-----------------------------------------------------------
class SamSelectiveLookup extends RunBase
{
FormStringControl custGroupCtrl, customerCtrl;
}
void Customer_lookup()
{
Query query = new Query();
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(custTable), customerCtrl);
;
sysTableLookup.addLookupField(fieldNum(custTable, accountNum));
sysTableLookup.addLookupField(fieldNum(custTable, name));
query.addDataSource(tableNum(custTable)).addRange(fieldNum(CustTable, CustGroup)).value(custGroupCtrl.text());
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
protected Object dialog(Dialog dialog, boolean forceOnClient)
{
DialogRunBase ret;
ret = super(dialog, forceOnClient);
custGroupCtrl = ret.formBuildDesign().addControl(FormControlType::String, 'CustGroup');
custGroupCtrl.extendedDataType(103);
customerCtrl = ret.formBuildDesign().addControl(FormControlType::String, 'Customer');
customerCtrl.extendedDataType(99);
return ret;
}
public void dialogPostRun(DialogRunbase dialog)
{
;
super(dialog);
dialog.dialogForm().formRun().controlMethodOverload(true);
dialog.dialogForm().formRun().controlMethodOverloadObject(this);
custGroupCtrl = dialog.dialogForm().formRun().design().controlName('CustGroup');
customerCtrl = dialog.dialogForm().formRun().design().controlName('Customer');
}
public container pack()
{
return conNull();
}
public boolean unpack(container packedClass)
{
return true;
}
static void main(Args _args)
{
SamSelectiveLookup test1 = new SamSelectiveLookup();
;
if (test1.prompt())
{
test1.run();
}
}
public void run()
{
try
{
ttsbegin;
ttscommit;
}
catch (exception::DeadLock)
{
retry;
}
}
{
super(_dialog);
_dialog.dialogForm(). formRun(). controlMethodOverload(true);
_dialog.dialogForm(). formRun(). controlMethodOverloadObject( this);
}
Note, that in the code above the RunBase class itself is used as event handler (by passing this to the controlMethodOverloadObject() method), but it is possible to create a separate class for handling events.
Afterwards event handlers can be created as method with specific name: _. Control name can be found in the dialog user setup. For example, the following method will handle modify event of the first field control on the dialog:
public void fld1_1_modified()
{
Object control;
control = dialog.formRun(). controlCallingMethod();
if(control.modified())
{
info(“Modified triggered!”);
}
{
DialogRunBase dialog;
;
dialog = super(_dialog, true);
dialog.caption('@RID2885');
dfItem = dialog.addField(typeid(ItemId) );
dfInventLoc = dialog.addField(typeid( InventLocationId));
dfReplaceCost = dialog.addField(typeid( PdsCost));
dfItemConfig = dialog.addField(typeid( ConfigId));
dfColorId = dialog.addField(typeid( InventColorId), '@RID101');
return dialog;
}
Here's the call to the lookup():
void Fld_7_lookup()
{
Formrun fr = this.dialogModify(). parmDialog();
Object control = fr.controlCallingMethod();
;
ConfigTable:: lookupConfigIdSimple(control, dfItem.value());
}
And this is where it keeps getting the Stack Trace error:
public void dialogPostRun(DialogRunbase _dialog)
{
;
super(_dialog);
**_dialog.formRun(). controlMethodOverload(true);** // Causes Stack Trace error
_dialog.formRun(). controlMethodOverloadObject( this);
}
Mayby you should call super(_dialog) last in the dialogPostRun method.
Here is an example code for overriding the modified method. Maybe lookup has the same requirements:
public void dialogPostRun(DialogRunbase _dialog)
{
// Must be overriden to enable overriding modified method
;
_dialog.dialogForm().formRun() .controlMethodOverload(true);
_dialog.dialogForm().formRun() .controlMethodOverloadObject( this);
_dialog.formRun(). controlMethodOverload(true);
_dialog.formRun(). controlMethodOverloadObject( this);
super(_dialog);
}
And for the custom method:
boolean Fld2_1_modified()
{
FormStringControl c = dialog.formrun(). controlCallingMethod();
boolean ret;
;
ret = c.modified(); // Super() Call the FormControl ->modified
dlgCustomField.value(MyClass:: someMethod(dlgCustomField. value())); // example
return ret;
}
public void dialogPostRun(DialogRunbase _dialog)
{
super(_dialog);
_dialog.dialogForm(). formRun(). controlMethodOverload(true);
_dialog.dialogForm(). formRun(). controlMethodOverloadObject( this);
}
Note, that in the code above the RunBase class itself is used as event handler (by passing this to the controlMethodOverloadObject() method), but it is possible to create a separate class for handling events.
Afterwards event handlers can be created as method with specific name: _. Control name can be found in the dialog user setup. For example, the following method will handle modify event of the first field control on the dialog:
public void fld1_1_modified()
{
Object control;
control = dialog.formRun(). controlCallingMethod();
if(control.modified())
{
info(“Modified triggered!”);
}
{
Onhandwithdates onhandwithdate;
;
onhandwithdate = new Onhandwithdates();
if(onhandwithdate.prompt())
{
onhandwithdate.run();
}
}
public Object dialog()
{
;
dialog = super();
dfitemid = dialog.addField(typeid(Itemid),'Itemid');
dfitemid.fieldControl().mandatory(true);
// dfitemid.lookupButton(FormLookupButton::Always);
//dates
dffromdate = dialog.addField(typeid(Transdate),'From date');
dftodate = dialog.addField(typeid(Transdate),'To date');
//Dimensions
dfg = dialog.addGroup("Inventory Dimensions");
dfsizeid = dialog.addField(typeid(Itemvalue),'Size');
dfsizeid.lookupButton(FormLookupButton::Always);
dfssiteid = dialog.addField(typeid(InventSiteId),'Site');
dfwarehouse = dialog.addField(typeid(InventLocationId),'Warehouse');
dflocationid = dialog.addField(typeid(wMSLocationId),'Location');
return dialog;
}
public boolean getFromDialog()
{
boolean ret1;
ret1 = super();
itemidloc = dfitemid.value();
if( dfitemid.value() == '')
{
Throw error('Please fill itemid ');
}
fromdate = dffromdate.value();
if((!fromdate) )
{
Throw error("Please fill the from date");
}
todate = dftodate.value();
if((!todate) )
{
Throw error("Please fill the to date");
}
if(fromdate > todate || todate > today() )
{
Throw error("Please check the fromdate and todate");
}
sizeid = dfsizeid.value();
locationid = dflocationid.value();
siteid = dfssiteid.value();
warehouse = dfwarehouse.value();
return ret1;
}
public ClassDescription caption()
{
ClassDescription retloc;
retloc = 'Onhand Quantity between dates';
return retloc;
}
public void dialogPostRun(DialogRunbase _dialog)
{
;
Super(_dialog);
_dialog.formRun().controlMethodOverload(true);
_dialog.formRun().controlMethodOverloadObject(this);
}
public container pack()
{
return [#CurrentVersion,#CurrentList];
}
public boolean unpack(container packedClass)
{
Version version = RunBase::getVersion(packedClass);
;
switch (version)
{
case #CurrentVersion:
[version,#CurrentList] = packedClass;
break;
default:
return false;
}
return true;
}
void Fld4_1_lookup()
{
FormStringControl control = dialog.formRun().controlCallingMethod();
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(Inventsize), control);
Query query = new Query();
;
sysTableLookup.addLookupField(fieldNum(Inventsize, itemid));
sysTableLookup.addLookupField(fieldNum(Inventsize, InventSizeId));
if(dfitemid.value())
{
query.addDataSource(tableNum(Inventsize)).addRange(fieldNum(Inventsize, itemid)).value(dfitemid.value());
}
//You can add the ranges for filtering
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
.............................................................................completed-----------------------------------------------------------
class SamSelectiveLookup extends RunBase
{
FormStringControl custGroupCtrl, customerCtrl;
}
void Customer_lookup()
{
Query query = new Query();
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(custTable), customerCtrl);
;
sysTableLookup.addLookupField(fieldNum(custTable, accountNum));
sysTableLookup.addLookupField(fieldNum(custTable, name));
query.addDataSource(tableNum(custTable)).addRange(fieldNum(CustTable, CustGroup)).value(custGroupCtrl.text());
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
protected Object dialog(Dialog dialog, boolean forceOnClient)
{
DialogRunBase ret;
ret = super(dialog, forceOnClient);
custGroupCtrl = ret.formBuildDesign().addControl(FormControlType::String, 'CustGroup');
custGroupCtrl.extendedDataType(103);
customerCtrl = ret.formBuildDesign().addControl(FormControlType::String, 'Customer');
customerCtrl.extendedDataType(99);
return ret;
}
public void dialogPostRun(DialogRunbase dialog)
{
;
super(dialog);
dialog.dialogForm().formRun().controlMethodOverload(true);
dialog.dialogForm().formRun().controlMethodOverloadObject(this);
custGroupCtrl = dialog.dialogForm().formRun().design().controlName('CustGroup');
customerCtrl = dialog.dialogForm().formRun().design().controlName('Customer');
}
public container pack()
{
return conNull();
}
public boolean unpack(container packedClass)
{
return true;
}
static void main(Args _args)
{
SamSelectiveLookup test1 = new SamSelectiveLookup();
;
if (test1.prompt())
{
test1.run();
}
}
public void run()
{
try
{
ttsbegin;
ttscommit;
}
catch (exception::DeadLock)
{
retry;
}
}
-------------------------------------------------------------------------
public void dialogPostRun(DialogRunbase _dialog){
super(_dialog);
_dialog.dialogForm().
_dialog.dialogForm().
}
Note, that in the code above the RunBase class itself is used as event handler (by passing this to the controlMethodOverloadObject() method), but it is possible to create a separate class for handling events.
Afterwards event handlers can be created as method with specific name: _. Control name can be found in the dialog user setup. For example, the following method will handle modify event of the first field control on the dialog:
public void fld1_1_modified()
{
Object control;
control = dialog.formRun().
if(control.modified())
{
info(“Modified triggered!”);
}
public Object dialog(DialogRunbase _dialog, boolean _forceOnClient)
{
DialogRunBase dialog;
;
dialog = super(_dialog, true);
dialog.caption('@RID2885');
dfItem = dialog.addField(typeid(ItemId) );
dfInventLoc = dialog.addField(typeid( InventLocationId));
dfReplaceCost = dialog.addField(typeid( PdsCost));
dfItemConfig = dialog.addField(typeid( ConfigId));
dfColorId = dialog.addField(typeid( InventColorId), '@RID101');
return dialog;
}
{
DialogRunBase dialog;
;
dialog = super(_dialog, true);
dialog.caption('@RID2885');
dfItem = dialog.addField(typeid(ItemId)
dfInventLoc = dialog.addField(typeid(
dfReplaceCost = dialog.addField(typeid(
dfItemConfig = dialog.addField(typeid(
dfColorId = dialog.addField(typeid(
return dialog;
}
void Fld_7_lookup() { Formrun fr = this.dialogModify().parmDialog(); Object control = fr.controlCallingMethod(); ; ConfigTable:: lookupConfigIdSimple(control, dfItem.value()); }
public void dialogPostRun(DialogRunbase _dialog) { ; super(_dialog); **_dialog.formRun().controlMethodOverload(true);** // Causes Stack Trace error _dialog.formRun(). controlMethodOverloadObject( this); }
Mayby you should call super(_dialog) last in the dialogPostRun method.
Here is an example code for overriding the modified method. Maybe lookup has the same requirements:
public void dialogPostRun(DialogRunbase _dialog)
{
// Must be overriden to enable overriding modified method
;
_dialog.dialogForm().formRun() .controlMethodOverload(true);
_dialog.dialogForm().formRun() .controlMethodOverloadObject( this);
_dialog.formRun(). controlMethodOverload(true);
_dialog.formRun(). controlMethodOverloadObject( this);
super(_dialog);
}
{
// Must be overriden to enable overriding modified method
;
_dialog.dialogForm().formRun()
_dialog.dialogForm().formRun()
_dialog.formRun().
_dialog.formRun().
super(_dialog);
}
And for the custom method:
boolean Fld2_1_modified()
{
FormStringControl c = dialog.formrun(). controlCallingMethod();
boolean ret;
;
ret = c.modified(); // Super() Call the FormControl ->modified
dlgCustomField.value(MyClass:: someMethod(dlgCustomField. value())); // example
return ret;
}
public Object dialog(DialogRunbase _dialog, boolean _forceOnClient){
FormStringControl c = dialog.formrun().
boolean ret;
;
ret = c.modified(); // Super() Call the FormControl ->modified
dlgCustomField.value(MyClass::
return ret;
}
{
DialogRunBase dialog;
;
dialog = super(_dialog, true);
dialog.caption('@RID2885');
dfItem = dialog.addField(typeid(ItemId)
dfInventLoc = dialog.addField(typeid(
dfReplaceCost = dialog.addField(typeid(
dfItemConfig = dialog.addField(typeid(
dfColorId = dialog.addField(typeid(
return dialog;
}
Here's the call to the lookup():
void Fld_7_lookup()
{
Formrun fr = this.dialogModify().
Object control = fr.controlCallingMethod();
;
ConfigTable::
}
And this is where it keeps getting the Stack Trace error:
public void dialogPostRun(DialogRunbase _dialog)
{
;
super(_dialog);
**_dialog.formRun().
_dialog.formRun().
}
Mayby you should call super(_dialog) last in the dialogPostRun method.
Here is an example code for overriding the modified method. Maybe lookup has the same requirements:
public void dialogPostRun(DialogRunbase _dialog)
{
// Must be overriden to enable overriding modified method
;
_dialog.dialogForm().formRun()
_dialog.dialogForm().formRun()
_dialog.formRun().
_dialog.formRun().
super(_dialog);
}
And for the custom method:
boolean Fld2_1_modified()
{
FormStringControl c = dialog.formrun().
boolean ret;
;
ret = c.modified(); // Super() Call the FormControl ->modified
dlgCustomField.value(MyClass::
return ret;
}
public void dialogPostRun(DialogRunbase _dialog)
{
super(_dialog);
_dialog.dialogForm().
_dialog.dialogForm().
}
Note, that in the code above the RunBase class itself is used as event handler (by passing this to the controlMethodOverloadObject() method), but it is possible to create a separate class for handling events.
Afterwards event handlers can be created as method with specific name: _. Control name can be found in the dialog user setup. For example, the following method will handle modify event of the first field control on the dialog:
public void fld1_1_modified()
{
Object control;
control = dialog.formRun().
if(control.modified())
{
info(“Modified triggered!”);
}
No comments:
Post a Comment