الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الطباعة المباشرة للتقرير

بدأه Mohamed-Riadh في 20 نوفمبر 2010 · 14 رد · 2,608 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي مشكلة منذ أمد طويل خاصة بالطباعة المباشرة للتقرير

حيث أني عملت تقرير كريستال ريبورتس لفاتورة

وعملت زر لاظهار الفاتورة

لحد الان التقرير يعمل بكفاءة ويمكنني طبعه من الزر المرفق مع الreportsviewers

لكني فكرت في عمر زر اسمه print لأطبع التقرير مباشرة

هذا هو الكود

  Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Conn.Open()
        Dim oledbadapter As New OleDbDataAdapter(oledbStr, Conn)
        oledbadapter.Fill(Dataset1, "Livraison")
        Conn.Close()
        Dim C1 As CrystalDecisions.CrystalReports.Engine.Table
        Dim C2 As CrystalDecisions.Shared.TableLogOnInfo
        Dim Rpt As New BonLivraison
        For Each C1 In Rpt.Database.Tables
            C2 = C1.LogOnInfo
            With C2.ConnectionInfo
                .DatabaseName = Application.StartupPath & "\stockguard.mdb"
            End With
            C1.ApplyLogOnInfo(C2)
        Next C1

        AfficheBL.CrystalReportViewer1.ReportSource = Rpt
        AfficheBL.CrystalReportViewer1.SelectionFormula = "{Livraison.N_Bl}= " & Me.TextBox1.Text
        AfficheBL.CrystalReportViewer1.PrintReport()
        Me.Close()
    End Sub

حيث أن الطباعة تتم في الجهاز المنصب عليه الفيجوال ستوديو

ولكن بنقله لجهاز اخر يظهر عندي خطأ في معلومات الاتصال رغم أن التقرير الخاص بالفاتورة يظهر

هل من مساعدة بارك الله فيكم ؟

#2

63 مشاهدة ولا يوجد رد ؟

هل الموضوع ليس له حل لهذه الدرجة ؟

وشكرا

#3

اين رسالة الخطأ ؟

وهل الجهاز الاخر منصب عليه دوت نت فريم ورك ؟

وهل المكتبات اللازمة لتشتغيل برنامجك متوفرة في الجهاز الاخر ؟

كل هذه اسئلة يجب ان توضحها لنا

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#4
محمد فؤاد تركي كتب:

اين رسالة الخطأ ؟

وهل الجهاز الاخر منصب عليه دوت نت فريم ورك ؟

وهل المكتبات اللازمة لتشتغيل برنامجك متوفرة في الجهاز الاخر ؟

كل هذه اسئلة يجب ان توضحها لنا

المشكلة ببساطة أني عملت فاتورة بالكريستال ريبورتس

وقمت بتنصيب مايلزم على الجهاز الأخر

والبرنامج يعمل بكفاءة

ويمكنني الطباعة من الtoolsbar الخاص بال crystal report viewer

ولكني أريد عمل زر يطبع الفاتورة مباشرة دون المرور على الاظهار

فتحصلت على أنواع عديدة من الاخطاء

منها مثلا

مشكل في الاتصال

ومنها الخطأ التالي

Texte de l'exception **************
CrystalDecisions.CrystalReports.Engine.LogOnExcept ion:
Erreur dans le fichier C:\DOCUME~1\EURL-A~1\LOCALS~1\Temp\temp_3348a3ca-bad8-4a3f-8586-0506e5a3777f {971C6106-E40F-4AB1-AFD8-0A0471D1F19C}.rpt :
Connexion impossible : les paramètres de connexion sont incorrects. ---> System.Runtime.InteropServices.COMException (0x8004100F):
Erreur dans le fichier C:\DOCUME~1\EURL-A~1\LOCALS~1\Temp\temp_3348a3ca-bad8-4a3f-8586-0506e5a3777f {971C6106-E40F-4AB1-AFD8-0A0471D1F19C}.rpt :
Connexion impossible : les paramètres de connexion sont incorrects.
à CrystalDecisions.ReportAppServer.Controllers.Repor tSourceClass.GetLastPageNumber(RequestContext pRequestContext)
à CrystalDecisions.ReportSource.EromReportSourceBase .GetLastPageNumber(ReportPageRequestContext reqContext)
--- Fin de la trace de la pile d'exception interne ---
à CrystalDecisions.ReportAppServer.ConvertDotNetToEr om.ThrowDotNetException(Exception e)
à CrystalDecisions.ReportSource.EromReportSourceBase .GetLastPageNumber(ReportPageRequestContext reqContext)
à CrystalDecisions.CrystalReports.Engine.FormatEngin e.PrintToPrinter(Int32 nCopies, Boolean collated, Int32 startPageN, Int32 endPageN)
à CrystalDecisions.CrystalReports.Engine.ReportDocum ent.PrintToPrinter(Int32 nCopies, Boolean collated, Int32 startPageN, Int32 endPageN)
à StockGuard.Factures.Button1_Click(Object sender, EventArgs e)
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam

