这是应该与添加到 Tables\ProdBOM 的任何基本系统一起使用的代码。不知何故,查询正在从字段中删除数据。
static void lookupItemIdBOMSubset(FormStringControl _ctrl,
ProdId _prodId)
{
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(ProdBOM), _ctrl);
Query query = new Query();
QueryBuildDataSource qbds = query.addDataSource(tableNum(ProdBOM));
;
qbds.addRange(fieldNum(ProdBOM, ProdId)).value(queryvalue(_prodId));
qbds.addSortField(fieldNum(ProdBOM, LineNum), SortOrder::Ascending);
sysTableLookup.parmQuery(query);
sysTableLookup.addLookupfield(fieldNum(ProdBOM, LineNum));
sysTableLookup.addLookupfield(fieldNum(ProdBOM, BOMId));
sysTableLookup.addLookupfield(fieldNum(ProdBOM, ItemId), true);
// This doesn't work \/
sysTableLookup.addLookupMethod(tablemethodstr(ProdBOM, configId));
// This doesn't work /\
sysTableLookup.addLookupMethod(tablemethodstr(ProdBOM, itemName));
sysTableLookup.addLookupfield(fieldNum(ProdBOM, ProdLineType));
sysTableLookup.addLookupfield(fieldNum(ProdBOM, InventTransId));
sysTableLookup.performFormLookup();
}
在 Tables\ProdBOM\Methods\configId 中,您可以清楚地看到这段代码有问题。这是怎么回事??
//BP Deviation documented
display ConfigId configId()
{
ProdBOM pb;
;
select firstonly pb where pb.RecId == this.RecId;
info(strfmt("Bad: [%1, %2], Good:[%3, %4]", this.ItemId, this.InventDimId, pb.ItemId, pb.InventDimId));
return this.inventDim().ConfigId;
}