Beispiel #1
0
        static void Main(string[] args)
        {
            while (true)
            {
                StringBuilder sb = new StringBuilder();
                Console.WriteLine("Start Sleep 10 seconds");
                Thread.Sleep(10000);

                try
                {
                    Console.WriteLine("PrintReceptSoapClient start");
                    POS58Listen.PrintService.OrderDataSoapClient pr = new POS58Listen.PrintService.OrderDataSoapClient();
                    Console.WriteLine("PrintReceptSoapClient end");
                    DataSet xx = pr.getPrintOrderData();
                    dt = xx.Tables[0];
                    if (dt.Rows.Count > 0)
                    {
                        PrintDocument pd = new System.Drawing.Printing.PrintDocument();
                        pd.PrintPage += printPageEvent;
                        pd.Print();
                        y = 0;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message.ToString());
                }
            }
        }
Beispiel #2
0
        private static void printPageEvent(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            string        sOrderNo  = string.Empty;
            string        sItemName = string.Empty;
            string        sItemQty  = string.Empty;
            string        sPrice    = string.Empty;
            string        sTotal    = string.Empty;
            string        iTotal    = string.Empty;
            string        sEname    = string.Empty;
            string        sDesc     = string.Empty;
            PrintDocument pd        = new System.Drawing.Printing.PrintDocument();
            Graphics      g         = e.Graphics;
            SolidBrush    pb        = new SolidBrush(Color.Black);
            Single        left      = pd.DefaultPageSettings.Margins.Left - 10;
            Single        top       = pd.DefaultPageSettings.Margins.Top - 20;

            DataTable dist_dt = dt.DefaultView.ToTable(true, new string[] { "EName", "OrderNo", "Total", "ODESC" });

            foreach (DataRow dr in dist_dt.Rows)
            {
                sOrderNo = dr["OrderNo"].ToString();
                sTotal   = dr["Total"].ToString();
                sEname   = dr["EName"].ToString();
                sDesc    = dr["ODESC"].ToString();
                DataRow[] result = dt.Select("OrderNo='" + sOrderNo + "'");
                AddLine(ref g, "------------------------");
                AddLine(ref g, "訂購人: " + sEname);
                AddLine(ref g, "訂單編號: " + sOrderNo);
                AddLine(ref g, "訂單金額: " + sTotal);
                AddLine(ref g, "訂單明細:");
                foreach (DataRow dr2 in result)
                {
                    sItemName = dr2["Item"].ToString();
                    sItemQty  = dr2["ItemQty"].ToString();
                    sPrice    = dr2["DPrice"].ToString();
                    iTotal    = dr2["iTotal"].ToString();
                    AddLine(ref g, sItemName + "    " + sPrice + " x " + sItemQty + " = " + iTotal);
                }
                AddLine(ref g, "備註: " + sDesc);
                Console.WriteLine("PrintReceptSoapClient start");
                POS58Listen.PrintService.OrderDataSoapClient pr = new POS58Listen.PrintService.OrderDataSoapClient();
                Console.WriteLine("PrintReceptSoapClient end");
                pr.UpdatePrintFlag(sOrderNo);
            }

            Console.WriteLine("Finish this stage");
        }