UIBuilder classs:
=============
class Test_UiBuilder extends SysOperationAutomaticUIBuilder
{
DialogField dialogfied,dialogfiedsales;
Text_SysOperationDataContractClass DataContractClass;
}
public void build()
{
//DialogField dialogLocal = this.dataContractObject();
// Dialog dialogLocal = this.dialog();
DataContractClass= this.dataContractObject();
// dialogLocal.addGroup('Customer Id');
//.allowEdit(true);
this.addDialogField(methodStr(Text_SysOperationDataContractClass,parmcust),DataContractClass);
this.addDialogField(methodStr(Text_SysOperationDataContractClass,parmsales),DataContractClass).allowEdit(true);
}
Public void lookupPostJour(FormStringControl _formStringControl)
{
Query query = new Query();
QueryBuildDataSource qbds;
QueryBuildRange qbr;
SysTableLookup lookup;
lookup = SysTableLookup::newParameters(tableNum(SalesTable), _formStringControl);
lookup.addLookupfield(fieldNum(SalesTable, SalesId));
lookup.addLookupfield(fieldNum(SalesTable, CustAccount));
qbds=query.addDataSource(tableNum(SalesTable));
qbr=qbds.addRange(fieldNum(SalesTable, CustAccount));
qbr.value(dialogfied.value());
//SysQuery::value
lookup.parmQuery(query);
lookup.performFormLookup();
}
Public void PostBuild()
{
// DialogField saleslookup;
dialogfied=this.bindInfo().getDialogField(this.dataContractObject(),
methodStr(Text_SysOperationDataContractClass,parmcust));
dialogfiedsales = this.bindInfo().getDialogField(this.dataContractObject(),
methodStr(Text_SysOperationDataContractClass, parmsales));
//if write multiselect look up code no need to write below write
dialogfiedsales.registerOverrideMethod(methodStr(FormStringControl, lookup),
methodStr(Test_UiBuilder, lookupPostJour), this);
// info(dialogfield.value());
}
Service Class:
=================
public class Text_SysOperationServiceClass extends SysOperationServiceBase
{
}
ublic void processOperation(Text_SysOperationDataContractClass _contract)
{
//info ("Running SysOperation Batch Operation");
//CustAccount custAccount;
//SalesId salesid;
info(" customer "+ _contract.parmcust());
info("salesnumber"+ _contract.parmsales());
}
Data contract class:
[DataContractAttribute,
SysOperationAlwaysInitializeAttribute,
SysOperationContractProcessingAttribute(classstr(Test_UiBuilder))]
public class Text_SysOperationDataContractClass
{
CustAccount textValue1;
SalesId textValue;
}
[DataMemberAttribute,
SysOperationLabelAttribute('CustomerID Number'),
SysOperationHelpTextAttribute('select customer number'),
SysOperationDisplayOrderAttribute('1')]
// we provide EDT only ex: CustAccount is EDT
public CustAccount parmcust(CustAccount _textValue=textValue1)
{
textValue1 =_textValue;
return textValue1;
}
[DataMemberAttribute,
SysOperationLabelAttribute('SaleID number'),
SysOperationHelpTextAttribute('select SaleId number'),
SysOperationDisplayOrderAttribute('2')]
// we provide EDT only ex: SalesId is EDT
public SalesId parmsales(SalesId _textValue=textValue)
{
textValue = _textValue;
return textValue;
}
Control Class:
=============
public class Text_SysOperationControllerClass extends SysOperationServiceController
{
}
public ClassDescription caption()
{
return "Batch Operation Task Description";
}
public void new()
{
super();
this.parmClassName(classStr(Text_SysOperationServiceClass));
this.parmMethodName(methodStr(Text_SysOperationServiceClass, processOperation));
this.parmDialogCaption("Batch Operation Dialog Title");
}
public static void main(Args args)
{
Text_SysOperationControllerClass controller;
controller = new Text_SysOperationControllerClass();
controller.startOperation();
}
Multiselect lookup code:
public void postRun()
{
Query query;
QueryBuildDataSource qbds;
container selectedFields;
// super();
query = new Query();
qbds= query.adddatasource(tablenum(SalesTable));
qbds.fields().addField(fieldNum(SalesTable,SalesId));
selectedFields=[tableNum(SalesTable),fieldNum(SalesTable,SalesId)];
msCtrl = SysLookupMultiSelectCtrl::constructWithQuery(this.dialog().dialogForm().formRun(),
dialogfiedsales.control(),query,true,selectedFields);//dynamic Query
}
No comments:
Post a Comment