[英]Ax 2012 custom lookup
我想創建3個表及其字段的查找,我的要求是在第一個字段中我要顯示3個表名作為查找,在第二個字段中我要顯示在表中選擇的所有表字段第一場。
例如,如果在第一個字段中查找“路線”,“銷售籃”和“ Invent”表,則在第一個字段中選擇“ Invent”表,然后在第二個字段中,我必須顯示“ invent”表中的所有字段。 請在這方面幫助我。
我嘗試使用正常過程進行查找,但無法成功,請幫助我找到正確的方向
TableId tableId = pickTable();
FieldId fieldId = pickField(tableId);
info(tableId2name(tableId));
info(fieldId2name(tableId, fieldId));
要么
public void lookup()
{
SysTableLookup sysTableLookup;
SysDictField sysDictField;
TmpTableFieldLookup tmpTableFieldLookup;
Enumerator en;
super();
en = SysDictTable::newName(tableStr(InventTable)).fields(false, true, false).getEnumerator();
while (en.moveNext())
{
sysDictField = en.current();
tmpTableFieldLookup.TableName = sysDictField.tableName();
tmpTableFieldLookup.FieldMethodName = sysDictField.name();
tmpTableFieldLookup.insert();
}
sysTableLookup = SysTableLookup::newParameters(tableNum(tmpTableFieldLookup), this);
sysTableLookup.addLookupfield(fieldNum(TmpTableFieldLookup, TableName));
sysTableLookup.addLookupfield(fieldNum(TmpTableFieldLookup, FieldMethodName), true);
//BP Deviation documented
sysTableLookup.parmTmpBuffer(tmpTableFieldLookup);
sysTableLookup.performFormLookup();
}
表名查找 :
public void lookupTableName(FormControl _formControl)
{
container validTableNames = [tableStr(Route), tableStr(SalesBasket), tableStr(InventTable)];
SysTableLookup sysTableLookup;
Query q;
QueryBuildDataSource qbds;
sysTableLookup = SysTableLookup::newParameters(tablenum(SysModelElement), _formControl);
sysTableLookup.addLookupfield(fieldnum(SysModelElement, Name));
sysTableLookup.addLookupfield(fieldnum(SysModelElement, AxId));
q = new Query();
qbds = q.addDataSource(tablenum(SysModelElement));
qbds.addRange(fieldnum(SysModelElement, Name)).value(con2Str(validTableNames));
qbds = qbds.addDataSource(tablenum(SysModelElementType));
qbds.addRange(fieldnum(SysModelElementType, Name)).value(SysQuery::value(UtilElementType::Table));
qbds.relations(true);
sysTableLookup.parmQuery(q);
sysTableLookup.performFormLookup();
}
字段名稱查詢 :
public void lookupFieldName(FormControl _formControl, RefTableId _refTableId)
{
SysTableLookup sysTableLookup;
Query q;
QueryBuildDataSource qbds;
sysTableLookup = SysTableLookup::newParameters(tablenum(SysModelElement), _formControl);
sysTableLookup.addLookupfield(fieldnum(SysModelElement, Name));
sysTableLookup.addLookupfield(fieldnum(SysModelElement, AxId));
q = new Query();
qbds = q.addDataSource(tablenum(SysModelElement));
qbds.addRange(fieldnum(SysModelElement, ParentId)).value(queryValue(_refTableId));
qbds = qbds.addDataSource(tablenum(SysModelElementType));
qbds.addRange(fieldnum(SysModelElementType, Name)).value(SysQuery::value(UtilElementType::TableField));
qbds.relations(true);
sysTableLookup.parmQuery(q);
sysTableLookup.performFormLookup();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.