C#套打

在电算化会计工作中,几乎所有的由计算机生成的会计档案都应当按照会计制度规定的格式进行输出设计。例如各类帐本和记帐凭证等。通常,这些档案的打印输出处理方式有两种:

  第一种:非套打方式------根据会计软件生成的应输出的档案,打印时,既打印应当输出的数据,也将帐本上印刷的格线打印出来。这种方式适用于在无痕迹的白纸上打印输出会计档案。   第二种:套打方式------在这种方式下,会计软件的生产商必须在生产会计软件的同时,配套 生产既符合会计制度规定又满足该种会计软件输出要求的印有格线、格式固定的空白帐证和报表。电算会计在打印输出会计档案时,只套用现有格式打印应当输出的 数据,并不将帐本上印刷的格线打印出来。这样,提高了打印输出效率,降低了打印机损耗,节约了打印成本。   目前,一些较成熟的会计软件同时提供了套打和非套打两种会计档案打印输出方式,例如金蝶、用友等财务软件。   当然,这组概念也可以用于非会计软件的其他软件设计当中。

 

这意思我们在平时生活中都用过的,车票了,条形码,什么的,等等,都有...

 

 

   在网上看了下,实现的过程,建了一个打印操作的类,具体的实现方法如下:

 

PublicPrint.cs 打印操作类

using System; using System.Collections.Generic; using System.Text;
using System.Data; using System.Drawing;
namespace WindowsFormsPing {     class PublicPrint     {              public PublicPrint()         {                    }
        public void Postion(Graphics e, DataTable dt)         {             int x = 60;//x坐标
            int y = 50;//y坐标
            Font fontNormalContent = new System.Drawing.Font("华文楷体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            Pen pen = new Pen(Color.Black, 1);
            for (int i = 0; i < dt.Rows.Count; i++)             {
                string wpmc = dt.Rows[i]["MC"].ToString();//名称
                string wpgg = dt.Rows[i]["GG"].ToString();//规格
                string wpdw = dt.Rows[i]["DW"].ToString();//单位
                string wpsl = dt.Rows[i]["SL"].ToString();//数量
                string wpdj = dt.Rows[i]["DJ"].ToString();//单价
                string wpje = dt.Rows[i]["JE"].ToString();//金额
                string sjxx = DateTime.Parse(dt.Rows[i]["DJSJ"].ToString()).ToShortDateString();//时间

                e.DrawString(wpmc + " " + wpgg, fontNormalContent, Brushes.Black, x, y);
                e.DrawString(wpdw, fontNormalContent, Brushes.Black, x + 80, y);
                e.DrawString(wpsl, fontNormalContent, Brushes.Black, x + 115, y);
                e.DrawString(wpdj, fontNormalContent, Brushes.Black, x + 160, y);

                //写入时间
                if (i == 0)                 {
                    string year = sjxx.Substring(2, 2);
                    string month = sjxx.Substring(5, 2);
                    string day = sjxx.Substring(8, 2);
                    e.DrawString(year, fontNormalContent, Brushes.Blue, 150, 25);
                    e.DrawString(month, fontNormalContent, Brushes.Blue, 170, 25);
                    e.DrawString(day, fontNormalContent, Brushes.Blue, 190, 25);
                }
                y += 30;
            }         }     } }

 

 

 

页面调用.cs类:

 

        private void btnPrint_Click(object sender, EventArgs e)         {             if (printDialog1.ShowDialog() == DialogResult.OK)             {                 printDocument1.PrinterSettings = printDialog1.PrinterSettings;
                printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(printDocument1_PrintPage);                 printDocument1.Print();
            }         } 
        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)         {             Graphics g = e.Graphics;
            DataSet ds = new DataSet();//绑定数据源             PublicPrint p = new PublicPrint();             p.Postion(g, ds.Tables[0]);         } 

 

 

以上代码就是.有从别人那拿的,呵呵

转载于:https://www.cnblogs.com/dotnetfangjun/archive/2012/03/22/2410858.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值