一聚教程网:一个值得你收藏的教程网站

热门教程

asp.net水晶报表打印实例代码

时间:2022-06-25 05:07:55 编辑:袖梨 来源:一聚教程网

asp.net水晶报表打印实例代码
//试两 种打印 报 表 的功能。我在form1上放置了一个crystalreportviewer控件,命名为cryview,准 备使用它自带的"打印按钮"来打印报表。
  //还放 置了一个crystalreportdocument,命名为cryreport1,另外还在form1上放置了一个命为"开 始打印"的按 钮,准 备用它来直接调用报表打印。

  //在form1的load里对cryview和cryreport1以及reportds进行了初始 化。
  private void form1_load(object sender, eventargs e)
  {
  //先要初始化reportds,人 为的向其中加入一些数据dtpack
  datarow reprow1= reportds.tables["dtpack"].newrow();
  reprow1["pname"] = "基本包";
  reprow1["prates"] = 12;
  reprow1["nummonth"] = 12;
  reprow1["enddate"] = "2011-6-20";
  reportds.tables["dtpack"].rows.add(reprow1);
  datarow reprow2 = reportds.tables["dtpack"].newrow();
  reprow2["pname"] = "经典影视";
  reprow2["prates"] = 2;
  reprow2["nummonth"] = 12;
  reprow2["enddate"] = "2011-6-20";
  reportds.tables["dtpack"].rows.add(reprow2);
  //以上为临时加入表中的2个测试数据。
  //下面再添加其它数据
  cryreport1.load("dtvreport.rpt");
  cryreport1.setdatasource(reportds.tables["dtpack"]);
  //下面是直接对报表中的几个参数字段进行赋值
  cryreport1.setparametervalue("tuseraddress", "用户的家庭住址");
  cryreport1.setparametervalue("toperator", "孙丽");
  cryreport1.setparametervalue("tusername", "缴费人名称");
  cryview.reportsource = cryreport1; 
  }
 
  private void button1_click(object sender, eventargs e)
  {
  system.drawing.printing.printdocument pdoc = new printdocument();
  int rawkind = 1;
  for (int i = 0; i <= pdoc.printersettings.papersizes.count - 1; i++)
  {
  if (pdoc.printersettings.papersizes[i].papername == "reppage")
  { //在这里,我使用了自定义的纸张名称reppage
  rawkind = pdoc.printersettings.papersizes[i].rawkind;
  }
  }
  reportdocument mydoc = new reportdocument();
  mydoc.printoptions.papersize=(crystaldecisions.shared.papersize)rawkind;  
  pagemargins pmargin=new pagemargins();
  pmargin.topmargin = 100;
  pmargin.bottommargin = 100;
  pmargin.leftmargin =10;
  pmargin.rightmargin =10;
  mydoc.printoptions.applypagemargins(pmargin);  
  //定义了一下边界,其它我在报表里已经自定义了边界,可是这个左右边 界的值在打印时好像不起作用,在打印出来的发票左边的空余空间很大,估计至少有一1厘米。上下边界倒是起了作用。
  //下面再添加其它数据
  string fn = "dtvreport.rpt";
  //string fn=application.startuppath+"dtvreport.rpt";
  mydoc.load(fn);
  mydoc.setdatasource(reportds.tables["dtpack"]);
  mydoc.setparametervalue("tuseraddress", "用户的家庭住址");
  mydoc.setparametervalue("toperator", "孙丽www.111com.net");
  mydoc.setparametervalue("tusername", "缴费人名称");
  mydoc.printtoprinter(1,false,0,0); //开始打印所有页
  }

热门栏目