各位,下午好。
今天,我想与各位简单分享一些在Business Central中创建新设置页面时需要要注意的事情。
在BC中添加新功能时,我们都建议您将为其添加一个设置页面。 例如,使用布尔值字段来切换新功能开启和关闭。
例:Inventory Setup
这不仅使随时启用和禁用新功能变得更加容易,而且还使BC的标准功能不受影响。
那么在创建新的设置页面时我们应该注意什么呢?
1. Primary Key(Code 10): Blank
设置表的主键应为 Code[10]。 另外,不要在页面上显示该主键。
2. PageType of the setup page: Card
页面类型请使用Card。
PageType = Card;
3. Setting Page Permissions (InsertAllowed and DeleteAllowed)
通常,设置表中只有一条记录,因此用户无法删除它或添加新设置。
page 50113 "ZY Setup"
{
PageType = Card;
Caption = 'ZY Setup';
ApplicationArea = All;
UsageCategory = Administration;
SourceTable = "ZY Setup";
InsertAllowed = false;
DeleteAllowed = false;
}
4. OnOpenPage() trigger
用户首次打开设置页面时,需要自动插入一个空记录。
trigger OnOpenPage()
begin
Rec.Reset;
if not Rec.Get() then begin
Rec.Init();
Rec.Insert();
end;
end;
至此,一个基本的设置页面就已经完成了。
测试视频:
源代码:
表:
table 50112 "ZY Setup"
{
Caption = 'ZY Setup';
fields
{
field(1; "Primary Key"; Code[10])
{
Caption = 'Primary Key';
DataClassification = CustomerContent;
}
field(2; "Test Setup Field"; Boolean)
{
Caption = 'Test Setup Field';
DataClassification = CustomerContent;
}
}
keys
{
key(PK; "Primary Key")
{
Clustered = true;
}
}
}
页面:
page 50113 "ZY Setup"
{
PageType = Card;
Caption = 'ZY Setup';
ApplicationArea = All;
UsageCategory = Administration;
SourceTable = "ZY Setup";
InsertAllowed = false;
DeleteAllowed = false;
layout
{
area(Content)
{
group(GroupName)
{
Caption = 'General';
field("Test Setup Field"; Rec."Test Setup Field")
{
ApplicationArea = All;
}
}
}
}
trigger OnOpenPage()
begin
Rec.Reset;
if not Rec.Get() then begin
Rec.Init();
Rec.Insert();
end;
end;
}
Remark01. 您也可以将新的设置项目添加到现有标准的设置页面。
例如: Sales -> Sales & Receivables Setup
TableExtension:
PageExtension:
Sales & Receivables Setup page:
Remark02. 关于为用户添加的新设置.
User(2000000120)的表是系统表,无法扩展。
例:
因此,如果要扩展用户设置,请扩展User Setup (91) 表和User Setup (119, List) 页面。
TableExtension:
PageExtension:
User Setup page:
Remark03. 使用向导和辅助设置
向导和辅助设置是可帮助Business Central用户配置模块的快速设置方案。 因此,为了使用户更容易配置系统,建议您在为Business Central创建扩展时创建一个或多个的辅助设置。
详细请参考: How to create a Wizard (NavigatePage) and Assisted Setup
向导:
辅助设置:
Update
Remark04. GetRecordOnce function
来自 Arend-Jan Kauffmann 的追加提示.
例:
定义方法:
In table 311 “Sales & Receivables Setup”
In table 98 “General Ledger Setup”
使用方法:
In codeunit 57 “Document Totals”:
In codeunit 12 “Gen. Jnl.-Post Line”:
完
感谢您的阅读。
コメント