超市购物打印小票的简单程序 记录下来
生活随笔
收集整理的這篇文章主要介紹了
超市购物打印小票的简单程序 记录下来
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
做了2個版本的超市購物小票打印程序,做過記錄
一、C/S樣圖如下:
???
?其中 輸入商品的編碼 回車 將會調用該商品的信息,顯示在下面的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的樣圖如下:
???
?B/S的和C/S的類似
完整的程序如下:/Files/ggbbeyou/超市購物小票.rar
一、C/S樣圖如下:
???
?其中 輸入商品的編碼 回車 將會調用該商品的信息,顯示在下面的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的樣圖如下:
???
?B/S的和C/S的類似
完整的程序如下:/Files/ggbbeyou/超市購物小票.rar
轉載于:https://www.cnblogs.com/ggbbeyou/archive/2009/09/21/1571442.html
總結
以上是生活随笔為你收集整理的超市购物打印小票的简单程序 记录下来的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 输卵管不通导致的不孕怎么治
- 下一篇: 酒吧酒多少钱啊?