项目是这样的,我在一个查询窗体可以查询记录,并且把记录显示在DATAGRIDVIEW控件上面,当我点打印BUTTON按纽,能够调用另外一个窗体显示打印内容,而这些内容就是查询之后的数据。
查询窗体代码:
 private void btnPrint_Click(object sender, EventArgs e)
        {
          
            FrmPrtPaymentInfo frmprt = new FrmPrtPaymentInfo();
            frmprt.ds = this.ds;
            frmprt.ShowDialog();
        }打印窗体的代码是这样的:
public DataSet ds;
private void FrmPrtPaymentInfo_Load(object sender, EventArgs e)
{           Crt1 crt1 = new Crt1();
            crt1.SetDataSource(ds.Tables["PaymentInfo"]);
            crt1.DataDefinition.FormulaFields[].Text=
            crystalReportViewer1.ReportSource = crt1;
}
在调用打印窗体我把查询窗体的数据集ds传递到了打印窗体,这样能够实现动态绑定数据。
但是问题出现了,当我点了查询按纽,再点打印,发现报表显示不了数据如果不点击查询直接点打印就可以显示数据。
请问这是怎么回事?这样的话变成不能动态绑定数据源了。。请指点,谢谢。

解决方案 »

  1.   

    我也是正纳闷,为什么会这样
    private void btnPrint_Click(object sender, EventArgs e) 
            { 
              
                FrmPrtPaymentInfo frmprt = new FrmPrtPaymentInfo(); 
                frmprt.ds = this.ds; 
                frmprt.ShowDialog(); 
            } 打印窗体的代码是这样的: 
    public DataSet ds; 
    private void FrmPrtPaymentInfo_Load(object sender, EventArgs e) 
    {          Crt1 crt1 = new Crt1(); 
                crt1.SetDataSource(ds.Tables["PaymentInfo"]); 
                crystalReportViewer1.ReportSource = crt1;