Add lookup to batch dialog
Add lookup to Batch dialog
Step 1: Creating a batch job parameter creates a contract class containing a reference to the UI builder class.
Code:
[DataContractAttribute,
SysOperationContractProcessingAttribute(ClassStr(Name UI Builder Class))]
class Lok_CustomerPaymentContract
{
LedgerJournalNameId journalName;
[
DataMemberAttribute,
SysOperationLabelAttribute(literalStr("As per required ")),
SysOperationDisplayOrderAttribute('1')
]
public LedgerJornalNameId parmJournalName(LedgerJournalNameId _journalName = journalName)
{
JournalName = _journalName;
return journalName;
}
}
Step 2: Now Create UI Builder Class to customize the parameter.
class Lok_CustomerPaymentUIbuilder extends SysOperationAutomaticUIBuilder
{
#define.lookupAlways(1)
DialogField journalNameField;
public void postBuild()
{
{
super();
journalNameField = this.bindInfo().getDialogField(
methodstr(Lok_CustomerPaymentContract, parmjournalName));
journalNameField.lookupButton(#lookupAlways);
}
public void postRun()
{
super();
journalNameField.registerOverrideMethod(methodstr(FormStringControl, lookup),
methodstr(Lok_CutomerPaymentUIBuilder, nameLookup), this);
}
public void nameLookup(FormStringControl _control)
{
Query q;
QueryBuildDataSource qbds;
SysTableLookup stl;
QueryBuildRange qbr;
q = new Query();
qbds = q.addDataSource(tableNum(LedgerJournalName));
qbds.field().clearFieldList();
qbds.field().addField(fieldNum(LedgerjournalName, JournalName));
qbds.addGroupByField(fieldNum(LedgerJournalName, JournalName));
qbr= qbds.addRange(fieldNum(LedgerJournalName, JournalType));
qbr.value(enum2str(LedgerJournalType::Custpayment));
stl = SysTableLookup::newParameter(tableNum(LedgerJournalName, JournalName));
stl.addLookup(fieldNum(LedgerJournalName, JournalName));
stl.parmQuery(q);
stl.performFormLookup():
}
}
Now Create a class with a member and Bussiness Logic.
Now to call BatchJob Create an action menu item.
Comments
Post a Comment