DataSet 多页套打的实践--发票套打
前天一个朋友托我帮他做一个连续套打的,就是有一大对证书,要能一键搞定。参考了CSDN里的一篇文章,和我们英明的大雨同志套打源码的启发现改如下:
源代码:https://files.cnblogs.com/slave2/PointPrint.rar
如有疑问请联系msn: jzknew@hotmail.com
拒绝非授权状态下的转载,谢谢!
1// The PrintPage event is raised for each page to be printed.
2 private void pd_PrintPage(object sender, PrintPageEventArgs ev)
3 {
4 int n=1;
5 String drawString="";
6 if(this.printDS.Tables.Count<=0)
7 {
8 //如果该表格为0 则从数据源复制表格
9 this.printDS=ds.Copy();
10 }
11
12 for(int j=0;j<this.printDS.Tables[0].Rows.Count&&n<2;j++)
13 {
14 for(int i=1;i<this.printDS.Tables[0].Columns.Count;i++)
15 {
16 DataRow row=this.printDS.Tables[0].Rows[j];
17 // Create string to draw.
18 drawString = this.printDS.Tables[0].Rows[j][i].ToString();
19 // Create font and brush.
20 //Font drawFont = new Font("宋体", 14);
21 Font drawFont=new Font(GetString("PointFont","family"),float.Parse(GetString("PointFont","size")));
22 SolidBrush drawBrush = new SolidBrush(Color.Black);
23 // Create point for upper-left corner of drawing.
24 string tmp="Point"+i.ToString();
25 float x = this.GetXPoint(tmp);
26 float y = this.GetYPoint(tmp);
27 // Set format of string.
28 StringFormat drawFormat = new StringFormat();
29 //drawFormat.FormatFlags = StringFormatFlags.DirectionRightToLeft;
30 // Draw string to screen.
31 ev.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);
32 }
33
34 //去掉已打印的
35 n++;
36 this.printDS.Tables[0].Rows.RemoveAt(j);
37// j--;
38
39
40 }
41
42
43
44
45
46
47 //判定是否已经打印完
48 if(this.printDS.Tables[0].Rows.Count>0)
49<img id=Codehighlighter1_1391_1422_Open_Image onclick="this.style.display='none'; Codehighlighter1_1391_1422_Open_Text.style.display='none'; Codehighlighter1_1391_1422_Closed_Image.style.display='inline'; Codehighlighter1_1391_1422_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndica
2 private void pd_PrintPage(object sender, PrintPageEventArgs ev)
3 {
4 int n=1;
5 String drawString="";
6 if(this.printDS.Tables.Count<=0)
7 {
8 //如果该表格为0 则从数据源复制表格
9 this.printDS=ds.Copy();
10 }
11
12 for(int j=0;j<this.printDS.Tables[0].Rows.Count&&n<2;j++)
13 {
14 for(int i=1;i<this.printDS.Tables[0].Columns.Count;i++)
15 {
16 DataRow row=this.printDS.Tables[0].Rows[j];
17 // Create string to draw.
18 drawString = this.printDS.Tables[0].Rows[j][i].ToString();
19 // Create font and brush.
20 //Font drawFont = new Font("宋体", 14);
21 Font drawFont=new Font(GetString("PointFont","family"),float.Parse(GetString("PointFont","size")));
22 SolidBrush drawBrush = new SolidBrush(Color.Black);
23 // Create point for upper-left corner of drawing.
24 string tmp="Point"+i.ToString();
25 float x = this.GetXPoint(tmp);
26 float y = this.GetYPoint(tmp);
27 // Set format of string.
28 StringFormat drawFormat = new StringFormat();
29 //drawFormat.FormatFlags = StringFormatFlags.DirectionRightToLeft;
30 // Draw string to screen.
31 ev.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);
32 }
33
34 //去掉已打印的
35 n++;
36 this.printDS.Tables[0].Rows.RemoveAt(j);
37// j--;
38
39
40 }
41
42
43
44
45
46
47 //判定是否已经打印完
48 if(this.printDS.Tables[0].Rows.Count>0)
49<img id=Codehighlighter1_1391_1422_Open_Image onclick="this.style.display='none'; Codehighlighter1_1391_1422_Open_Text.style.display='none'; Codehighlighter1_1391_1422_Closed_Image.style.display='inline'; Codehighlighter1_1391_1422_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndica
作者:拒绝潜水的鱼
出处:http://slave2.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://slave2.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。