Axapta 使用联接数据源自动将记录插入表单的两个数据源

Axapta 使用联接数据源自动将记录插入表单的两个数据源,axapta,x++,erp,dynamics-365-operations,Axapta,X++,Erp,Dynamics 365 Operations,我有一个名为gate pass的自定义表单,其中有两个数据源,第一个数据源称为gate pass table,另一个数据源称为driver table 通行证表与驾驶员表字段国家ID有外键关系。这意味着national Id是两个表中的一个字段 表格中显示了三个字段: 司机身份证 驱动程序名称 司机联系电话 我希望使用户能够通过查找选择国家ID,还可以通过在驾驶员国家ID字段中输入新的国家ID。如果驾驶员表中存在国家Id,则应加载相关姓名和联系人。否则,用户也应输入这些记录,并将新记录添加到

我有一个名为
gate pass
的自定义表单,其中有两个数据源,第一个数据源称为
gate pass table
,另一个数据源称为
driver table

通行证表
驾驶员表
字段
国家ID
有外键关系。这意味着
national Id
是两个表中的一个字段

表格中显示了三个字段:

  • 司机身份证
  • 驱动程序名称
  • 司机联系电话
我希望使用户能够通过查找选择
国家ID
,还可以通过在驾驶员国家ID字段中输入新的
国家ID
。如果
驾驶员表中存在
国家Id
,则应加载相关姓名和联系人。否则,用户也应输入这些记录,并将新记录添加到
驱动程序表中

但是,我希望通过使用动态365功能来满足这一要求。我想知道是否可以使用联接数据源属性

我已将
驱动程序表
数据源的join-source属性设置为
活动链接类型的gate-pass
数据源。有两个问题:

  • 当我在主窗体中选择
    national Id
    时,姓名字段和联系人字段将自动加载,但我应该刷新数据源以查看更新

  • 如果用户输入新的
    国家Id
    ,将显示以下错误:

  • “在相关表‘DriverDetails’中找不到字段‘Driver National’中的值‘xxxxx’。”


    PS:在
    通行证
    表格中,
    国家Id
    字段的数据源是
    通行证
    ,字段驾驶员姓名和联系人的数据源是
    驾驶员表

    如果没有自定义代码,这似乎不完全可能。也就是说,可以通过利用变更组功能来实现想要的行为。请参考文件以及这个,它很高兴为我做了繁重的工作

    您可能还需要为FK字段添加一个
    表\u ds.executeQuery()
    。因此,如果数据已经存在,那么如果用户选择键,它将被查询并显示在表单上

    希望这些信息有帮助

    您好,
    汉内斯

    你能告诉我们更多关于数据结构的信息吗?例如,
    gate pass
    driver table
    之间的关系是什么?根据描述,它可能是1:1,但是为什么不将
    国家ID
    字段添加到
    驾驶员表中,然后删除
    登机证
    表呢?错误消息中的表
    DriverDetails
    是否与所述的
    driver表相同?@FH入口闸门通行证表具有一些其他字段,并且还具有来自driver表的外键(国家Id)。登机口通行证表格与驾驶员表格不同。您能将这些新信息引入问题中,以帮助其他人更容易地找到它吗?我仍然不确定
    gate pass
    driver table
    之间的关系是什么(1:1,1:n,n:m?),以及tables
    DriverDetails
    driver table
    是否相同。如果您提供更多详细信息,您可以帮助我们回答您的问题。还可以看看,这可能会给你更多的想法来补充你的问题,以提高你获得答案的机会。