1

我有两张桌子:ZDEPARTMENT01ZEMPLOY01

ZDEPARTMENT01有一个外键DEPHEAD,其数据元素属于ZPERSONNEL_NOZPERSONNEL_NO(NUMC,10)。ZEMPLOY01有一个主键EMP_NUM,其数据元素属于ZEMP_NUMZEMP_NUM(NUMC,10)。

ZDEPARTMENT01-DEPHEAD是外键,ZEMPLOY01-EMP_NUM是校验键, ZDEPARTMENT01-DEPHEADZPERSONNEL_NO有值表:ZEMPLOY01.

ZDEPARTMENT01-DEPHEAD在为我设置检查表时出现错误检查表 ZEMPLOY01 没有字段 DEPHEAD 的域 ZPERSONNEL_NO 的关键字段

即使两个域具有相同的数据类型和长度(但域不同),系统也无法识别外键表和检查表关系。

文档说:系统尝试将检查表的关键字段分配给具有相同域的表的字段。这是否意味着除了数据类型和长度之外,外键表和检查表之间的域名应该相同?

如何解决这个问题?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

3 回答 3

5

是的,就是这个意思。您有两个数据元素:ZEMP_NUMZPERSONNEL_NO。如果您双击这些,在您的表中,您将导航到数据元素定义。在那里,您将看到分配给每个域的域。这些应该是相同的,所以使它们相同。

这样想: 为可以出现在多个位置的数据提供结构一致性。您不会有一个在某些地方为 10 位而在其他地方为 8 位的员工 ID,否则会导致 10 位记录被截断。同样,如果您的数字用完了并且需要将您的员工 ID 扩展到 11 位数字,您需要确保它在每个使用它的表中的任何地方都进行了更改。让你这样做。域还允许您配置默认查找关系(值表)或可以选择的固定值(例如员工表)。

数据元素提供上下文相关性。您会注意到,除了提供数据元素的域之外,您还可以定义字段标签和标题,并且可以分配自定义搜索帮助。这些允许您以与当前活动相关的方式向用户显示该字段。在这种情况下,您可以将员工标记为“部门主管”,因为如果有一个字段用于保存部门主管的 ID 并将其仅显示为“员工”,则会造成混淆。您还可以添加一个搜索帮助,将员工列表限制为仅标记为“经理”的那些。

于 2016-01-20T01:22:08.233 回答
2

正如消息中已经说过的那样,您必须调整数据元素以使用相同的域:

检查表必须有一个关键字段,检查字段的域被分配到该字段。

(文档)

我对此并不完全确定,但我相信这背后的基本原理是,这将阻止您更改其中一个表字段定义而不同时更改另一个。

于 2016-01-18T06:35:35.893 回答
0

我认为您的问题是关键字段定义。表“ZEMPLOY01”具有键字段“CARRIER”和“EMPNUM”,如果您希望表“ZDEPARTMENT01”的外键“DEPHEAD”有效,那么您有两个选择:

  1. 更改表“ZEMPLOY01”中定义的关键字段。只需将“EMPNUM”设置为您唯一的关键字段,然后尝试建立关系。

  2. 将字段“CARRIER”添加到表“ZDEPARTMENT01”,然后尝试建立关系。

请确认。

希望能帮助到你。

于 2016-01-18T06:59:57.583 回答