创建列出Crystal Report中所有表的公式字段

时间:2011-12-09 14:45:49

标签: crystal-reports crystal-reports-2008

我正在寻找一种方法来创建一个公式字段,该字段将列出在Crystal Report中用作数据源的所有表的表名。

我还没有找到任何在应用程序中提供该功能的功能。

这将用于将表列表作为那些无权访问报表文件但需要知道报表中使用的表的用户的补充。

最好尽可能动态地执行此操作 - 而不必提供链接到报表中的当前表的静态列表。

感谢。

1 个答案:

答案 0 :(得分:2)

不幸的是,Crystal Reports中不存在此类功能。

您可以使用UFL来解决问题。总体思路:

  • 将当前报告的路径传递给UFL(文件名功能会给你这个)
  • 使用Crystal Reports SDK打开引用的报告,并检查DataDefintion类中的表; DatabaseFieldDefinition.UseCount将帮助确定报告中是否引用了字段(以及表格)
  • 将表名作为字符串数组返回(注意:CR仅支持1维数组,最多包含1000个元素)
  • 创建一个公式字段来调用UFL的功能; Join()字符串数组(公式字段不能返回数组):

    加入(GetRptTables(文件名),“,”)

  • 使用.RPT分发UFL

另一个选项,如果你有BusinessObjects Enterprise和一个40,000美元的备用,是Metadata Manager;这将为您提供组织报告部署的整体视图。