肥城龙山网络:专注肥城网站建设、网站开发、网页制作、软件开发等。 24小时服务热线
肥城龙山网络logo

肥城网站建设首页
网站建设
Website
客户案例
Case
软件开发
Advantages
 域名主机
Domain Hosting
 网站推广
E-mail
 服务&支持
Promotion
 联系我们
About Us
网站建设套餐

新闻中心
三层事物代码
利用token防止重复提交问题!!
使用layer.m弹出过程中微信缓存问题的解决办法
html常用特殊字符转义代码
iis 设置网站文件夹或文件读写 编辑 删除权限!!
sql去重复显示其他字段的方法总结
winform 利用excel 模板打印


//打印操作,套打、打印、预览
        enum PrintFlag
        {
            /// <summary>
            /// 套打,只打印没有印刷的部分
            /// </summary>
            CasePrint,
            /// <summary>
            /// 打印全部
            /// </summary>
            PrintAll,
            /// <summary>
            /// 预览全部
            /// </summary>
            PreviewAll        
        }


        //套打、打印、预览三个按钮关联些委托实例
        private void Print_Click(object sender, System.EventArgs e)
        {
            Button btn = (Button)sender;
            switch(btn.Tag.ToString())
            {
                case "套打":
                    Print(PrintFlag.CasePrint);
                    break;
                case "打印":
                    Print(PrintFlag.PrintAll);
                    break;
                case "预览":
                    Print(PrintFlag.PreviewAll);
                    break;            
            }        
        }


        private void Print(PrintFlag p_printFlag)
        {

            //制作步骤:
            /*    1、用Excel作出与要打印的样式一样的电子表格存为模板;
             *     技巧:最好把第一行与第一列作为空行,以利于调整边距(虽然Excel、打印机可调整页边距), 尽量的在需要调整的地方多空几行与几列,以利于调整套打对准
             *
             *  2、如同本程序一样,将Excel作为套打的模板,直接将要打印的数据写入;
             *
             *  3、打印,根据实际的效果调整Excel模板行高列宽及空出的行列, 直到能够准确的套上。将模板拷贝一份,清除模板上的文字与网格线,做成套打的模板。
             */

            #region 套打、打印预览

            //用Excel打印,步骤为:打开、写数据、打印预览、关闭
            GoldPrinter.ExcelExpert.ExcelBase excel = new GoldPrinter.ExcelExpert.ExcelBase();    
            string strFileName = "invoice.xlt";            //模板文件名

            if (p_printFlag == PrintFlag.CasePrint)
            {
                strFileName = "invoiceCase.xlt";        //套打模板文件名
            }

            string strExcelTemplateFile = System.IO.Path.GetFullPath(@"../../ExcelTemplate/" + strFileName);
                        
            excel.Open(strExcelTemplateFile);                            //用模板文件
            excel.Visible = false;                                        //建议:如果excel不可见且在编程情况下写数据特别是大量数据时
            excel.ScreenUpdating = false;                                //设置此开关能大大提高效率。写完后如要可见,再设置此属性为真刷新屏幕。
            excel.Caption = "税 务 机 关 代 开 统 一 发 票(国 税)";    //"MIS金质打印通  通打天下报表";


            //在模板中写入要打印的数据

            //***发票抬头***

            //年月日
            excel.SetCellText(7,"B",txtYear.Text + "年" + txtMonth.Text + "月" + txtDay.Text + "日" );    
            
            //付款方名称    
            excel.SetCellText(8,"D",txtPayer.Text);
            //收款方名称    
            excel.SetCellText(9,"D",txtCollecter.Text);
            //及地址、电话    
            excel.SetCellText(11,"D",txtCollecterAddTel.Text);


            // 代开普通发票    申 请 表 号 码    
            excel.SetCellText(8,"J",txtInvoiceApplicationNo.Text);
            //收款方识别号或 证 件 号 码    
            excel.SetCellText(9,"J",txtCollecterID.Text);

            
            //***品名及金额、备注***
            //B14到B23是品名   F14到F23为金额

            excel.SetCellText("B14",txtP1.Text);
            excel.SetCellText("F14",txtJ1.Text);
            
            excel.SetCellText("B15",txtP2.Text);
            excel.SetCellText("F15",txtJ2.Text);

            excel.SetCellText("B16",txtP3.Text);
            excel.SetCellText("F16",txtJ3.Text);

            excel.SetCellText("B17",txtP4.Text);
            excel.SetCellText("F17",txtJ4.Text);

            excel.SetCellText("B18",txtP5.Text);
            excel.SetCellText("F18",txtJ5.Text);

            excel.SetCellText("B19",txtP6.Text);
            excel.SetCellText("F19",txtJ6.Text);

            excel.SetCellText("B20",txtP7.Text);
            excel.SetCellText("F20",txtJ7.Text);

            excel.SetCellText("B21",txtP8.Text);
            excel.SetCellText("F21",txtJ8.Text);

            excel.SetCellText("B22",txtP9.Text);
            excel.SetCellText("F22",txtJ9.Text);

            excel.SetCellText("B23",txtP10.Text);
            excel.SetCellText("F23",txtJ10.Text);


            //备注
            //excel.SetCellText(14,"I",txtMemo.Imag.);



            //***发票总金额***

            //合计人民币   (大写)        
            excel.SetCellText(24,"D",txtTotalUpper.Text);
            //合计人民币   (小写)
            excel.SetCellText(24,"K",txtTotalLower.Text);


            //税额   (大写)    
            excel.SetCellText(25,"D",txtTaxUpper.Text);
            //税额   (小写)    
            excel.SetCellText(25,"L",txtTaxLower.Text);


            //***发票尾***
            //税控码
            excel.SetCellText(26,"C",txtTaxControlCode.Text);
            //开票人:    
            excel.SetCellText(26,"H",txtWriter.Text);

            //刷新Excel屏幕
            excel.ScreenUpdating = true;


            if (p_printFlag == PrintFlag.CasePrint || p_printFlag == PrintFlag.PrintAll)
            {
                excel.Print();                //打印
            }
            else
            {
                excel.PrintPreview();        //预览
            }

            excel.Close();                    //关闭并释放    
            
            #endregion
    
        }


        private void frmInvoice_Load(object sender, System.EventArgs e)
        {
            //初始当日日期
            System.DateTime dt = System.DateTime.Now;
            SetToday(dt);
        }


        private void btnExit_Click(object sender, System.EventArgs e)
        {
            this.Close();
        }


        //回车
        private void frmInvoice_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)13)
            {
                SendKeys.Send("{TAB}");
            }
        }


        //金额小写转人民币大写
        private void txtTotalLower_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            SetUpperMoney();
        }


        //重新总计
        private void txtJX_TextChanged(object sender, System.EventArgs e)
        {
            double dblMoney = 0;

            dblMoney += GetInputMoney(txtJ1.Text);
            dblMoney += GetInputMoney(txtJ2.Text);
            dblMoney += GetInputMoney(txtJ3.Text);
            dblMoney += GetInputMoney(txtJ4.Text);
            dblMoney += GetInputMoney(txtJ5.Text);
            dblMoney += GetInputMoney(txtJ6.Text);
            dblMoney += GetInputMoney(txtJ7.Text);
            dblMoney += GetInputMoney(txtJ8.Text);
            dblMoney += GetInputMoney(txtJ9.Text);
            dblMoney += GetInputMoney(txtJ10.Text);

            txtTotalLower.Text = dblMoney.ToString();
            SetUpperMoney();

        }


        //改变税率重算
        private void cboTaxRate_TextChanged(object sender, System.EventArgs e)
        {
            SetUpperMoney();
        }


        private void btnRefDate_Click(object sender, System.EventArgs e)
        {
            cldSelect.Visible = true;
            cldSelect.SetDate(new DateTime(int.Parse(txtYear.Text),int.Parse(txtMonth.Text),int.Parse(txtDay.Text)));
            cldSelect.Focus();
        }


        private void cldSelect_DateSelected(object sender, System.Windows.Forms.DateRangeEventArgs e)
        {
            SetToday(e.End);
            cldSelect.Visible = false;        
        }


        //大写合计人民币、税额
        private void SetUpperMoney()
        {
            try
            {
//                string strUpper = GoldPrinter.ExcelExpert.ChineseNum.GetUpperMoney(Double.Parse(txtTotalLower.Text));
//                //合计人民币
//                txtTotalUpper.Text = strUpper;
//
//                strUpper = GoldPrinter.ExcelExpert.ChineseNum.GetUpperMoney(Double.Parse(txtTotalLower.Text) * Double.Parse(cboTaxRate.Text) / 100);
//                //税额 = 合计人民币 * 税率
//                txtTaxUpper.Text = strUpper;

            }
            catch{}                
        }


        private double GetInputMoney(string p_text)
        {
            double dblReturn = 0;
            try
            {
                dblReturn = double.Parse(p_text);
            }
            catch{}

            return dblReturn;
        }


        private void SetToday(System.DateTime dt)
        {
            txtYear.Text = dt.Year.ToString();    
            
            txtMonth.Text = GetLengthTwoDate(dt.Month.ToString());
            txtDay.Text = GetLengthTwoDate(dt.Day.ToString());    
        }


        private string GetLengthTwoDate(string p_MonthOrDay)
        {
            string strReturn = p_MonthOrDay;
            if (strReturn.Length == 1)
            {
                strReturn = "0" + strReturn;
            }

            return strReturn;
        }


    }//End Class

}//End Namespace


原出处:http://www.cnblogs.com/teacherz/archive/2010/10/19/2353824.html


 
 
公司地址:肥城龙山公园园林局对过  网站备案/许可证号:鲁ICP备14032147号    
肥城龙山网络拥有多年网站建设及开发经验,从事网页设计、网站设计(全套)及制作等,因而网站制作的经验极为丰富。经营范围:肥城网站建设、网站制作、肥城网站设计等。


版权所有:肥城龙山网络科技中心