问题总算是解决了。
例子中的功能很完整,但跟我们的目标有一点差别。因为C1的控件中,已经包含了创建填写报表参数的窗体,但是这个窗体并不是我们所需要的,原因是,某些时候,报表所需要的参数是ID,而ID是一串32位的字符串,普通用户完全无法填写,我们是希望通过选择对象的方式,并获取该对象ID的方式来实现,所以需要重写填写参数的窗体。
经过对C1SSRSDocumentSource研究发现,可以通过如下方式实现。
- c1SsrsDocumentSource1.DocumentLocation = new SSRSReportLocation(tbSSRSServer.Text, ci.Path);
- c1SsrsDocumentSource1.Credential = GetCredential();
- c1SsrsDocumentSource1.Open();
- c1SsrsDocumentSource1.Parameters["id"].Value = (object)"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
- c1SsrsDocumentSource1.ApplyParameterValues();
- c1SsrsDocumentSource1.Generate();
- c1PrintPreviewControl1.Document = null;
- c1PrintPreviewControl1.Document = c1SsrsDocumentSource1;
复制代码
此部分复制于MainForm.cs文件的209行
中间4行是添加进去的。
通过这种方式,是可以另外对报表参数进行赋值。 |