![]() |
|
تمرير صورة الى Crystal Report - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم مقالات التقارير والطباعة تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=80) +--- الموضوع : تمرير صورة الى Crystal Report (/showthread.php?tid=1010) الصفحات:
1
2
|
تمرير صورة الى Crystal Report - Sajad - 20-11-13 بسم الله الرحمن الرحيم
وصلى الله على محمد وآله الطاهرين السلام عليكم ورحمة الله وبركاته في هذا الموضوع سنقوم بشرح كيفية تمرير صورة كـParameter الى تقرير CrystalReport بصورة سهلة ومبسطة ان شاءالله وبلغتي #C و VB وقاعدة بيانات Access2007 كثير منا يواجه مشكلة مع التقارير وخاصة مع كيفية عرض صورة محددة من قبل المستخدم عن طريق الـParameter في التقرير ,اذ لا يوجد Parameter من نوع صورة أو Binary في تقارير CrystalReport أو MicrosoftReport يمكننا من استقبال صورة مرسلة عن طريق Parameter الى التقرير ,لذا الحل الوحيد هو تمرير مسار الصورة الى Parameter نصي ومن ثم اسناد هذا الـParameter الى كائن الصورة في التقرير لكي نتمكن من عرض الصورة في التقرير ,وهذا ما سنفعله تماما ان شاءالله في درسنا هذا. الفكرة كما بينا هي تمرير مسار الصورة الى Parameter نصي وقبل ذلك نسند هذا الـParameter كموقع للصورة الى كائن الـOleObject في التقرير بهذه الطريقة نتمكن ممن عرض صورة محدد من قبل المستخدم. وهنا ستسألني أليست الصورة مخزنة في قاعدة بيانات؟ أقول: نعم. وتقول لي اذا كيف ستمررها الى التقرير؟ أقول: سوف اقوم بجلب الصورة من قاعدة البيانات واعرضها في أداة PictureBox ومن ثم أقوم بخزن الصورة في مسار معين ثابت ومن ثم امرر مسار الصورة الى التقرير وأخيرا أقوم بمسح الصورة من ذلك المسار. بسم الله نبدأ أولا نقوم بانشاء قاعدة بيانات Access2007 باسم myDB وننشئ ثلاث حقول على التوالي: Emp_ID, Emp_Name, Emp_Image Emp_ID=ترقيم تلقائي Emp_Name=نص Emp_Image=كائن OLE ثم نقوم بتصميم المشروع كالتالي: ومن خلال شريط القوائم نختار Project ثم Add New Item ثم Reporting ونضيف تقرير CrystalReport فارغ الى المشروع ,ومن خلال الToolBox نضيف ثلاث باراميترات باسماء: Emp_ID, Emp_Name, picPath على التوالي الى تقرير عن طريق Parameter Fields ,انظر الى الصورة التالية: بعد اضافة الثلاث باراميترات نسحب الباراميتر الاول والثاني الى التقرير ثم نضيف كائن OLE الى تقرير بالشكل التالي: كلك أيمن على التقرير ثم Insert ثم OLEObject فتظهر لنا النفاذة التالية: ومن ثم كلك أيمن على الكائن ثم نختار Format Object ستظهر لنا نافذة ومن خلال التبويب Picture نسند الباراميتر الثالث الى الكائن كما في الشكل التالي:
ثم ثم Save and Close الى هنا انتهينا من تصميم التقرير. الان نأتي الى كتابة الاكواد: اولا نضيف مجالات الاسماء الاتية: C#.NET PHP كود : using System.IO;VB.NET PHP كود : Imports System.IOثانيا المتغيرات العامة: C#.NET
PHP كود : private string conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\myDB.accdb;Persist Security Info=False;";VB.NET
PHP كود : Private conStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myDB.accdb;Persist Security Info=False;"ثالثا: دالة الاتصال بقاعدة البيانات: C#.NET PHP كود : private bool Connect()VB.NET PHP كود : Private Function Connect() As Boolean
رابعا: دالة الاضافة: C#.NET PHP كود : private bool Insert(string name,byte[]img)VB.NET PHP كود : Private Function Insert(name As String, img As Byte()) As Booleanخامسا: دالتا تحويل الصورة الى Bytes والعكس: C#.NET PHP كود : private byte[] ConvertToByte(string imgFile)VB.NET PHP كود : Private Function ConvertToByte(imgFile As String) As Byte()سادسا: دالة البحث: PHP كود : private bool DoSearch(string empname)VB.NET PHP كود : Private Function DoSearch(empname As String) As Booleanالى هنا انتهينا من استعراض الدوال. واستدعاء هذه الدوال تكون بالشكل التالي: C#.NET PHP كود : private void Browse_btn_Click(object sender, EventArgs e)VB.NET PHP كود : Private Sub Browse_btn_Click(sender As Object, e As EventArgs)في البداية نقوم بجلب صورة الموظف ثم نقوم بالاتصال بقاعدة البيانات وبعد ذلك نضيف البيانات الى قاعدة البيانات بحيث نقوم في البداية تحويل الصورة الى Bytes ومن ثم نمررها الى الدالة مع الاسم لتضاف الى قاعدة البيانات. واذا اردنا البحث نستدعي دالة البحث مع تمرير اسم الموظف اليها ليتم عرض بيانات الموظف وفي دالة البحث نستدعي دالة تحويل الـBytes الىImage كما هو موضح من خلال الاكواد. أخيرا التقرير وتصدير التقرير الى ملف Pdf C#.NET PHP كود : private void Report_btn_Click(object sender, EventArgs e)VB.NET PHP كود : Private Sub Report_btn_Click(sender As Object, e As EventArgs)طبعا تمرير البيانات ستكون من خلال الدالة SetParameterValue كما تلاحظون نقوم بتعريف كائن MemoryStream لخزن الصورة في الذاكرة وبعد ذلك نقوم بحفظ الصورة في مجلد Pics في القرص C (طبعا مسار الصورة تستطيع تغييرها كما تريد) وبد ذلك نمرر مسار الصورة الى التقرير وبعد ذلك نحذف الصورة وأخيرا تصدير التقرير الى ملف Pdf C#.NET PHP كود : private void ExToPdf_btn_Click(object sender, EventArgs e)VB.NET PHP كود : Private Sub ExportToPdf_btn_Click(sender As Object, e As EventArgs)والتصدير سهل جدا من خلال الدالة ExportToDisk حيث تأخذ هذه الدالة وسيطين الاول نوع الملف الثاني مسار الملف
والمثال في المرفقات بلغة #C و VB ولا تنسوني و والدي من صالح دعواتكم RE: تمرير صورة الى CrystalReport بلغتي C#&VB - Sajad - 20-11-13 السلام عليكم اخواني الاعزاء كانت هنالك بعض الاخطاء في مرفق الـVB لذا أعتذر عن ذلك ,وتم تصحيحها والحمد لله لذا تم تحميل المرفق من جديد تحياتي RE: تمرير صورة الى CrystalReport بلغتي C#&VB - عبدالكريم علي محمد المضوني - 28-12-13 بارك الله فيك RE: تمرير صورة الى CrystalReport بلغتي C#&VB - مالكـ - 28-12-13 يعطيك العافية مثال جميل RE: تمرير صورة الى CrystalReport بلغتي C#&VB - hoob computer - 04-01-14 مثال روعة و مفيد جداً, بارك الله فيك و جعله في ميزان حسناتك السلام عليكم RE: تمرير صورة الى Crystal Report - WAEL ABED - 05-02-15 شكرا جداا ليك على المثال طب لو عايز تقرير كامل اقصد يعنى كل البيانات لكل الصور وليس لسجل واحد فقط ايه الحل ؟ RE: تمرير صورة الى Crystal Report - مبرمج بلا حدود - 08-07-15 جزاكـ الله خير استاذ وباركـ الله فيكـ وجعله الله في ميزان حسناتكـ وغفر لكـ ولوالديكـ استاذ شرح ومثال ابداع ما شاءالله تباركـ الرحمن سؤال استاذ الصراحة انا ما احب الكريستال ريبورت نصبت فيجوال دوت نت 2012 هل يمكنك شرح الريبورت الي بالفيجوال بحيث امرر صورة مع البيانات وجزاك ربي الجنة RE: تمرير صورة الى Crystal Report - Sajad - 20-07-15 السلام عليكم الله يبارك فيك وجزاك بالمثل اخي العزيز انا عامل مثال كامل عن الReportViewer تجده على الرابط التالي: http://vb4arb.com/vb/thread-8050.html كذلك ستجد كيفية اضافة صورة الى التقرير في الرد التالي: http://vb4arb.com/vb/thread-8050-post-37521.html#pid37521 تحياتي لك RE: تمرير صورة الى Crystal Report - مبرمج بلا حدود - 20-07-15 (20-07-15, 12:16 PM)Sajad كتب : السلام عليكم الله يبارك فيك وجزاك بالمثل وعليكم السلام ورحمة الله وبركاته جزاكـ الله خير استاذ على الرد ربي يحفظكـ ويرضى عنكـ وكل عام وانت بخير وتقبل الله منا ومنك صالح الاعمال استاذ هذا الموضوع قرأته إقتباس :كذلك ستجد كيفية اضافة صورة الى التقرير في الرد التالي:هنا حضرتكـ تمرر صورة من فولد انا اريد امررها من قاعدة البيانات جزاك الله خير اعمل على برنامج ادخال بيانات الى قاعدة البيانات من ضمنها صورة مواضيعكـ جميعا مفيده لهذا احتفظ بها واقرأها دائما جعلها الله في موازين حسناتكـ RE: تمرير صورة الى Crystal Report - Sajad - 20-07-15 السلام عليكم ايامك سعيدة وكل عام وانت طيب وبصحة وعافية اخي العزيز تستطيع ان تسترجع الصورة من قاعدة البيانات ومن ثم تحفظها بمجلد مؤقت ومن ثم تمررها الى التقرير وبعد ما تمررها تحذف المجلد المؤقت هذا الحل الامثل فحسب علمي تمرير صورة من قاعدة البيانات مزعجة جدا فافضل هذه الطريقة تحياتي |