وهذه صورة الخطأ

وشكرا

هذه صورة الخطأpost-98902-074206400 1291152442_thumb.jp

المرفقات
2.JPG
#5
اقتباس
حيث أن الطباعة تتم في الجهاز المنصب عليه الفيجوال ستوديو

ولكن بنقله لجهاز اخر يظهر عندي خطأ في معلومات الاتصال رغم أن التقرير الخاص بالفاتورة يظهر

بما انك راجعت كل المكتبات والبرامج اللازمة لتشغيل البرنامج علي جهاز آخر بعناية وتأكدت مرة واتنين وثلاثة من ذلك

وبما ان البرنامج يعمل بشكل طبيعي كما ذكرت اعلاه فليس امامك سوي مراجعة سلسلة الاتصال علي الجهاز الجديد والتأكد من ان الاتصال بيتم بنجاح بين البرنامج وقاعده البيانات

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#6
محمد فؤاد تركي كتب:

بما انك راجعت كل المكتبات والبرامج اللازمة لتشغيل البرنامج علي جهاز آخر بعناية وتأكدت مرة واتنين وثلاثة من ذلك

وبما ان البرنامج يعمل بشكل طبيعي كما ذكرت اعلاه فليس امامك سوي مراجعة سلسلة الاتصال علي الجهاز الجديد والتأكد من ان الاتصال بيتم بنجاح بين البرنامج وقاعده البيانات

لو عملت الكود التالي

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Conn.Open()
        Dim oledbadapter As New OleDbDataAdapter(oledbStr, Conn)
        oledbadapter.Fill(Dataset1, "Livraison")
        Conn.Close()
        Dim C1 As CrystalDecisions.CrystalReports.Engine.Table
        Dim C2 As CrystalDecisions.Shared.TableLogOnInfo
        Dim Rpt As New BonLivraison
        For Each C1 In Rpt.Database.Tables
            C2 = C1.LogOnInfo
            With C2.ConnectionInfo
                .DatabaseName = Application.StartupPath & "\stockguard.mdb"
            End With
            C1.ApplyLogOnInfo(C2)
        Next C1

        AfficheBL.CrystalReportViewer1.ReportSource = Rpt
        AfficheBL.CrystalReportViewer1.SelectionFormula = "{Livraison.N_Bl}= " & Me.TextBox1.Text
        AfficheBL.CrystalReportViewer1.showReport()
        Me.Close()
    End Sub

فان التقرير يظهر

لو غيرت الجملة showreport الى printreport فان التقرير لا يطبع

يعني لو كان فيه مشكل حسب اعتقادي في سلسلة الاتصال

فان التقرير لا يظهر البيانات أبدا

وشكرا

#7
اقتباس
حيث أن الطباعة تتم في الجهاز المنصب عليه الفيجوال ستوديو

ولكن بنقله لجهاز اخر يظهر عندي خطأ في معلومات الاتصال رغم أن التقرير الخاص بالفاتورة يظهر

برجاء ايضاح هذه الجزئية

لو غيرت الجملة showreport الى printreport فان التقرير لا يطبع علي الجهازين ( الذي يحتوي علي فيجوال ستوديو والجهاز الذي لا يحتوي علي برنامج فيجوال ستديو )

أم المشكلة فقط علي الجهاز الذي لا يوجد عليه فيجوال ستديو

برجاء تدعيم كلامك بمثال اقصد مرفق

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#8
محمد فؤاد تركي كتب:

برجاء ايضاح هذه الجزئية

لو غيرت الجملة showreport الى printreport فان التقرير لا يطبع علي الجهازين ( الذي يحتوي علي فيجوال ستوديو والجهاز الذي لا يحتوي علي برنامج فيجوال ستديو )

أم المشكلة فقط علي الجهاز الذي لا يوجد عليه فيجوال ستديو

برجاء تدعيم كلامك بمثال اقصد مرفق

طبعا حتى أوضح جيدا يجب أن أطرح السيناريو كاملا

لدي جهاز 1 منصب عليه الفيجوال ستوديو 2008 في البيت أقوم ببرمجة البرنامج عليه

لما أضغط f9 فان زر الطباعة وزر اظهار الفاتورة يعملان كليها بكفاءة

