如何使用RDLC报告在动态导航中更新报告?

如何使用RDLC报告在动态导航中更新报告?,rdlc,dynamics-nav,Rdlc,Dynamics Nav,如何使用角色定制的客户端报告编写函数来更新Microsoft Dynamic NAV中的记录 Thx提前, Makara您不能将C/AL代码直接放在RTC报告上——相反,您应该在“Classic”客户机/开发环境中使用数据项后面的触发器,因为此代码对于Classic和RTC报告都是通用的,并且在任一环境中运行报告时执行 举一个类似的例子 Vendor - OnAfterGetRecord() ---------------------------- ... IF Vendor."Phone

如何使用角色定制的客户端报告编写函数来更新Microsoft Dynamic NAV中的记录

Thx提前,
Makara

您不能将C/AL代码直接放在RTC报告上——相反,您应该在“Classic”客户机/开发环境中使用数据项后面的触发器,因为此代码对于Classic和RTC报告都是通用的,并且在任一环境中运行报告时执行

举一个类似的例子

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

...

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

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


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

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

举一个类似的例子

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

...

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

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


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

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

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

IF Customer.Name[1] = 'A' THEN BEGIN
  Customer.Name[1] := 'B';
  Customer.MODIFY;
END
上述代码将报告中包含的以大写字母“A”开头的任何客户名称的第一个字符更改为大写字母“B”

从pastebin中可以找到仅具有此功能且没有打印输出的完整报告:

您可以将粘贴的整个内容复制到文本文件中,并将其作为文本导入Nav


注意,但是,这样做将用本例替换先前id为50000的任何报告,而无需任何额外警告或提示。导入为文本的报告需要以编译形式保存在Nav中,然后才能运行。

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

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

IF Customer.Name[1] = 'A' THEN BEGIN
  Customer.Name[1] := 'B';
  Customer.MODIFY;
END
上述代码将报告中包含的以大写字母“A”开头的任何客户名称的第一个字符更改为大写字母“B”

从pastebin中可以找到仅具有此功能且没有打印输出的完整报告:

您可以将粘贴的整个内容复制到文本文件中,并将其作为文本导入Nav


注意,但是,这样做将用本例替换先前id为50000的任何报告,而无需任何额外警告或提示。导入为文本的报告需要以编译形式保存在Nav中,然后才能运行。

请参阅对我的答案的修改。这取决于您需要进行哪些修改,以及要修改的记录类型。如果您有任何示例代码,请将其附加到您的问题以获得更具体的答案:)请参阅对我的答案的修改。这取决于您需要进行哪些修改,以及要修改的记录类型。如果您有任何示例代码,请将其附加到问题中以获得更具体的答案:)