0

我的 Web 项目中有一组快速增长的 Telerik 报告。我的数据提供策略是每个报告都有一个包含 SQL 查询的公司文本文件。我处理复杂的过滤条件,比如长的“x 在(y,z,a,b,c....)”或“((x=1) and (x < y))”,重复一百次,通过在使用文本文件查询获取报表的 DataTable 之前对其进行文本替换。

所有报表都是派生自 的类Telerik.Reporting.Report,它们具有用作报表元数据的有限属性,例如报表的业务标题与报表的程序化名称。报告类别、报告的 SQL 查询文件的名称、报告的可能备用查看页面、要为报告禁用的公共过滤器参数的子集等属性没有字段。

我发现这里的第一个候选解决方案没有吸引力,即。在文件、web.config 或数据库表中创建和维护“报告设置”存储。该存储与实际报告分离,在它们或存储中工作需要频繁且烦人的上下文交换。

我更喜欢的想法是使用类似于动态数据元数据方案的东西,其中实体类上的属性赋予另一个类来保存实体的元数据。我还可以扩展Telerik.Reporting.Report,添加可能要附加到报告的属性的字典,并从中派生我的所有报告。

对我当前想法的任何批评,或对其他选择的建议,将不胜感激。

4

1 回答 1

0

由于 Telerik Report 定义只不过是纯 C#/VB 类,因此您应该能够使用任何“标准”C# 方法将元数据包含在您的报告中。在派生的报表类中,您可以添加管理设置所需的任何字段或属性,或者您可以尝试通过Report在项目中扩展来创建更“优雅”的解决方案。

当前版本的 Telerik Reporting 不提供用于设置报告属性的原生元数据解决方案,但这是一个非常有趣的想法。我已要求 Telerik 报告团队对这个想法进行权衡,因此他们应该尽快提供更多指导。

同时,我认为您计划中的“报告基类”走在正确的轨道上,这将使所有项目报告都可以轻松设置必要的“设置”值。

于 2009-08-24T22:53:55.717 回答