لما اعمل deploiment في الجهاز الاخر رقم 2 (الذي نصبت عليه المكتبات الخاصة بالكريستال ريبورتس والتي تكون في C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalRe ports10_5)

في هذا الجهاز أستطيع اظهار الفاتورة عن طريق الcrystal report viewer

ولكني لا أستطيع طباعتها

حيث أن الخطأ الحالي هو في براميترات الاتصال

وبخصوص المثال فسأحاول تجهيزه مساءا ان شاء الله

وشكرا

تم تعديل هذه المشاركة بواسطة Mohamed-Riadh في 4 ديسمبر 2010 في 13:48

#10

هل يوجد نسخة من البرنامج عربي او انجليزي عشان نقدر نفهم

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#11

:blush: :blush: في الحقيقة تعدد اللغات في البرنامج كنت أفكر فيها بعد أن أنهي البرنامج

عموما

أمهلني يوما أو يومين وسأحاول الترجمة الى العربية ان شاء الله

وشكرا لك على المتابعة

وجزاك الله خيرا

#12

اذا كنت تريد اي مساعده بخصوص موضوع اللغة فقرأ موضوعي

معلومة:::طريقة تطبيق اللغة المختارة علي مستوي بالمشروع بالكامل

/index.php?showtopic=194080&st=0&p=967814&fromsearch=1entry967814

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#13
محمد فؤاد تركي كتب:

اذا كنت تريد اي مساعده بخصوص موضوع اللغة فقرأ موضوعي

معلومة:::طريقة تطبيق اللغة المختارة علي مستوي بالمشروع بالكامل

/index.php?showtopic=194080&st=0&p=967814&fromsearch=1entry967814

بارك الله فيك على الرابط

بخصوص الترجمة فقد قمت بترجمة الجزء الذي نحتاجه فقط

وعملت مقطع فيديو للفورم المطلوب تنفيذ الكود عليه

الرابط

http://www.4shared.com/account/file/f2k5hUsB/StockGuardArab.html

وشكرا

#14

أخي الفاضل

بخصوص الرسالة التي تظهر لك وقت الضغط علي زر الطباعة المباشر سببها قاعده البيانات التي تستخدمها Access بصفة عامة لان قواعد بيانات اكسس تحتاج الي DB Log Information to Crystal Report لذلك ربما تحتاج لعمل Password لقاعده بياناتك وتقوم بعمل بعض التعديلات علي الكود المكتوب ليتلائم مع التعديلات الجديده

عموما ولمزيد من الايضاح كان هناك مشكلة قد قابلتني مشابه لمشكلتك تحتاج لــ DB Log Information To Crystal Report

اقراء الرابط بعناية ستسفيد منه الكثير

/index.php?showtopic=122916&st=0&p=618234&fromsearch=1entry618234

ثاني نقطة اعتقد ان كود الطباعة المباشرة سيكون كالتالي

  rpt.PrintOptions.PrinterName = "your windows printer name"
        rpt.PrintToPrinter(1, False, 0, 0)

بالتوفيق

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 10 ديسمبر 2010 في 09:58

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#15
محمد فؤاد تركي كتب:

أخي الفاضل

بخصوص الرسالة التي تظهر لك وقت الضغط علي زر الطباعة المباشر سببها قاعده البيانات التي تستخدمها Access بصفة عامة لان قواعد بيانات اكسس تحتاج الي DB Log Information to Crystal Report لذلك ربما تحتاج لعمل Password لقاعده بياناتك وتقوم بعمل بعض التعديلات علي الكود المكتوب ليتلائم مع التعديلات الجديده

عموما ولمزيد من الايضاح كان هناك مشكلة قد قابلتني مشابه لمشكلتك تحتاج لــ DB Log Information To Crystal Report

اقراء الرابط بعناية ستسفيد منه الكثير

/index.php?showtopic=122916&st=0&p=618234&fromsearch=1entry618234

ثاني نقطة اعتقد ان كود الطباعة المباشرة سيكون كالتالي

  rpt.PrintOptions.PrinterName = "your windows printer name"
        rpt.PrintToPrinter(1, False, 0, 0)

بالتوفيق

النقطة الاولى بصراحة لم أجربها وان كنت لا اعتقد بوجود علاقة بين كلمة السر والطباعة ولكن سأحاول

بخصوص النقطة الثانية فأنا عندما أكتب الكود لا أعلم اسم الطابعة التي في جهاز العميل

اضافة الى اني استخدمت الكود rpt.PrintToPrinter(1, False, 0, 0 وقام بطباعة جميع السجلات الموجودة

فقمت بتعديله باضافة rpt.selectedformula فلم يطبع شيئا

وشكرا

مواضيع مشابهة