منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
موضوع للنقاش و تبادل الخبرات (طباعة فواتير الطابعة الحرارية) - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : موضوع للنقاش و تبادل الخبرات (طباعة فواتير الطابعة الحرارية) (/showthread.php?tid=38065)



موضوع للنقاش و تبادل الخبرات (طباعة فواتير الطابعة الحرارية) - Rabeea Qbaha - 18-03-21

السلام عليكم اعزائي اعضاء VB4ARB.

قمت ببناء منظومة بيع للمطاعم منذ فترة... وطباعة الفواتير في هذه الانظمة مهم جدا
في حالتي يقوم بالبرنامج بطباعة 4 انواع فواتير: فاتورة للمطبخ و 3 فواتير للزبون(فاتورة توصيل|فاتوؤة طاولة|فاتورة إستلام)

كل هدة الفواتير بنيت باستخدام crystal report و النظام يعمل بقواعد بيانات sqlserver و الـ stored procedure.

لكن اشعر ان الـ crystal report ثقيل قليلا و يكون تاخير في طباعة الفواتير قليلا (10-15 ثانية) مع العلم اني اقوم بالطباعة باستخدام 
backgroundworker لاتمام عملية الطباعة ليكون الاستخدام اكثر سلاسة.

ايضا يمكن للمستخدم إرسال الطلب للمطبخ قبل انهاء اخذ كامل الطلب من الزبون و في هذة الحالة سيطبع فقط قاتورة واحدة وهي للمطبخ 
و في الحالة الاخرى سيطبع فاتورتين واحدة للمطبخ ولاخرى للزبون.
وهذا هو الكود الخاص بالطباعة :


PHP كود :
public void Print_Bill(Int64 Invoice_IDstring _type)
 
       {
 
           if (Properties.Settings.Default.Bill_printer == "إختر طابعة الفواتير")
 
           {
 
               return;
 
           }

 
           ReportDocument Rtp = new ReportDocument();

 
           if (_type == "طاولة")
 
           {
 
               Rtp = new Table_Bill();
 
           }
 
           else if (_type == "إستلام")
 
           {
 
               Rtp = new TakeAway_Bill();
 
           }
 
           else if (_type == "توصيل")
 
           {
 
               Rtp = new Delivery_Bill();
 
           }

 
           if (Rtp.DataDefinition.ParameterFields.Count 0)
 
           {
 
               foreach (ParameterFieldDefinition crDef in Rtp.DataDefinition.ParameterFields)
 
               {
 
                   if (crDef.ReportName == string.Empty)
 
                   {
 
                       object objValue Invoice_ID;
 
                       Rtp.SetParameterValue(crDef.ParameterFieldNameobjValue);
 
                   }
 
               }
 
           }

 
           ConnectionInfo crConn = new ConnectionInfo
            
{
 
               ServerName Properties.Settings.Default.server,
 
               DatabaseName Properties.Settings.Default.database,
 
               UserID Properties.Settings.Default.user,
 
               Password Properties.Settings.Default.password
            
};
 
           // get the Report Tables
 
           using (Tables crTables Rtp.Database.Tables)
 
           {
 
               // get the Report Tables
 
               using (Rtp.Database.Tables)
 
               {
 
                   for (int i 0crTables.Counti++)
 
                   {
 
                       using (Table crTable crTables[i])
 
                       {
 
                           TableLogOnInfo tblInfo crTable.LogOnInfo;
 
                           tblInfo.ConnectionInfo crConn;
 
                           crTable.ApplyLogOnInfo(tblInfo);
 
                       }
 
                   }
 
                   CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions popt = new CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions
                    
{
 
                       PrinterName Properties.Settings.Default.Bill_printer
                    
};
 
                   Rtp.ReportClientDocument.PrintOutputController.PrintReport(popt);
 
               }
 
           }
 
       


السوال هو: هل يوجد طريقة اسرع و اسلس من إستخدام crystal report ؟؟
هل طريقتي لاستخدام ال crystal report صحيحة ؟؟




RE: موضوع للنقاش و تبادل الخبرات (طباعة فواتير الطابعة الحرارية) - يونس علي - 19-03-25

الحل تقارير فاست ريبورت


RE: موضوع للنقاش و تبادل الخبرات (طباعة فواتير الطابعة الحرارية) - mowza - 15-04-25

عذراً، لا أعرف حلاً لهذه المشكلة.


snaptube vidmate