You need to enable JavaScript to run this app. D365 F&O X++实现服务lookup联动过滤子服务lookup功能咨询
优惠活动
大模型
产品
解决方案
定价
更多

D365 F&O X++实现服务lookup联动过滤子服务lookup功能咨询

D365 Finance and Operations 级联Lookup实现方案

现有代码核心问题

  • lookup绑定表错误:子服务下拉对应的数据表是SubService,原有代码错误绑定了Service表
  • 取值逻辑错误:需要获取父级service字段的选中值,原有代码错误读取了当前sub-service字段自身的值
  • 过滤规则错误:应过滤SubService表中关联Service的外键字段,原有代码过滤逻辑完全不匹配需求
  • 多余配置错误:firstOnly配置会导致下拉只展示一条数据,不符合多选展示要求

修正后完整代码

[FormControlEventHandler(formControlStr(InventSite, InventSite_SubServiceRefRecId), FormControlEventType::Lookup)]
public static void InventSite_SubServiceRefRecId_OnLookup(FormControl sender, FormControlEventArgs e)
{
    SysReferenceTableLookup sysRefTableLookup;
    Query query = new Query();
    QueryBuildDataSource qbds;
    FormRun formRun = sender.formRun();
    // 获取父级service字段的选中RecId
    FormControl serviceControl = formRun.design().controlName(formControlStr(InventSite, InvenSite_ServiceRefRecId));
    RecId selectedServiceRecId = serviceControl.value() as RecId;
    FormControlCancelableSuperEventArgs ce = e as FormControlCancelableSuperEventArgs;

    // 绑定子服务对应数据表SubService
    sysRefTableLookup = SysReferenceTableLookup::newParameters(tableNum(SubService), sender);
    qbds = query.addDataSource(tableNum(SubService));

    // 按选中的父级service过滤子服务
    // 注意:请将下方ServiceRefRecId替换为你SubService表中实际关联Service表的外键字段名
    qbds.addRange(fieldNum(SubService, ServiceRefRecId)).value(queryValue(selectedServiceRecId));

    sysRefTableLookup.parmQuery(query);
    // 配置下拉展示字段,可根据实际业务需求增删调整
    sysRefTableLookup.addLookupfield(fieldNum(SubService, SubServiceName));
    sysRefTableLookup.addLookupfield(fieldNum(SubService, SubServiceDescription));
    
    sysRefTableLookup.performFormLookup();

    ce.CancelSuperCall();
}

参考配置界面

你提供的Service表单配置如下:
Service form

注意事项

如果你的SubService表中关联Service的外键字段名称与示例不同,务必替换代码中对应的字段名,否则过滤会失效。
下拉展示的字段可根据业务需要自行调整,只需要修改addLookupfield的参数即可。

内容的提问来源于stack exchange,提问作者Granger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 11:06:07