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

طباعة تقرير بالكريستال ريبورت من صفحة ASPX

مغلق
بدأه Ammar Gaffar في 9 ديسمبر 2004 · 16 رد · 2,049 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لقد قمت بتصميم بتقرير بالكريستال ريبورت وتم عرض التقرير في صفحة aspx وعندما حاولت طباعة التقرير باستخدام الشفرة التالية :

Dim r As new ReportName

r.PrintToPrinter(1, True, 1, 1)

ظهرت رسالة الخطأ التالية

No default printer.

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

r.PrintOptions.PrinterName = "hp LaserJet 1010 Series Driver"

بافتراض ان هذا هو اسم الطابعة المثبتة فظهرت رسالة الخطأ التالية

Logon Failed

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

والله الموفق

#2

كيف قمت بعرض تقرير كريستال ريبورت في صفحة aspx؟

هل استخدمت Report Application server أو اختصاراً (RAS)؟

لقد استخدمت ذلك سابقاً، وكان زر الطباعة الموجود في صفحة استعراض التقرير لايقوم بالطباعة مباشرة، بل يقوم بتحويل التقرير إلى صفحة pdf يفتحها المستعرض، ثم يمكنك من خلالها الطباعة.

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#3

لقد قمت بعرض التقرير في الصفحة باستخدام الكريستال ريبورت المرفق مع VS2003 وذلك باضافة تقرير وتحديد مصدر البيانات علي انه Dataset (انا لم اعرض التقرير مباشرة من قاعدة البيانات ) ثم استعلم عن التقرير المطلوب علي حسب محددات معينة ثم اقوم باسناد مصدر بيانات الريبورت عن طريق الشفرة وهكذا يتم عرض التقرير في الصفحة

لا توجد لدي اي مشكلة في عرض التقرير ولكني تعاملت سابقا مع الكريستال ريبورت في تطبيقات الويندوز وكان زر الطباعة مدمج في ال CrystalReportViewr اي لا يحتاج الي اي شفرة والامر مختلف قليلا مع ASP.NET

والله الموفق

#4

اخيرا الشفرة المطلوبة لطباعة التقرير من نموذج ويب باستخدام الكريستال ريبورت

Dim crystalReportObject As New ReportName

crystalReportObject.Load()

crystalReportObject.SetDataSource(DataSetName)

crystalReportObject.PrintOptions.PrinterName = "PrinterName"

crystalReportObject.PrintToPrinter(1, False, 0, 0)

crystalReportObject.Close()

توضيح لبعض المتغيرات في الشفرة

ReportName : اسم التقرير المصمم بالكريستال ريبورت

DataSetName : اسم الداتا سيت التي يقوم التقرير بعرض البيانات منها

PrinterName: اسم الطابعة المثبتة في الجهاز ويمكن ايجادها من لوحة التحكم

والله الموفق

#5

شكراً على الكود، ولكن ألا يستوجب هذا الكود أن تكون مكتبة الكريستال ريبورت موجودة على جهاز المستخدم الذي سفتح صفحة asp؟

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#6

لا يحتاج المتصفح لصفحة ال asp.net اي مكتبات او اي ملفات لتشغيل التطبيق لان التطبيق يعمل علي السيرفر وليس للمتصفح اي احتياجات لتشغيل التطبيق سو متصفح للانترنت

والله الموفق

#7

هل أنت متأكد من السطر الأول من الكود السابق:

Dim crystalReportObject As New ReportName

هل ReportName هو متغير نصي يحتوي مسار التقرير؟

ما هي ال namespaces المستخدمة في كودك؟

هل يمكن أن ترسل لنا مثالاً صغيراً كاملاً؟

حيث أنني مازلت أشك بأن هذه الطريقة ستعمل بشكل صحيح.

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#8

الاخ محمد حمود

أولا ReportName قمت بتوضيحها عند كتابة الشفرة والمقصود بها اسم التقرير المعمول بالكريستال ريبورت , فمثلا عند إضافة تقرير للمشروع من قائمة Project ثم Add New Item وعند اخيارك للتقرير ستجد ان اسمه CrystalReport1.rpt وهو مااقصده بكلمة ReportName

