/// <summary>
/// Looks up fields based on the <c>SalesTable</c> and <c>SalesLine</c> tables.
/// </summary>
/// <remarks>
/// Lookup is based on all tables that are related to <c>SalesTable</c> and <c>SalesLine</c>.
/// </remarks>
public void lookup()
{
SysTableLookup sysTableLookup;
Query query;
QueryBuildDatasource queryBuildDatasource;
str valueStr;
xRefTableRelation xRefTableRelation;
// looking up the tables here.
query = new Query();
queryBuildDatasource = query.addDataSource(tableNum(UtilElements));
queryBuildDatasource.addRange(fieldnum(UtilElements, RecordType)).value(enum2str(UtilElementType::Table));
// Set order mode so duplicate tables won't show up.
queryBuildDatasource.orderMode(OrderMode::GroupBy);
sysTableLookup = systablelookup::newParameters(tableNum(UtilElements), this);
sysTableLookup.addLookupfield(fieldnum(UtilElements, Name));
// Find all tables that are related to SalesTable and SalesLine.
while select tableName from xRefTableRelation
where xRefTableRelation.RelatedTableName == tableStr(SalesTable)
|| xRefTableRelation.RelatedTableName == tableStr(SalesLine)
{
valueStr = valueStr + xRefTableRelation.TableName + ', ';
}
// Find all tables that SalesTable and SalesLine are related to.
while select RelatedTableName from xRefTableRelation
where xRefTableRelation.TableName == tableStr(SalesTable)
|| xRefTableRelation.TableName == tableStr(SalesLine)
{
valueStr = valueStr + xRefTableRelation.RelatedTableName + ', ';
}
queryBuildDatasource.addRange(fieldnum(UtilElements, Name)).value(valueStr);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
Comments
Post a Comment