منتديات داماس > >
دورة صناعة برنامج سوبر ماركت بالسي شارب وقاعدة بيانات سكوال
05:27 PM

شكرا اساتذانا الجليل والله يجعله ى ميزان حسانتك هذا المجهود الكبير
لدى رجاء منتك فى الدرس 33 عند انشاء كريستال ريبورت ظهر اروير وحضرتك كتبت كود ووعدت سوف تضعه لمن يحتاجه
ممكن هذا الكود
تفضل اخي ....
ضعه قبل نهاية الاعداد : </configuration>
كود PHP:
 <startup useLegacyV2RuntimeActivationPolicy="true">
        <
supportedRuntime version="v4.0"/>
</
startup

لدعم قناة وسام الحمد على اليوتيوب

كلمة السر damas لا تعمل
السلام عليكم ورحمة الله


لدي مشكلة مع تقرير الكريستال ريبورت في الدرس 33 حيث انه عند الضغط على زر طباعة فاتورة محددة تأتي فارغة


الصورة توضح ذلك


السلام عليكم ورحمة الله
لدي مشكلة مع تقرير الكريستال ريبورت في الدرس 33 حيث انه عند الضغط على زر طباعة فاتورة محددة تأتي فارغة
الصورة توضح ذلك
اخي لما تضغط زر الطباعة ويكون ابيض بهذا الشكل فان خطأ حتما سجل بقائمة
الفيجوال as : Exception اضغط عليه كلك للتوسعة عليه ثم صور الخطأ وضعه هنا
واذا مو عارف ضع catch (Exception ex)
ثم MessageBox.Show(ex.Message)
اخي لما تضغط زر الطباعة ويكون ابيض بهذا الشكل فان خطأ حتما سجل بقائمة
الفيجوال as : Exception اضغط عليه كلك للتوسعة عليه ثم صور الخطأ وضعه هنا
واذا مو عارف ضع catch (Exception ex)
ثم MessageBox.Show(ex.Message)

هذا هو محتوى الرسالة أستاذي


كود:
object references not set to an instance of an object
هذا هو محتوى الرسالة أستاذي
كود:
object references not set to an instance of an object
هذا السبب العام اخي وليس السبب الرئيسي ....
ولن استطيع تحديد السبب دون معرفة السبب الرئيسي
لا لقد جربت القيام بهده الإجراءات وبائت بالفضشل لانني أستعمل طابعة حرارية
https://u.damasgate.com/001a/5/dwz5n0cj2jgmhw9a6mye.jpg
إدا قمت بتحديد العرض 79.5mm ± 0.5mm والطول يتم تحديده حسب عدد الأصناف حيث تقوم الطابعة بقص الورقة مع آخر سطر مكتوب كما هو موضح في الصور السابقة مع العلم اني جربت ضبط إعدادات الصفحة من قبل إدا قمت بوضع هده القياسات مثلا 79.5mm في العرض و 100mm في الطول سنقوم بالطباعة بكل تأكيد لكن إن قمت بطباعة صنف واحد فقط سيكون حجم الصفحة نفسه مع ضياع الورق اي المساحة المتبقية قمت بالبحث كثيرا عبر جميع المتصفحات وقد وجدت أنه يمكن القيام بالطباعة عن طريق أكواد في السيشارب تقوم بإعداد حجم الورق حسب عدد الأسطر المراد طباعتها وتقوم الطابعة بقس الزرقة عند آخر سطر تم طباعته آليا هده هي الطابعة التي أستخدمها حاليا
HIGH-SPEED THERMAL RECEIPT PRINTER حيث أنها إقتصادية تقوم بالطباعة السريعة كما
إستنتجت ان الكريستال ريبورت يأخد وقت أكثر للطباعة ودلك بسبب معالجة البيانات فاد كان حاسب العميل ضعيف فهناك مشكلة كما انني اريد الطباعة مباشرة بدون عرض البيانات لان الأكواد التي سأنتجها في السيشارب ستقوم بدلك
رجاءا الرد السريع مع الحل وشكراللمساعدة
وإد لم يوجد الحل هل يمكن تنفيد هدا النوع من النصوص لمعالجة المشكل مع الشرح رجاءا

