【问题标题】:pass a value from winform to crystal report text object through c#通过c#将值从winform传递给水晶报表文本对象
【发布时间】:2014-02-11 06:59:51
【问题描述】:

我是 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 文件作为其数据源的报表。 如果我在代码底部添加 2 行代码,如下所示:

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

并备注-> ShowDialog(crv);

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

【问题讨论】:

  • 根据 MSDN,“CrystalReportViewer”是一个用户控件。要显示“对话框”,您需要一个窗口。什么是“displayCR_form”?
  • 您的报表是否使用存储过程?如果是这样,您可以将文本作为变量传递给您的 proc 并以这种方式显示在报告中?
  • @Björn 我弄错了.. displayCR_form 是一个包含 CR 查看器的 winform。我将 CR 查看器放在与 texbox 相同的 winform 中。它解决了这个问题。谢谢各位

标签: c# winforms visual-studio-2010 crystal-reports crystal-reports-viewer


【解决方案1】:
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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多