如何使查找字段不可见?

How to make invisible the lookup field?

我想从 lookup 字段中获取一个值。 但我需要让这个领域不可见。我的代码是这样的:

public void lookup()
{    
    Query query = new Query();
    QueryBuildDataSource queryBuildDataSource;
    QueryBuildRange queryBuildRange;    
    SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(MYTable), this);    
    sysTableLookup.addLookupField(fieldNum(MYTable, FieldTableA));
    sysTableLookup.addLookupField(fieldNum(MYTable, FieldTableB));
    sysTableLookup.addLookupField(fieldNum(MYTable, RecId), true);    
    queryBuildDataSource = query.addDataSource(tableNum(MYTable));    
    sysTableLookup.parmQuery(query);    
    sysTableLookup.performFormLookup();
}

因此,我需要使用 RecID 填充该字段,但我不想在查找中看到 RecId。

可能吗?

或者,另一个问题,是否可以为同一条记录获取两个值,在我的例子中是从 MyTable.FieldTableA 和 Mytable.FieldTableB 获取值?

不,据我所知,使用标准查找是不可能的。您可以在此处查看它如何构建动态查找表单:

\Classes\SysTableLookupBase\buildGrid

您可以制作自己的自定义查询表单。

重新阅读你的问题后,你想要做的是通用和基本功能。

使用Referenced Data Sources调用。见下文:

https://msdn.microsoft.com/en-us/library/gg845085.aspx

你可以看看地址(LogisticsPostalAddress)是如何存储在对象上的,比如SalesTable看看。