我将“原产国”添加到 InventTable。我创建了一个扩展 LogisticsAddressCountryRegionId 的新字段。我将该字段添加到 InventTable,然后将该字段添加到字段组。一切都按预期工作。当下拉菜单打开时,表单上有一个显示代码(如“USA”)和描述(如“United States”)的下拉菜单。当下拉菜单关闭时,它会显示“美国”。我们希望它显示描述。这可能吗?有什么建议怎么做吗?
谢谢!托尼
我将“原产国”添加到 InventTable。我创建了一个扩展 LogisticsAddressCountryRegionId 的新字段。我将该字段添加到 InventTable,然后将该字段添加到字段组。一切都按预期工作。当下拉菜单打开时,表单上有一个显示代码(如“USA”)和描述(如“United States”)的下拉菜单。当下拉菜单关闭时,它会显示“美国”。我们希望它显示描述。这可能吗?有什么建议怎么做吗?
谢谢!托尼
A)如果描述(在您的场景“美国”中)是 LogisticsAddressCountryRegion 中的一个字段而不是显示字段,那么正确的做法如下:
B)但是在您的特定场景中,不能使用这种方法,因为表 LogisticsAddressCountryRegion 中没有描述字段 - 有显示方法 displayName,它从另一个表(LogisticsAddressCountryRegionTranslation)中提取描述。
在这种情况下,可以使用稍微笨拙的方法:在 InventTable 中创建一个编辑方法,它应该使用扩展数据类型 LogisticsAddressCountryRegionShortName。对其进行编码,以便 a) 根据输入的值更新 InventTable 中的“原产国”字段,b) 根据“原产国”字段值显示 LogisticsAddressCountryRegion.displayName()。如果您需要帮助编码此方法,我可以建议。然后拖放该编辑方法以在您的表单中创建一个 StringEdit 控件。而已。请注意,您将无法使用此控件中的值在表单中进行排序和过滤。
C)不要为上述烦恼。使用 2 个控件:一个选择原产国(它将显示“美国”),另一个显示描述(“美国”)。在您当前的解决方案中,您需要更改的只是添加一个基于显示方法的新控件 - 一旦您选择了原产国,显示方法将显示其描述。我建议您使用这种方法。
Nota bene: “实际上 - 我想出了一个方法来做到这一点。我创建的字段与“ShortName”的长度相同,即 255。然后,我只是覆盖了字段上的查找方法。- 不不不,这是一个非常糟糕的主意,不要这样做。InventTable 和 LogisticsAddressCountryRegion 之间必须存在 ForeignKey 关系(指向 CountryRegionId 或 RecId 的链接)。