bool ForcePageSize(System.Drawing.Printing.Pr intDocument MyPrintDocument, System.Drawing.Printing.PaperKind MyPaperKind)
{
for (int i = 0; i < MyPrintDocument.PrinterSettings.PaperSiz es.Count; ++i)
{
if
(MyPrintDocument.PrinterSettings.PaperSi zes[i].Kind == MyPaperKind)
{
MyPrintDocument.DefaultPageSettings.Pape rSize = MyPrintDocument.PrinterSettings.PaperSiz es[i];
return true;
}
}
return false;
}
إلى الأخ أبو فهمي رجاءا هل من الممكن طباعة هدا التقرير بدون كريستال ريبورت فيور وإن أمكن كيف يتم شكرا مسبقا
if (MessageBox.Show("Ci Vous Volez imprimer Cet Piece Clicker Oui Ci Vou Est Pas intériser Clicker sur Non", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
//this.Cursor = Cursors.WaitCursor;

//Sales.ReportSalse.OneSaleReport MyRep = new Sales.ReportSalse.OneSaleReport();
//int id = Convert.ToInt32(TxOrderID.Text);
//MyRep.SetParameterValue("@ID", id);
//Report.Purch.FrmCry fm = new Report.Purch.FrmCry();
//fm.crystalReportViewer1.ReportSource = MyRep;

//this.Cursor = Cursors.Hand;

//fm.ShowDialog();


}
catch (Exception ex)
{
MessageBox.Show("Eror" + ex.ToString(), "", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}
إلى الأخ أبو فهمي رجاءا هل من الممكن طباعة هدا التقرير بدون كريستال ريبورت فيور وإن أمكن كيف يتم شكرا مسبقا
if (MessageBox.Show("Ci Vous Volez imprimer Cet Piece Clicker Oui Ci Vou Est Pas intériser Clicker sur Non", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
//this.Cursor = Cursors.WaitCursor;

//Sales.ReportSalse.OneSaleReport MyRep = new Sales.ReportSalse.OneSaleReport();
//int id = Convert.ToInt32(TxOrderID.Text);
//MyRep.SetParameterValue("@ID", id);
//Report.Purch.FrmCry fm = new Report.Purch.FrmCry();
//fm.crystalReportViewer1.ReportSource = MyRep;

//this.Cursor = Cursors.Hand;

//fm.ShowDialog();


}
catch (Exception ex)
{
MessageBox.Show("Eror" + ex.ToString(), "", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

نعم احي بالامكان طبعتها بشكل مباشر دون استعراض التقرير والتي تاخذ بعض الوقت :
كود PHP:
using CrystalDecisions.Shared;

  private 
void PrintDirectly()
        {
            try
            {
                
this.Cursor Cursors.WaitCursor;

                
// استنساخ التقرير 
                
Report.SalesBill.OneSalesBill MyRep = new Report.SalesBill.OneSalesBill();

                
// انشاء متغير يمثل نوع الفورمات PDF 
                
PdfFormatOptions PDF_F_OPTION = new PdfFormatOptions();

                
// الإعلان عن متغير يمثل تصدير التقرير 
                
ExportOptions export = new ExportOptions();

                
// الإعلان عن متغير يمثل مكان حفظ هذا التقرير 
                
DiskFileDestinationOptions dfoption = new DiskFileDestinationOptions();

                
// متغير يمثل مسار البرنامج ثم انشاء فولدر جديد باسم ريبورت 
                
string ReportPath Application.StartupPath "\\Report\\";

                
int i 0;
                
// التأكد بأن المسار غير موجود ... عندها ننشأ جديد 
                
if (Directory.Exists(ReportPath) == false)
                {
                    
Directory.CreateDirectory(ReportPath);

                    
// وضع التقرير بمكان مجلد الحفظ مع الإعلان عن اسم الملف الجديد وصيغته 
                    
dfoption.DiskFileName ReportPath "فاتورة بيع (" ").pdf";
                }
                else
                {
                    
// وضع التقرير بمكان مجلد الحفظ مع الإعلان عن اسم الملف الجديد وصيغته اذا كان موجود 
                    // هنا ننشأ جملة لوب للتأكد بأن الإسم موجود فإذا كان موجود يزيد علي الاسم 1 واذا لا يعطيه 0 

                    
for (int a 1; ; ++a)
                    {
                        
string fullpath ReportPath "فاتورة بيع (" ").pdf";
                        if (!
File.Exists(fullpath))
                        {
                            
dfoption.DiskFileName ReportPath "فاتورة بيع (" ").pdf";
                            break;
                        }
                    }

                }


                
// ربط متغير التصدير بتصدير التقرير 
                
export MyRep.ExportOptions;

                
// ربط مكان المجلد مع التقرير 
                
export.ExportDestinationType ExportDestinationType.DiskFile;

                
// ربط الفورمات بالمستند 
                
export.ExportFormatType ExportFormatType.PortableDocFormat;

                
// نوع فورمات البي دي اف 
                
export.ExportFormatOptions PDF_F_OPTION;

                
// ربط المسار بالتقرير 
                
export.ExportDestinationOptions dfoption;

                
// تحديث التقرير 
                
MyRep.Refresh();

                
int id Convert.ToInt32(TxOrderID.Text);
                
MyRep.SetParameterValue("@ID"id);

                
// أمر التصدير 
                
MyRep.Export();

                
this.Cursor Cursors.Default;
                
MessageBox.Show("تم تصدير التقرير الي ملف بي دي إف بنجاح""عملية التصدير"MessageBoxButtons.OKMessageBoxIcon.Information);
            }
            catch
            {
                
this.Cursor Cursors.Default;
                return;
            }
        }