• 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]);         } 

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

  • 相关阅读:
    mybatis 控制台打印sql脚本
    删除git库中untracked files(未监控)的文件
    亚马逊云实例被攻击 一个月账单三百多美刀
    ubuntu下搜索文件
    django 富文本展示 以及 post提交出错
    亚马逊EC2弹性IP收费
    redis 相关命令
    使用XSHELL连接EC2虚拟机实例
    springMVC下集成active MQ发送邮件
    ubuntu下安装JDK并搭建activeMQ
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/2935706.html
Copyright © 2020-2023  润新知