Create a temp table with reference fields you wanted
Add the Temp table as a data source in the required from
without any join source
To initialize values when opening form
[FormDataSourceEventHandler(formDataSourceStr(PdsResetVendorBatchDetails, PdsVendBatchInfo), FormDataSourceEventType::Initialized)]
public static void PdsVendBatchInfo_OnInitialized(FormDataSource sender, FormDataSourceEventArgs e)
{
FormRun formRun = sender.formRun() as FormRun;
switch (formRun.args().dataset())
{
case tableNum(InventBatch) :
InventBatch inventBatch = formRun.args().record() as InventBatch;
PdsVendBatchInfoTMP PdsVendBatchInfo1 = sender.cursor();
FormReferenceControl Manufact = formRun.design().controlName(formControlStr(PdsResetVendorBatchDetails, PdsVendBatchInfo_Manufact)) as FormReferenceControl;
FormReferenceControl ManufactSite = formRun.design().controlName(formControlStr(PdsResetVendorBatchDetails, PdsVendBatchInfo_ManufactSite)) as FormReferenceControl;
PdsVendBatchInfo1.Manufact = inventBatch.Manufact;
PdsVendBatchInfo1.ManufactSite = inventBatch.ManufactSite;
PdsVendBatchInfo1.doInsert();
sender.setRecord(PdsVendBatchInfo1);
Manufact.value(inventBatch.Manufact);
ManufactSite.value(inventBatch.ManufactSite);
break;
}
}
Lookup
public static void dirPartyLocationLookup(FormReferenceGroupControl _ctrl, DirPartyRecId _party)
{
container conLocationRoles;
LogisticsLocationRole logisticsLocationRole;
QueryBuildDataSource qbdsDirPartyLocation, qbdsDirPartyLocationRole;
Query query = new Query();
SysReferenceTableLookup sysTableLookup = SysReferenceTableLookup::newParameters(tablenum(DirPartyLocation), _ctrl);
while select RecId from LogisticsLocationRole
where LogisticsLocationRole.IsManufactSite
{
conLocationRoles += LogisticsLocationRole.RecId;
}
sysTableLookup.addLookupfield(fieldNum(DirPartyLocation, Location));
sysTableLookup.addLookupfield(fieldNum(DirPartyLocation, Party));
qbdsDirPartyLocation = query.addDataSource(tablenum(DirPartyLocation));
qbdsDirPartyLocationRole = qbdsDirPartyLocation.addDataSource(tablenum(DirPartyLocationRole));
qbdsDirPartyLocationRole.joinMode(JoinMode::ExistsJoin);
qbdsDirPartyLocationRole.relations(true);
qbdsDirPartyLocationRole.addRange(fieldNum(DirPartyLocationRole, LocationRole)).value(con2Str(conLocationRoles));
if(_party)
{
qbdsDirPartyLocation.addRange(fieldNum(DirPartyLocation, Party)).value(queryValue(_party));
qbdsDirPartyLocation.addRange(fieldNum(DirPartyLocation, Location)).value(SysQuery::valueNot(0));
}
else
{
qbdsDirPartyLocation.addRange(fieldNum(DirPartyLocation, Party)).value(SysQuery::valueEmptyString());
}
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
public static void DirPartyIdLookup(FormControl _ctrl)
{
Query query = new Query();
SysReferenceTableLookup sysTableLookup = SysReferenceTableLookup::newParameters(tablenum(DirPartyTable), _ctrl);
sysTableLookup.addLookupfield(fieldNum(DirPartyTable, PartyNumber));
sysTableLookup.addLookupfield(fieldNum(DirPartyTable, Name));
query.addDataSource(tablenum(DirPartyTable));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
No comments:
Post a Comment