asp.net水晶報表列印執行個體代碼

來源:互聯網
上載者:User

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.111cn.net");
  mydoc.setparametervalue("tusername", "繳費人名稱");
  mydoc.printtoprinter(1,false,0,0); //開始列印所有頁
  }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.