做了2个版本的超市购物小票打印程序,做过记录

一、C/S样图如下:


   


java根据订单信息打印小票怎么实现 java结算时打印购物小票_c/c++


 其中 输入商品的编码 回车 将会调用该商品的信息,显示在下面的DataGridView中 ,DataGridView中数量是可以修改的,修改数量,下面的合计 将会自动计算 ,然后打印


  其中 打印购物小票的程序如下:


  

#region 结帐以及打印函数 
 
         private void jzPrint() 
 
         { 
 
             if (dataGridView1.Rows.Count == 0) 
 
             { 
 
                 MessageBox.Show("没有购物数据,无法收银和打印!"); 
 
                 return; 
 
             } 
 
             if (textBox3.Text.Trim() == "") 
 
             { 
 
                 MessageBox.Show("没有输入付款金额,无法收银打印!"); 
 
                 return; 
 
             } 
 
             //收银打印 
 

             string operuser = "露天其";//收银员的名称,实际修改时,应该成登录者的名字即可 
 

             #region 第一步,首先把这项订单写入数据库的表中 
 
              //写入数据库比较简单, 
 
             for (int i = 0; i < dataGridView1.Rows.Count; i++) 
 
             { 
 
                 string name = dataGridView1.Rows[i].Cells["ProName"].Value.ToString().Trim();//获取该行的物品名称 
 
                 string num = dataGridView1.Rows[i].Cells["ProNum"].Value.ToString().Trim();//数量 
 
                 string price = dataGridView1.Rows[i].Cells["ProPrice"].Value.ToString().Trim();//单价 
 
                 string bm = dataGridView1.Rows[i].Cells["bianma"].Value.ToString(); 
 
                 //string SQL = "insert into T_Order()"; 
 
                 //SqlHelper.ExecuteNonQuery( 
 

             } 
 
             #endregion 
 
             string path = Application.StartupPath.ToString() + "\\ticket.txt";//exe程序所在的路径 
 

             #region 第二步,把这位顾客的购物单,按格式生成一个txt文件,方便第三步打印 
 
             StreamWriter sw = new StreamWriter(path, true); 
 
             string day = DateTime.Now.ToString("yyyyMMdd"); 
 
             string time = DateTime.Now.ToString(); 
 
             #region 小票 基本格式图 
 
             //***************小票的格式如下************************  // 
 
             //                   新一佳超市                         // 
 
             //                欢迎光临新一佳超市                   // 
 
             //                                                     // 
 
             //                                                     //   
 
             // 物品                        数量       单价(¥)    // 
 
             //---------------------------------------------------// 
 
             //系列红山茶硬盒                 3         45.8      // 
 
             //哆啦A梦相架小礼包              5         25.8      // 
 
             //哆啦A梦相架小礼包              5         25.8      // 
 
             //哆啦A梦相架小礼包              5         25.8      // 
 
             //哆啦A梦相架小礼包              5         25.8      // 
 
             //哆啦A梦相架小礼包              5         25.8      // 
 
             //哆啦A梦相架小礼包              5         25.8      // 
 
             //哆啦A梦相架小礼包              5         25.8      // 
 
             //--------------------------------------------------// 
 
             //           总数:              35                 // 
 
             //           合计:              350                // 
 
             //           现金:              355.9              // 
 
             //           找赎:              15                 // 
 
             //                                                  // 
 
             //                                                  // 
 
             //                                                 // 
 
             //  日期/时间       2009/10/25 14:25:15           // 
 
             //          服务热线:0755-25145252               // 
 
             //**************************************************// 
 
             #endregion 
 
             #region 拼出小票格式 
 
             sw.WriteLine("                 新一佳超市            \t\t"); 
 
             sw.WriteLine("                                           \t\t"); 
 
             sw.WriteLine("               欢迎光临新一佳超市      \t\t"); 
 
             sw.WriteLine("                                                "); 
 
             sw.WriteLine("                                                "); 
 
             sw.WriteLine("                                                "); 
 
             sw.WriteLine("   物品               数量                  单价(¥)"); 
 
             sw.WriteLine("-----------------------------------------------------"); 
 
             int nums = 20; 
 
             int prices = 12; 
 

             #region 获取DataGridView中的数据 
 
             for (int i = 0; i < dataGridView1.Rows.Count; i++) 
 
             { 
 
                 string name = dataGridView1.Rows[i].Cells["ProName"].Value.ToString().Trim();//获取该行的物品名称 
 
                 string num = dataGridView1.Rows[i].Cells["ProNum"].Value.ToString().Trim();//数量 
 
                 string price = dataGridView1.Rows[i].Cells["ProPrice"].Value.ToString().Trim();//单价 
 

                 int numlength = System.Text.Encoding.Default.GetBytes(num).Length; 
 
                 if (numlength < nums) 
 
                 { 
 
                     num = AddSpace(num, nums - numlength); 
 
                 } 
 

                 int pricelength = System.Text.Encoding.Default.GetBytes(price).Length; 
 
                 if (pricelength < prices) 
 
                 { 
 
                     price = AddSpace(price, prices - pricelength); 
 
                 } 
 
                 sw.WriteLine(name); 
 
                 sw.WriteLine("                         " + num + "        " + price); 
 

             } 
 
             #endregion 
 
             sw.WriteLine("-----------------------------------------------------"); 
 
             sw.WriteLine("           总数:                  " + lbnum.Text.ToString()); 
 
             //计算合计金额: 
 
             decimal oldmoney = Convert.ToDecimal(textBox1.Text); 
 
             decimal newmoney = 0; 
 

             newmoney = oldmoney; 
 


             sw.WriteLine("           合计:                  " + newmoney.ToString());//合计金额 
 
             sw.WriteLine("           现金:                  " + textBox3.Text.Trim());//实收现金 
 
             sw.WriteLine("           找赎:                  " + textBox4.Text.Trim());//实收现金 
 
             sw.WriteLine("                                         \t\t"); 
 
             sw.WriteLine("                                         \t\t"); 
 
             sw.WriteLine("日期/时间 " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); 
 
             sw.WriteLine("                                                "); 
 
             sw.WriteLine("服务热线:0755-12435682"); 
 
             sw.Close(); 
 
             #endregion 
 
             #endregion 
 
             #region 第三部,进行打印 
 
             System.Windows.Forms.PrintDialog PrintDialog1 = new PrintDialog(); 
 
             PrintDialog1.AllowSomePages = true; 
 
             PrintDialog1.ShowHelp = true; 
 

             // 把PrintDialog的Document属性设为上面配置好的PrintDocument的实例 
 
             PrintDialog1.Document = docToPrint;//这是工具箱中打印的一个 组件名称 
 
             this.docToPrint.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(docToPrint_PrintPage); 
 

             // 调用PrintDialog的ShowDialog函数显示打印对话框 
 
             DialogResult result = PrintDialog1.ShowDialog(); 
 

             if (result == DialogResult.OK)// 弹出设置打印机,如果不需要设置,第三部可简写为   docToPrint.Print(); 则开始进行打印了 
 
             { 
 
                 // 开始打印 
 
                 docToPrint.Print(); 
 

             } 
 
             #endregion 
 
             if (File.Exists(path)) 
 
             { 
 
                 File.Delete(path); 
 
             } 
 
         } 
 
         #endregion

二、B/S的样图如下:


   


java根据订单信息打印小票怎么实现 java结算时打印购物小票_System_02