أي أنني اقوم بالاعلان عن كائن من نفس نوع التقرير (وهذه من المفاهيم الاساسية لـلـ Object Oriented Programming )

أي عندما اريد ان اتعامل مع التقرير من الشفرة فانني اتعامل معه من خلال الكائن crystalReportObject

هذا ماقصدته أما بالنسبة الي شكك بان الطريقة لاتعمل فلا استطيع ان اعلق عليه , فهي تعمل معي , اما بالنسبة لل namespaces المستخدمة في الشفرة فانت لا تحتاج لاضافتها اذا كنت تستخدم الفجوال ستيديو لانك عند اضافة تقرير لمشروعك يتم تلقائيا اضافة ال Namespaces الي المشروع

والله الموفق

#9

شكراً على الإجابة.

لقد فهمت الآن الكود السابق:

أنت تقصد ب Reportname اسم الكائن Report document.

على كل حال بعد تجربة مثال مشابه، وبعد أن ظهر شكل التقرير في زمن التصميم design time بشكل صحيح، وبعد قيامي بتشغيل صفحة aspx ظهر هذا الخطأ:

Exception Details: CrystalDecisions.CrystalReports.Engine.LogOnException: Logon failed.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

ما السبب يا ترى؟

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#10

يظهر هذا الخطأ عندما لا تقوم باسناد ال DataSource للتقرير عند طلب التقرير من قاعدة البيانات

الملف المرفق فيه شرح وافي لكيفية انشاء وعرض التقرير باستخدام كائن ADO.NET والشفرة مكتوبة بالسي شارب

اذا لم تكن تجيد التعامل مع السي شارب فلن تجد اختلاف كبير في الشفرة الخاصة بعرض التقرير

واذا واجهتك اي مشكلة فعلينا الرد

والله الموفق

Crystal Reports For Visual Studio Net - Reporting Off Ado Net Datassets.pdf

#11

شكراً لك أيها الأخ عمار على مساعدتك، وسأخبرك بالنتائج فور التجربة.

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#12

i was reading your articals there is some problem with.....the data appear in the web fomr but when i print i there`s no data....why?

my other question in crystall report i have three field i want tow of them take addition operation the third one sub from the sum the total will be in other field...can you peaple do it

can we format the field to accept date field

how can to determine the default printer fir the clients

#13

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

اما بالنسبة لمعرفة اسم الطابعة بالنسبة للعميل فهذه عملية علي حسب علمي صعبة لان تطبيق ال ASP.NET يعمل علي السيرفر ولا يعمل عند ال Client

ربما توجد طريقة لمعرفة اسم طابعة العميل والله أعلم

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

System.Drawing.Printing.PrinterSettings.InstalledPrinters.Item(0)

وعذرا ان لم اوفي في الاجابة لكنني أتعامل مع التطبيقات التي تعمل علي الشبكة المحلية LAN ومعظم التقارير التي تعاملت معها غالبا ماتكون متاحة فقط لمدير النظام

والله الموفق

#14

how can i convert the field its data 14250209 i want it appear into crystall 1425/02/09 how can i do it please can yu answer it step by step

==============================================

why when i print the crystal in webfor no data print anly the titles like name,age

===============================================

how can specify the left and up the align for crystalin webform

#15

how can i convert the crystal report to pdf file

#16

أعتقد ان تحويل التقرير الي ملفات pdf في تطبيقات الويب يحتاج الي برمجة وذلك عكس مايوجد في تطبيقات الويندوز حيث يوجد زر Export في ال CrystalReportViewer يمكنك من خلاله تحويل التقرير الي أنواع مختلفة من الملفات

حاول أن تبحث في المنتدي حول تحويل الملفات النصية الي pdf أو قم بزيارة موقع www.asp.net ستجد عدد كبير من ال Components التي تقوم بعمل التحويل الي انساق ال pdf ولكني حقيقة لا أدري هل هي مجانية أم لا

والله الموفق

#17

هناك الكثير من الكمبونانت تحول ال asp الى PDF ، ابحث بالانترنت وستجد . فعلا شيئ جميل .

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…