繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> DataSet 多页套打的实践--发票套打

DataSet 多页套打的实践--发票套打

2007-09-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:前天一个朋友托我帮他做一个连续套打的,就是有一大对证书,要能一键搞定。参考了CSDN里的一篇文章,和我们英明的大雨同志套打源码的启发现改如下: 1// The PrintPage event is raised for each page to be print...
关键字:发票 实践 DataSet

前天一个朋友托我帮他做一个连续套打的,就是有一大对证书,要能一键搞定。参考了CSDN里的一篇文章,和我们英明的大雨同志套打源码的启发现改如下:

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

13 {

14 for(int i=1;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 {

50 ev.HasMorePages=true;

51 }

52 else

53 {

54 //this.printDS.Tables[0].Rows.RemoveAt(this.printDS.Tables[0].Rows.Count);

55 //删除该表格,如果不删除的话,或在打印到最后一行的时候报错,当然不会显示,但会影响程序效率

56 this.printDS.Tables.RemoveAt(0);

57 ev.HasMorePages=false;

58 }

59

60

61 }

62

相关源码如下:

/Files/slave2/PointPrint.rar

责任编辑:admin
相关文章