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
// 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
作者:拒绝潜水的鱼
出处:http://slave2.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://slave2.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


浙公网安备 33010602011771号