winform程序里,水晶报表已经实现,运行程序可以显示报表内容。
 MySqlConnection conn = new MySqlConnection("server=127.0.0.1;database=platform;uid=root;pwd=root;charset=gb2312");
        MyReportData Mydata = new MyReportData();
        MySqlDataAdapter da;
 private void frmPrint_Load(object sender, EventArgs e)
        {
             int MemberId = 1;
            da = new MySqlDataAdapter("select member.MemberId as MemberId,MemberName,Score,Type from member,memscore where member.MemberId=memscore.MemberId and memscore.MemberId=" + MemberId + "", conn);
            da.Fill(Mydata, "MyReportDataTable");
            crystalReport11.Load(Application.StartupPath + "CrystalReport1.rpt");
            crystalReport11.SetDataSource(Mydata);
            crystalReportViewer1.ReportSource = crystalReport11;
            crystalReport11.PrintToPrinter(1, true, 0, 0);        }
以上是实现报表的代码。
现在的问题是我想实现打印出报表的功能,请各位帮帮忙,以前没接触过这个

解决方案 »

  1.   

    哇,小妹妹啊,csdn狼太多,你小心点啊。up
      

  2.   

    reportDocument1.PrintOptions.PrinterName = "打印机地址";
    这个吧
      

  3.   

     crystalReport11.PrintToPrinter(1, true, 0, 0);
    我程序里的这句代码,执行就弹出一个框:另存为 然后文件名默认为document,类型为Microsoft Document Imaging格式(*.mdi) 我不明白为什么,那句代码不是实现打印的么??
      

  4.   

    谢谢。。
    各位,实现打印功能那一句代码应该不行,我查了下窗体上还需要一个打印的控件,那我是用PrintDialog还是PrintDocument?我想的是程序运行就可以自动打印的。
      

  5.   

    crystalReport11.PrintOptions.PrinterName = "打印机地址";
    刚我说了啊,你试了没啊
      

  6.   

    我输了打印机的地址:192.168.0.153,怎么提示我指定的打印机无效
    crystalReport11.PrintOptions.PrinterName = "192.168.0.153";
      

  7.   

    我问了同公司的人,他的机上连的打印机是:HP laserJet M1319F MFP在192.168.0.157上,请问我该怎么写完整的地址?
      

  8.   


    出现这个的原因是,系统中的默认打印机是 microsoft document ... ,你在打印机管理中把默认打印机设成真正的打印机就好了。
      

  9.   


    设过默认打印机,使用预览界面上的打印按钮绝对没有问题,只是crystalReport11.PrintToPrinter(1, true, 0, 0);
    里面的参数1 是不是指定打印机的,需要看一下说明
      

  10.   

    Crystal Reports Basic for Visual Studio 教程:打印和设置打印选项
      

  11.   

    Public Overridable Sub PrintToPrinter(ByVal nCopies As Integer, ByVal collated As Boolean, ByVal startPageN As Integer, ByVal endPageN As Integer)
         成员属于: CrystalDecisions.CrystalReports.Engine.ReportDocument
    摘要:
    使用 PrintOptions.PrinterName 属性将报表的指定页输出到选定的打印机上。如果未选择打印机,则将使用报表中指定的默认打印机。参数:
    nCopies: 指明要打印的份数。
    collated: 指明是否逐份打印。
    startPageN: 指明要打印的第一页。
    endPageN: 指明要打印的最后一页。
      

  12.   

    怎么设置呢?我开始-》打印机和传真-》Microsoft Office Document Image Writer和在 BJJYGROU-99BC06 上自动 Microsoft Office Document Image Writer就这2个,我有点蒙了。。
      

  13.   

    先在系统里面添加打印机,把你网络上的打印机添加过来然后根据这个打印机的名字和IP地址,写刚才说到的PrinterName就好了你现在的问题就是打印机名称不对
      

  14.   

    在 "在 BJJYGROU-99BC06 上自动" 上点右键,设为默认
      

  15.   

    我添加一个打印机,可老提示我说:Windows无法连接到打印机,键入的打印机名不正确或者指定的打印机没有连接到服务器上,我该怎么做啊?
      

  16.   

    我现在把HP laserJet M1319F MFP在192.168.0.157设置为了默认打印机,可为什么还是不打印呢?
      

  17.   

    看见个小妹``赶紧进来了``我也要做这个  我找了黑色头发的 你看看可以不http://heisetoufa.javaeye.com/blog/238094
      

  18.   

     private void frmPrint_Load(object sender, EventArgs e)
            {
                //int MemberId=Program.Num_id;
                int MemberId = 1;
                da = new MySqlDataAdapter("select member.MemberId as MemberId,MemberName,Score,Type from member,memscore where member.MemberId=memscore.MemberId and memscore.MemberId=" + MemberId + "", conn);
                da.Fill(Mydata, "MyReportDataTable");
             
                crystalReport11.Load(Application.StartupPath + "CrystalReport1.rpt");
                crystalReport11.SetDataSource(Mydata);
                crystalReportViewer1.ReportSource = crystalReport11;
                
                crystalReportViewer1.ShowPrintButton = false;
                
                DialogResult r = this.printDialog1.ShowDialog();
                if (r == DialogResult.OK)
                {
                    this.crystalReport11.PrintOptions.PrinterName = this.printDialog1.PrinterSettings.PrinterName;
                    this.crystalReport11.PrintToPrinter(1, true , 0, 0);             }
            }
    帮我看看,为什么这段代码实现不了打印???默认打印机已经设置好为HP laserJet M1319F MFP在192.168.0.157,谢谢各位了要是分少还可以加
      

  19.   


      string PRINTER_NAME = @"\\192.168.0.157\\HP laserJet M1319F MFP";
      ...
     
      //设置打印机
      this.crystalReport11.PrintOptions.PrinterName = PRINTER_NAME;注意IP和打印机名字弄对