2013-7-22-本周设计模式:Single-Record (Setup) Table

可重复使用NAV设计模式是 NAV 团队 NAV 伙伴之间的联合倡议。 任何人整理出NAV模式,请在这里留下评论或通过写信给我们。
下面就是本周的NAV设计模式。

Single-Record (Setup) Table

初识该模式

这种模式被用于在数据库中存储操作设置或环境有关的信息,这样可以在会话之间保持数据。为了实现此目的,此信息存储在具有唯一的一条记录的表中。用户随后能够修改,而不是添加或删除表中的记录。

最共同执行的这是导航系统安装程序表中。

使用该模式

模式的实施涉及 3 注意事项:

  • 定义一个合适的主键。
  • 创建页面,在其中用户可以查看和编辑记录,但不是添加新记录或删除一个现有。
  • (可选) 创建公司( create Company)-初始化 codeunit。

定义主键

这种表是几种环境或配置参数的集合,因为主键不涉及任何业务属性,然而,对于维护数据库的完整性,有必要定义一个主键。

所以,最常见的实现是定义一个Code [10] 的"主键"。当插入记录时被填充空白值。此字段不会添加到Page,使得用户无法修改它以后。

创建Page

CardPage 类型是最适合于表示这样的表的Page。此外,应该是 InsertAllowed 和 DeleteAllowed 的属性页中设置为 false,以防止用户添加或删除表中的记录。

在 OnOpenPage 触发器中,应添加下面的代码,用户首次打开页面时,如果已不存在的记录,插入记录。

  

公司-初始化( create Company) Codeunit

公司初始化( create Company) codeunit (codeunit 2) 是创建一家新公司时执行的。我们建议您通过此 codeunit添加records到single-record tables 中。如果某些字段有默认值,它们也可以在这里填充。

NAV 用法


在NAV系统中的几个Setup表实现此模式。 其中一些是:
  1. Table 98 General Ledger Setup
  2. Table 311 Sales & Receivables Setup
  3. Table 312 Purchases & Payables Setup
  4. Table 313 Inventory Setup
  5. Table 242 Source Code Setup
注: 虽然大多数表是通过 codeunit 2 中插入一条带有空主键 记录,Table 242("Source Code Setup")   提供的插入的表的所有字段的默认值的示例("InitSourceCodeSetup"的method) 这种做法,在可行情况下,很可能在执行期间减少工作量。

原文链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值