使用未绑定字段的动态报表,出错。
测试程序如下:(参考CrystalReport官方网站上的VB版未绑定字段的动态报表)
Visual C#的Windows应用程序,数据库为SQL Server2000
一个报表名为CrystalReport1,里面包含两个未绑定字段:“未绑定字符串1”和“未绑定字符串2”
一个窗口上面一个名为CrystalReportViewer1的报表控件,一个按钮。要实现单击按钮后“未绑定字符串1”显示数据库mcms里表TBCUSTOM的ID字段内容,“未绑定字符串2”显示NAME字段。
单击事件如下:
private void button1_Click(object sender, System.EventArgs e)
{
string myConnectionString = "workstation id=YINMIAO;packet size=4096;user id=sa;data source=huijie;persist security info=False;initial catalog=mcms;password=111111";
SqlConnection myConnection = new SqlConnection(myConnectionString);
string mySelectQuery = "select ID,NAME from TBCUSTOM";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(mySelectQuery,myConnection);
DataSet ds = new DataSet();
myDataAdapter.Fill(ds,"TBCUSTOM");
string strReport =@"G:\WindowsApplication10\CrystalReport1.rpt";
ReportDocument report = new ReportDocument();
FormulaFieldDefinition crFormulaTextField1;
FormulaFieldDefinition crFormulaTextField2;
FormulaFieldDefinitions crFormulas;
report.Load(strReport);
report.Refresh();
report.SetDataSource(ds);
crFormulas = report.DataDefinition.FormulaFields;
crFormulaTextField1 = crFormulas[0];
crFormulaTextField2 = crFormulas[1];
crFormulaTextField1.Text="{TBCUSTOM.ID}";
crFormulaTextField2.Text="{TBCUSTOM.NAME}";
this.CrystalReportViewer1.ReportSource = report;
}
结果并未显示任何数据。
测试在窗口上放一个dataGrid控件dataGrid1,设dataGrid1.DataSource=ds,可在dataGrid1里看到正确数据,证明数据已经Fill进了ds。
不知为何在报表中无法显示select出的数据
Visual C#的Windows应用程序,数据库为SQL Server2000
一个报表名为CrystalReport1,里面包含两个未绑定字段:“未绑定字符串1”和“未绑定字符串2”
一个窗口上面一个名为CrystalReportViewer1的报表控件,一个按钮。要实现单击按钮后“未绑定字符串1”显示数据库mcms里表TBCUSTOM的ID字段内容,“未绑定字符串2”显示NAME字段。
单击事件如下:
private void button1_Click(object sender, System.EventArgs e)
{
string myConnectionString = "workstation id=YINMIAO;packet size=4096;user id=sa;data source=huijie;persist security info=False;initial catalog=mcms;password=111111";
SqlConnection myConnection = new SqlConnection(myConnectionString);
string mySelectQuery = "select ID,NAME from TBCUSTOM";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(mySelectQuery,myConnection);
DataSet ds = new DataSet();
myDataAdapter.Fill(ds,"TBCUSTOM");
string strReport =@"G:\WindowsApplication10\CrystalReport1.rpt";
ReportDocument report = new ReportDocument();
FormulaFieldDefinition crFormulaTextField1;
FormulaFieldDefinition crFormulaTextField2;
FormulaFieldDefinitions crFormulas;
report.Load(strReport);
report.Refresh();
report.SetDataSource(ds);
crFormulas = report.DataDefinition.FormulaFields;
crFormulaTextField1 = crFormulas[0];
crFormulaTextField2 = crFormulas[1];
crFormulaTextField1.Text="{TBCUSTOM.ID}";
crFormulaTextField2.Text="{TBCUSTOM.NAME}";
this.CrystalReportViewer1.ReportSource = report;
}
结果并未显示任何数据。
测试在窗口上放一个dataGrid控件dataGrid1,设dataGrid1.DataSource=ds,可在dataGrid1里看到正确数据,证明数据已经Fill进了ds。
不知为何在报表中无法显示select出的数据
...全文
相关推荐
如何在水晶报表中动态添加字段
水晶报表动态添加字段类的介绍,以及类的使用。
动态编程的暗礁:ABAP 动态处理中的 Runtime Error 防线搭建指南
摘要:SAP ABAP中的动态编程虽增强通用性,但也带来运行期风险。本文系统分析了动态处理的四大类型(数据访问、调用、token和泛型程序)及其常见异常,强调防御性编程的三层防线:执行前验证、执行时捕获和执行后确认。通过典型案例说明动态WHERE条件可能导致的整表删除风险,并指出新版本对动态SQL校验更严格的特点。文章建议开发者必须捕获动态SQL异常,避免仅依赖sy-subrc判断,同时采用白名单等机制确保业务安全边界。动态编程需要以更复杂的防护换取确定性,这是实现通用性与稳定性平衡的关键。
水晶报表动态字段方法
根据用户的需要实现CrystalReport动态字段显示
水晶报表动态创建字段
如题, 对于新手建立水晶报表有些帮助, 创建动态字段
水晶报表使用
实现报表使用以及不绑定数据库实现动态数据等


