问题描述
我需要使用 onlookup 事件根据表单中的另一个表过滤我的数据。 我有 inventsite 表单和 2 个表,其中有 1:N 关系。其中之一是 SitePI,另一个是 PITrans。
这里是场景:我转到 InventSite 表单并添加一个名为 test 的站点,然后转到 SitePI 表(它在快速选项卡中)我添加了记录(001、004、005),我添加了另一个名为 test2 的站点并为其 SitePI 添加记录 003,006,007。最后,我转到 PITrans 表(它在另一个快速选项卡中),当我按下下拉菜单时,我需要能够选择属于 SitePI 表的记录作为查找。
但我只能看到选中的记录。
选择记录时需要看到 001、004 和 005。
这是我的代码(PICode 是我查找表的 RefRecId)
[FormControlEventHandler(formControlStr(InventSite,PITrans_PICode),FormControlEventType::Lookup)]
public static void PITrans_PICode_OnLookup(FormControl sender,FormControlEventArgs e)
{
SysReferenceTableLookup tableLookup = SysReferenceTableLookup::newParameters(tableNum(SitePI),sender);
Query query = new Query();
SitePI sitePI = sender.formRun().dataSource('SitePI').cursor();
InventSite inventSite = sender.formRun().dataSource('InventSite').cursor();
QueryBuildDataSource qbds = query.addDataSource(tableNum(SitePI));
qbds.addRange(fieldNum(SitePI,PICode)).value(queryValue(sitePI.PICode));
query.dataSourceTable(tableNum(SitePI)).addOrderByField(fieldNum(SitePI,PICode),SortOrder::Ascending);
tableLookup.addLookupField(fieldNum(SitePI,PICode));
tableLookup.parmQuery(query);
tableLookup.performFormlookup();
FormControlCancelableSuperEventArgs ce = e as FormControlCancelableSuperEventArgs;
ce.CancelSuperCall();
如果有人能帮助我,我将不胜感激。
问候
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)