传值到水晶报表页打印的时候出现了个非常奇怪的问题...
我用的是水晶报表10
现在有两个页面,从页面A传值companyname到报表页面,代码如下:
StaffAllCristal Repor=new StaffAllCristal();
StaffCrystal ReportDoc = new StaffCrystal();
private void Page_Load(object sender, System.EventArgs e)
{
string strcompanyname=this.Request.QueryString["companyname"];
if(strcompanyname=="全部单位")
{
string sql = "Select * from cdstaff where passflag=1 order by companyname,departmentname,worktype";
OracleDataAdapter daOrder = new OracleDataAdapter(sql,myclass.cnn);
DataSet ds = new DataSet();
daOrder.Fill(ds,"cdstaff");
Repor.SetDataSource(ds);
CRVstaff.ReportSource = Repor;
}
else
{
string sql = "Select * from cdstaff where companyname='"+strcompanyname+"' and passflag=1 order by companyname,departmentname,worktype";
OracleDataAdapter daOrder = new OracleDataAdapter(sql,myclass.cnn);
DataSet ds = new DataSet();
daOrder.Fill(ds,"cdstaff");
ReportDoc.SetDataSource(ds);
CRVstaff.ReportSource = ReportDoc;
}
}
现在问题是这样的:
在生成报表的时候可以实现,调试的时候strcompanyname还是A页面传过来的值
点水晶报表打印按扭的时候 调试的时候strcompanyname也还是A页面传过来的值
就是点确定以后,就是水晶报表好像生成PDF的时候,页面报表中的东西打印出来是空,我调试发现是:这时候strcompanyname就不是A页面传过来的值了。而是"?",所以我的SQL语句就变成了
Select * from cdstaff where companyname='?' and passflag=1 order by companyname,departmentname,worktype
所以打印就是空了
请问为什么会变成'?',怎样解决水晶报表传值打印的问题??谢谢