博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#套打
阅读量:4982 次
发布时间:2019-06-12

本文共 2605 字,大约阅读时间需要 8 分钟。

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

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

 

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

 

 

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

 

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

你可能感兴趣的文章
(2)把BlackBerry作为插件安装到已有的Eclipse中
查看>>
VUE-es6
查看>>
MySQL-5.7 高阶语法及流程控制
查看>>
C++学习笔记(十)——向上造型
查看>>
2017/6/16
查看>>
LeetCode 445——两数相加 II
查看>>
预备作业03 20162308马平川
查看>>
【Java】嵌套For循环性能优化案例
查看>>
面试了一个开发人员
查看>>
软件工程及软件项目开发流程
查看>>
关于android4.3 bluetooth4.0的那些事儿
查看>>
嵌入式成长轨迹14 【嵌入式环境及基础】【Linux下的C编程 上】【gcc、gdb和GNU Make】...
查看>>
C语言讲义——变量的输出
查看>>
shell脚本 ----每天学一点shell
查看>>
FZU2150 :Fire Game (双起点BFS)
查看>>
php_常用操作_读取文件_数据库操作
查看>>
Linux中GCC源码编译安装
查看>>
equals与==关于Object覆盖和重载问题
查看>>
KVO
查看>>
js基础教程四之无缝滚动
查看>>