dynamics-nav - 如何在 SQL Server 中显示 Dynamics NAV 表选项字段文本值
问题描述
有时在 Dynamics NAV 开发过程中,使用 SQL Server 快速查看数据会很有帮助。但是因为选项类型的任何字段都是枚举,所以您在 SQL Server 中得到的只是数值。我需要一种快速而肮脏的方法来获取选项文本值。
解决方案
在 NAV 中,您可以读取 FieldReference 的 OPTIONSTRING 属性。这是一个逗号分隔的字符串。可以安排一个作业,该作业将按编号循环遍历所有表(按表过滤的对象虚拟表),找到选项字符串并将它们添加到表中。然后在查询中,您可以找到表、字段编号和字段值的选项文本值。
RecRef.OPEN(TableNo);
FOR i := 1 TO RecRef.FIELDCOUNT DO BEGIN
FieldRef := RecRef.FIELDINDEX(i);
IF FORMAT(FieldRef.TYPE) = 'Option' THEN BEGIN
optionstring := FieldRef.OPTIONSTRING;
c := NumberofOptions(optionstring);
FOR o := 1 TO c DO BEGIN
OptionsTable.INIT;
OptionsTable."Table No" := TableNo;
OptionsTable."Field No" := FieldRef.NUMBER;
OptionsTable."Option Value" := o-1;
OptionsTable."Option Text" := SELECTSTR(o, optionstring);
OptionsTable."Field Name" := FieldRef.NAME;
IF NOT OptionsTable.INSERT THEN OptionsTable.DELETE;
END;
END;
END;
推荐阅读
- ios - 支持 Detox 框架上的 TouchID 测试
- vba - VBA 组合列
- git - 在 github 中使用两个帐户时访问被拒绝
- xcode - Flutter App IOS Release Build 错误:缺少所需的图标文件
- vba - VBA VeryHidden 多个选项卡
- python - 使用 Python 查找和更改 XML 文件中的属性
- android - 在android中以编程方式杀死另一个应用程序及其所有服务
- r - 使用R中旧向量中的字符串创建一个新向量
- amazon-web-services - 无法在 Amazon Lightsail VPS 上打开 HTTPS 443 端口 - Ubuntu 16.04 Base OS
- python - python unittest 模拟/修补