ReprotToolbar1.ReportViewer 连接上ReportViewer1时,行动时就会出现如下错误:编译器错误消息: CS0426: 类型“DevExpress.XtraReports.Web.ReportViewer”中不存在类型名称“WebForm1”源错误: 行 1069: public void @__DataBindingReportToolbar1(object sender, System.EventArgs e) {
行 1070: DevExpress.XtraReports.Web.ReportToolbar dataBindingExpressionBuilderTarget;
行 1071: ReportViewer.WebForm1 Container;
行 1072: dataBindingExpressionBuilderTarget = ((DevExpress.XtraReports.Web.ReportToolbar)(sender));
行 1073: Container = ((ReportViewer.WebForm1)(dataBindingExpressionBuilderTarget.BindingContainer));
其中:WebForm1是Web窗体
之前用的是Default窗体,出错后以为是窗体的事,又新添加了一个窗体还是这样。
这是什么原因引起的?
应该怎样解决??
行 1070: DevExpress.XtraReports.Web.ReportToolbar dataBindingExpressionBuilderTarget;
行 1071: ReportViewer.WebForm1 Container;
行 1072: dataBindingExpressionBuilderTarget = ((DevExpress.XtraReports.Web.ReportToolbar)(sender));
行 1073: Container = ((ReportViewer.WebForm1)(dataBindingExpressionBuilderTarget.BindingContainer));
其中:WebForm1是Web窗体
之前用的是Default窗体,出错后以为是窗体的事,又新添加了一个窗体还是这样。
这是什么原因引起的?
应该怎样解决??
我就新建了一个项目。不出现这个问题了。哎~~~ 郁闷!这两天又想了很多的方法。不知为什么XtraReport就是不出现数据。
思路、步骤如下:
方法一:
1.在dataset1(数据源)中添加 一个 DataTable (名称为DataTable1).
并手动添加几列Col1,Col2,Col3.
2.XtraReport的DataSource指向Dataset(数据源),
即:XtraReport1.DataMember = DataTable1;
XtraReport1.DataSource = dataSet11;
并XrTableCell.Text 分别与 DataTable1中的列连接
3.在Default.cs 中创建DataTable(内有数据信息),并向XtraReport1()函数中传递,参数名为table 。
4.在XtraReport.cs 中,让dataSet11 与 传递过来的DataTable邦定。
dataSet11.Tables.Add(table);
DataSource = dataSet11;之后,运行程序,打开的窗口中什么也没有。
方法二:
但,将SQL语句放到DataAdapter中并与XtraReport邦定后运行就可以出现数据。(不用这方法,是因为SQL语句较复杂)这是为什么啊。
在方法一中还缺什么步骤或语句吗?
还有谁知道啊!!!
{
InitializeComponent();
SqlDataAdapter da=new SqlDataAdapter(strSQL,ConnSql); //创建DataAdapter数据适配器实例
DataSet ds=new DataSet();//创建DataSet实例
da.Fill(ds,"自定义虚拟表名");//使用DataAdapter的Fill方法(填充),调用SELECT命令
DataSource = ds.Tables[0];
cellPayAmount.DataBindings.Add("Text", DataSource, "PayAmount", "{0:f2}");
cellGrossPay.DataBindings.Add("Text", DataSource, "GrossPay", "{0:f2}");
...
}
我试试
是漏掉了什么关键语句??
public XtraReport1()
{
InitializeComponent();
string sql = "select XianZ,ZYH,CWH,BRXM,SMTZ,SSZD,MiaoS "
+ "from (select ...) a ";
SqlDataAdapter da = new SqlDataAdapter(sql,this.sqlConnection1.ConnectionString);
DataSet ds = new DataSet();//创建DataSet实例
da.Fill(ds);//使用DataAdapter的Fill方法(填充),调用SELECT命令
DataSource = ds.Tables[0];
this.xrTableCell7.DataBindings.Add("Text", DataSource, "XianZ", "{0:f2}");
this.xrTableCell8.DataBindings.Add("Text", DataSource, "CWH", "{0:f2}");
this.xrTableCell9.DataBindings.Add("Text", DataSource, "ZYH", "{0:f2}");
this.xrTableCell10.DataBindings.Add("Text", DataSource, "SMTZ", "{0:f2}");
this.xrTableCell11.DataBindings.Add("Text", DataSource, "SSZD", "{0:f2}");
this.xrTableCell12.DataBindings.Add("Text", DataSource, "MiaoS", "{0:f2}");
}调用报表窗体Default.cs 中的代码如下:
XtraReport1 report = new XtraReport1();
这样数据就可以看到了。
(但这样写无法传递参数至XtraReport)
这又是为什么呢。在调用报表窗体Default.cs 中的代码中:
XtraReport1 report = new XtraReport1();
之后加上
report.ShowPreview();
运行时出错???
this.ReportViewer1.Report = report;不要这句report.ShowPreview();
问题解决。
就这一句可把我害苦了。要是这样的话,我可以把之前的方法再试试。说不定也可以通过呢。
再次谢谢Zhanlixin
发分了。