是否可以设计一个完全独立的RDLC报告?
意思是,驱动ReportViewer控件的主机应用程序可能会传入连接字符串,但是所有其他方面(尤其是包括SQL查询)都必须在RDLC文件中定义,而在其中没有预定义的DataSets等。代码。
本质上,我正在寻找的东西是代码知道如何连接到数据库的地方,但是报告文件完全控制从哪个表中获取数据以及如何将它们联接。这样一来,您无需删除任何代码即可放入新的RDLC文件,并且它可以在与以前的报告完全不同的表上进行报告。
我所能找到的有关RDLC的所有内容都涉及在代码中制作类型化的数据集或填充数据表,这不是我想要的。
[我确实注意到文件中似乎有CommandText
值,这似乎很有希望,但是我找不到在RDLC设计器中设置此值的任何方法,也似乎没有任何作用。
我确定我必须在这里遗漏一些基本知识(对于背景,我最熟悉Crystal Reports,其行为与我上面想要的一样)。我无法想象编写额外的报告是如何需要编写额外的代码的。
(但是,在没有报表服务器的情况下似乎无法使用子报表。)
[将该文件重命名为.rdlc
会产生可以成功解析并作为本地报告运行的内容,但似乎没有任何方法可以访问CommandText
中的嵌入式SQL。这也使RDLC设计人员感到烦恼,后者无法将其识别为有效的数据集,尽管只要您不尝试在设计人员内部修改数据集,那么这似乎就没有关系。 (即使您这样做,也似乎并没有改变CommandText
的好坏。)
理论上可以手动解析文件,提取CommandText
,执行查询,然后将其作为DataTable
反馈给本地报告查看器。为什么这不是Just Works™的东西?