如何使用RDLC报告更新Dynamic NAV中的报告?

时间:2012-06-21 04:13:53

标签: rdlc dynamics-nav

如何使用角色定制客户端报告编写一个更新Microsoft动态资产净值记录的功能?

提前, 马卡拉

2 个答案:

答案 0 :(得分:2)

您可以在报告触发器中放置代码。

下面是一个简单的代码示例,可以放在引用Customer表的Customer数据项的OnAfterGetRecord触发器中。

IF Customer.Name[1] = 'A' THEN BEGIN
  Customer.Name[1] := 'B';
  Customer.MODIFY;
END

上面的代码将报告中包含的任何客户名称的第一个字符更改为大写字母“A”以及大写字母“B”。

可以从pastebin找到只有此功能且无打印输出的完整报告: Simple Dynamics Nav Report Sample

您可以将粘贴的全部内容复制到文本文件中,然后将其作为文本导入Nav。

小心,但执行此操作将替换任何先前的ID为50000的报告,此示例没有任何其他警告或提示。导入为文本的报告需要先在Nav中以编译形式保存,然后才能运行它。

答案 1 :(得分:1)

您不能将C / AL代码直接放在RTC报告上 - 而应该使用“经典”客户端/开发环境中DataItems背后的触发器,因为此代码对于Classic和RTC报告都是通用的,并且在报告在任一环境中运行。

使用类似的例子;

Vendor - OnAfterGetRecord()
----------------------------

...

IF Vendor."Phone No." = '' THEN BEGIN
  Vendor."Phone No." := NewPhoneNo;
  Vendor.MODIFY;
END;

...

您可能希望在报表本身上设置以下属性以隐藏打印对话框以及请求表单(假设您不希望应用过滤器):

UseReqForm := FALSE;
ProcessingOnly := TRUE;

另一个需要注意的重要事项是,位于部分后面的代码仅用于Classic报表,如果在RTC中运行则不会执行(这可能会解释意外结果)。