ITPub博客

首页 > > > RDL 怎么获取报表的参数并对其赋值

RDL 怎么获取报表的参数并对其赋值

作者:germo 时间:2019-09-23 16:01:00 0 删除 编辑

我现在做到这一步:

 1 private void saveReportButton_Click(object sender, System.EventArgs e)
 2         {
 3             Cursor.Current = Cursors.WaitCursor;
 4  
 5             // Define variables needed for the Render() method.
 6             string historyID = null;
 7             string format = formatComboBox.Text;
 8             rs2010.DataSourceCredentials[] credentials = null;
 9             rs2010.ParameterValue[] reportHistoryParameters = null;
10               
11             // Define variables needed for GetParameters() method
12             bool forRendering = false;
13             rs2010.ItemParameter[] parameters = null;
14             bool noDefault = false;
15  
16             // Create a variable containing the selected item
17             selItem = ((CatalogListViewItem)reportListView.SelectedItems[0]).Item; 
18  
19             try
20             {
21                 // If the report uses parameters for which there is no default
22                 // value, then the report cannot be rendered and saved by this
23                 // application
24                 parameters = rs.GetItemParameters(selItem.Path, historyID, 
25                     forRendering, reportHistoryParameters, credentials);
26                 string ss = "";
27                 int i = 0;
28                 foreach (rs2010.ItemParameter parameter in parameters)
29                 {  
30                     if (parameter.DefaultValues == null)
31                     {
32                         ReportParameter para = new ReportParameter();
33                         para.Name = parameter.Prompt;
34                         para.DefaultValues[0] = "0";                        
35                         SaveAs();
36                     }
37                     else
38                     {
39                         ss += "\nPrompt: " + parameter.Prompt + "\n DefaultValues[0]: " + parameter.DefaultValues[0];
40                     }
41                 }
42                 MessageBox.Show(ss);
43  
44                 if (noDefault)
45                 {
46                     MessageBox.Show(
47                         Resources.missingDefaultParametersErrorMessage, 
48                         Resources.missingDefaultParametersMessageBoxTitle,
49                         MessageBoxButtons.OK,
50                         MessageBoxIcon.Error);
51                 }
52                 else
53                 {
54                     SaveAs();
55                 }
56             }
57  
58             catch (Exception exception)
59             {
60                 HandleException(exception); 
61             }
62  
63             finally 
64             {
65                 Cursor.Current = Cursors.Default;
66             }
67         }

在下面的判断里,我判断选定的报表参数默认值是否为 null ,如果为空就给其赋值。

因为parameter.DefaultValues == null,所以

parameter.DefaultValues = para.DefaultValues 的时候会报错 提示说什么因为没有实例化(null)。

1  if (parameter.DefaultValues == null)
2                     {
3                         ReportParameter para = new ReportParameter();
4                         para.Name = parameter.Prompt;
5                         para.DefaultValues[0] = "0";
6                         parameter.DefaultValues = para.DefaultValues;                        
7                         SaveAs();
8                     }

该怎么写才好啊。。。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1868/viewspace-3128805/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-17

  • 博文量
    209
  • 访问量
    8232