繁体   English   中英

通过c#将值从Winform传递到Crystal Report文本对象

[英]pass a value from winform to crystal report text object through c#

我是C#编程和Crystal Report的新手。 我遇到一个问题,要发送用户从WinForm输入的值以通过C#(VS10)在Crystal Report上显示。 我只需要将输入值显示为报表标题中的文本对象即可。 我已经在寻找解决方案,但仍然不知道我的代码有什么问题。

我创建了一个连接到其查看器的水晶报表。 这是我的WinForm代码

private void btnSubmit_Click(object sender, EventArgs e)
{
     crRpt TI = new crRpt();            
     CrystalReportViewer crv = new CrystalReportViewer();

     TextObject tiNo = (TextObject)TI.ReportDefinition.Sections["Section2"].ReportObjects["TIN"];
     tiNo.Text = txtTI.Text.toString();
     crv.Visible = false;            
     crv.ReportSource = TI;
     ShowDialog(crv);                     
}

它返回一个错误说:

已经可见的窗体不能显示为模式对话框。 在调用showDialog之前,将表单的visible属性设置为false。

即使我已经放-> crv.visible = false。

我从Crystal Report Viewer中看到,WinForm会自动生成代码以显示连接到excel文件作为其数据源的报表。 如果我在代码底部添加两行代码,如下所示:

displayCR_form dispCR = new displayCR_form();
dispCR.ShowDialog();

并备注-> ShowDialog(crv);

该报告将出现,但仍带有我已分配的空白文本对象。 我错过了什么? 请帮忙。 谢谢。

private void btnSubmit_Click(object sender, EventArgs e)
{
     crRpt TI = new crRpt();            
     CrystalReportViewer crv = new CrystalReportViewer();
     Form frmCrViewer = new Form();
     frmCrViewer.Controls.Add(crv);

     TextObject tiNo = (TextObject)TI.ReportDefinition.Sections["Section2"].ReportObjects["TIN"];
     tiNo.Text = txtTI.Text.toString();
     crv.ReportSource = TI;
     crv.Dock = Fill;
     frmCrViewer.ShowDialog();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM