Crystal 2008 - 我可以在运行时以编程方式访问SQL语句吗?

时间:2010-07-31 17:57:10

标签: c# crystal-reports

我们创建了一个Crystal Report查看器应用程序来存放我们公司的所有报告。它以这样的方式构建,即每当我们添加,修改或删除报表时,查看器应用程序本身都不需要更改。查看器应用程序完全由XML配置文件驱动,该文件告诉它可用的报告,它们的位置,连接信息等。我们也希望保持这种方式。当我们添加新报告时,我们不希望更新每个人的查看器应用程序。

问题是Crystal直接与我们的DB对话,我们希望它没有。因此,对于每个报表,查看器都需要查询数据库以检索每个报表所需的数据。问题是我们的许多报告都允许用户输入大量的过滤条件。理想情况下,我们希望能够做的是让Crystal提示用户输入他们的过滤条件,就像它当前一样,然后能够以某种方式获取它将发送到DB的SQL语句,传递给它自己给DB,告诉Crystal不要。然后,查看者将为报告提供数据。

有谁知道这是否可以做到?我们考虑过的另一种方法是让查看器提示用户输入过滤条件,然后构建SQL语句。但是,然后每个报告都成为一个C#编码项目,其中包含对查看器的更新。我们试图避免这种情况。

感谢。

1 个答案:

答案 0 :(得分:0)

有趣的方法。我只做过相反的事情。

通常人们喜欢使用Crystal客户端构建自己的报告。该报告连接到报告本身中指定的数据源。

使用.NET查询报告需求,设置参数和公式然后查看报告是件小事。

无论如何,我所知道的只有两种方法称为“拉”和“推”。拉是我刚才描述的。推送是您所描述的解决方案,但您会考虑编写每个报告。

我担心你以前从未做过的事情。但是,我会推荐“拉”方法。对于我来说,它对我有很好的帮助,客户拥有数十个用户和数百个报告。