Announcements
[DataContractAttribute,SysOperationContractProcessingAttribute(classstr(TPO_PlantProdUIBuilder))] class TPO_PlantProductionContract { InventSiteId inventSiteId; SchedFromDate schedFromDate; SchedToDate schedToDate; OprNum oprNum; ProdId prodId; [DataMemberAttribute('InventSiteId')] public InventSiteId parmPlantId(InventSiteId _inventSiteId = inventSiteId) { inventSiteId = _inventSiteId; return inventSiteId; } [DataMemberAttribute('FromDate')] public SchedFromDate parmStartDate(SchedFromDate _schedFromDate = schedFromDate) { schedFromDate = _schedFromDate; return schedFromDate; } [DataMemberAttribute('ToDate')] public SchedToDate parmToDate(SchedToDate _schedToDate = schedToDate) { schedToDate = _schedToDate; return schedToDate; } [DataMemberAttribute("OperationNumber")] public OprNum parmOperationNum(OprNum _oprNum = oprNum) { oprNum = _oprNum; return oprNum; } [DataMemberAttribute('ProductionNumber')] public ProdId parmProductionNum(ProdId _prodId = prodId) { prodId = _prodId; return prodId; } }
Hi Blue Wang,
As you suggested, I have added the other dialog fields, but it's not working
OperationNum = this.bindInfo().getDialogField(this.dataContractObject(), methodstr(TPO_PlantProductionContract,parmOperationNum));
OperationNum.registerOverrideMethod(methodstr(FormStringControl, lookup), methodstr(TPO_PlantProdUIBuilder,lookupOperNum ), this);
ProductionNum = this.bindInfo().getDialogField(this.dataContractObject(), methodstr(TPO_PlantProductionContract,parmProductionNum));
Plant = this.bindInfo().getDialogField(this.dataContractObject(), methodstr(TPO_PlantProductionContract,parmPlantId));
StartDate = this.bindInfo().getDialogField(this.dataContractObject(), methodstr(TPO_PlantProductionContract,parmStartDate));
EndDate = this.bindInfo().getDialogField(this.dataContractObject(), methodstr(TPO_PlantProductionContract,parmToDate ));
Hi Vikash,
Your build method is missing super call
public void build() { super(); contract = this.dataContractObject(); OperationNum = this.bindInfo().getDialogField(contract, methodstr(TPO_PlantProductionContract,parmOperationNum)); OperationNum.lookupButton(2); }
HI Vikash,
You only gave one field:
dialogField = this.bindInfo().getDialogField(this.dataContractObject(), methodstr(TPO_PlantProductionContract,parmOperationNum));
[DataMemberAttribute("OperationNumber")] public OprNum parmOperationNum(OprNum _oprNum = oprNum) { oprNum = _oprNum; return oprNum; }
Try to add others.
Like siteId, Production number, start date, end date.
Hi Vikash,
When you add SysOperationContractProcessingAttribute, then the dialog field is not generated from the contract class.
Please check getFromDialog () in your Ui Builder class
class TPO_PlantProdUIBuilder extends SrsReportDataContractUIBuilder
{
TPO_PlantProductionContract contract;
DialogField OperationNum;
FormBuildComboBoxControl formComboBoxControl;
public void lookupOperNum(FormIntControl _formIntControl)
{
Query query = new Query();
QueryBuildDataSource DS;
SysTableLookup sysTablelookup;
//create a table lookup
sysTablelookup = SysTableLookup::newParameters(tableNum(ProdJournalRoute),_formIntControl);
sysTablelookup.addLookupfield(fieldNum(ProdJournalRoute, OprNum));
// sysTablelookup.addLookupfield(fieldNum(ProdJournalRoute, OprId));
//create a query
DS = query.addDataSource(tableNum(ProdJournalRoute));
DS.addRange(fieldNum(ProdJournalRoute, OprNum)).value('10');
//assign the query and call lookup
sysTablelookup.parmQuery(query);
sysTablelookup.performFormLookup();
}
public void build()
{
contract = this.dataContractObject();
OperationNum = this.addDialogField(methodstr(TPO_PlantProductionContract,parmOperationNum),contract);
OperationNum.lookupButton(2);
}
public void postRun()
{
Dialog dialogLocal = this.dialog();
DialogField dialogField;
super();
// This method should be called in order to handle events on dialogs.
dialogLocal.dialogForm().formRun().controlMethodOverload(false);
dialogField = this.bindInfo().getDialogField(this.dataContractObject(), methodstr(TPO_PlantProductionContract,parmOperationNum));
dialogField.registerOverrideMethod(methodstr(FormStringControl, lookup), methodstr(TPO_PlantProdUIBuilder,lookupOperNum ), this);
}
}
Hi,
Could you, please, share also UIBuilder class code?
What do you mean by "rest dialog field disappear"? What fields? How did the dialog look like before?
Remember that we don't know how it was before, we only see what you have done and how it looks now (since that's all you shared).
André Arnaud de Cal...
294,208
Super User 2025 Season 1
Martin Dráb
232,970
Most Valuable Professional
nmaenpaa
101,158
Moderator