قواعد المشاركة في المنتدى

(منتدى الأكسس) الموضوع:تمكين وعدم تمكين مربع نص خاص بالرقم بواسطة: (أبو بيبو) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:تعلم كيفية فك ضغط ملف WinRAR بواسطة: (Abu Ehab) :: (منتدى الأكسس) الموضوع:بخصوص الشجرة TreeView بواسطة: (د.كاف يار) :: (منتدى ADO.NET العام) الموضوع:خدمات مجانية -تأجيرشقق و فيلات مفروشة وايجار سيارات في مصر 00201126266000 بواسطة: (جوجو عمل) :: (قسم الاعلانات) الموضوع:ساهم في مشروع تشجيع القراءة الان بواسطة: (korossama) :: (منتدى الأكسس) الموضوع:برنامج نادي صحي كمال اجسام بواسطة: (startnet) :: (قسم الاعلانات) الموضوع:سيارات ديهاتسو مستعملة للبيع بحالة الفابريكة بواسطة: (ديزاينر ديزاينر) :: (قسم الاعلانات) الموضوع:سيارات جاجور مستعملة للبيع بواسطة: (ديزاينر ديزاينر) :: (قسم الاعلانات) الموضوع:سيارات بنتلي مستعملة للبيع بواسطة: (ديزاينر ديزاينر) :: (قسم الاعلانات) الموضوع:بنامكس لأعمال الرخام الصناعي والمغاسل بواسطة: (حسن ابراهيم) :: (قسم الإنترنت) الموضوع:تصميم وبرمجة تطبيقات الهواتف الذكية بواسطة: (موشن جرافيك) :: (قسم الاعلانات) الموضوع:نصائح عامة بواسطة: (كوين) :: (منتدى الأكسس) الموضوع:الباركود بواسطة: (startnet) :: (منتدى ال Cisco) الموضوع:ccna 1 final examen بواسطة: (even2017) :: (منتدى الأكسس) الموضوع:طلب كود تشغيل عدة استعلامات بواسطة: (د.كاف يار) :: (قسم الاعلانات) الموضوع:رحلتي لزراعة الشعر في تركيا بواسطة: (فادي لبناني) :: (قسم الاعلانات) الموضوع:شقق مفروشة للايجار بأفضل المستويات والاسعار بالقاهرة الصور 00201227389733 بواسطة: (دنيامحمد) :: (قسم الاعلانات) الموضوع:طريقة تنظيف الموكيت بواسطة: (سجيات) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:Abu Ehab Pie Chart Control بواسطة: (Abu Ehab) :: (قسم الخدمات) الموضوع:تصميم وبرمجة تطبيقات الهواتف الذكية بواسطة: (موشن جرافيك)


راديو القرآن

المواضيع المثبته: (منتدى Borland Delphi) الموضوع:دورة تعليمية في تصميم دليل هاتف في دلفي بواسطة: (مهند عبادي) :: (منتدى برمجة الألعاب) الموضوع:اعلان هام بواسطة: (مصطفي البارودي) :: (منتدى Microsoft Visual Basic) الموضوع:دروس صوت وصورة للربط بين اسكيوال سيرفر والفجوال بيسيك بواسطة: (wael abed) :: (منتدى برمجة التقارير) الموضوع:اصنع تقريرك في اقل من دقيقه واستغني عن الكريستال ريبورت بواسطة: (mero_make) :: (منتدى Microsoft Visual Basic) الموضوع:شرح ODBC بواسطة: (VB_Manager) :: (منتدى البرامج) الموضوع:برنامج القرآن الكريم كاملاً مع التفسير بواسطة: (tarik-2007) :: (منتدى الأكسس) الموضوع:مثال يجمع عده افكار به فائده ان شاء الله بواسطة: (startnet) :: (منتدى الوورد والباور بوينت) الموضوع:مكتبة الوورد بواسطة: (ramies) :: (قسم الدروس و الدورات) الموضوع:تعلم معي البرمجة بالفيجوال بيسك .. بواسطة: (كوثــــــــــــر) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:حصرياً : كل شيء يخص الفيجوال بيسك دوت نت - اسطوانات - كتب - أكواد - ال بواسطة: (صائبكو) :: (منتدى Microsoft SQL Server) الموضوع:تابعوا دروس sql2000 بواسطة: (dody) :: (قسم الـ portable) الموضوع:أفضل برامج مفيدة للكمبيوتر وتعمل Portable اي بدون تنصيب بواسطة: (أبو ليان) :: (لغة PHP) الموضوع:دوره بي اتش بي بالفيديو php video tutorial بواسطة: (blackmanblack) :: (القسم المفتوح) الموضوع:الأعمــــال الصالحة المستمــرة للإنســـان بعد وفاته بواسطة: (عبدالله جابر شقليه) :: (قسم التعاميم والشكاوي) الموضوع:شروط المشاركة في المنتدى بواسطة: (عبدالله جابر شقليه) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:المواضيع والدروس التعليمية في الدوت نيت - ابدأ من هنا بواسطة: (fmo_82) :: (منتدى Microsoft SQL Server) الموضوع:كتب SQL server بواسطة: (m.atassi) :: (منتدى البرامج) الموضوع:7 اسطوانات لتعليم شهاده ICDL بالصوت والصوره بواسطة: (مستشفى الكمبيوتر) :: (قسم الدروس و الدورات) الموضوع:المواضيع والدروس التعليمية في الدوت نيت - ابدأ من هنا بواسطة: (fmo_82) :: (منتدى الكتب الالكترونية) الموضوع:كتاب مشروع تطبيقي باستخدام لغة ASP بواسطة: (ismail damaran)

عدد الصفحات : 5  1  2  3  4  5   > » إضافة رد إضافة موضوع جديد

> شرح طريقة اضافة تقرير Crystal Reports في الـ ASP.NET,بكلا اللغتين VB.NET ,C#.NET .. تفضلووو
Bookmark and Share
تقييم الموضوع Label معدل التقيم:0
مشاركةالأربعاء,10/ذو الحجة/1428 هـ,09:21 صباحاً
المشاركة #1

الرتبة في المنتدى:مقدم

أيقونة المجموعة

المجموعة: أعضاء الشرف
المشاركات: 526
سجل في:الاثنين,04/شوال/1428 هـ,05:04 مساءً
الدولة:السعودية
رقم العضوية: 34925



شرح طريقة اضافة تقرير Crystal Reports في الـ ASP.NET بكلا اللغتين VB.NET ,C#.NET


بسم الله الرحمن الرحيم
اللهم صلي على محمد وآل محمد ...

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

الشيء ,, وبما اني اعرفه جيداً ليستفيد منه الغير ..

سوف نقوم بكتابة الكود على كلا اللغتين الـ VB.NET and C#.NET لتعم الاستفادة للجميع ..
اولاً سوف نقوم بالتطبيق على الـ ASP.NET VB.NET

افتح الـ Microsoft Visual Studio 2005 واختر من
File >>> New >>> Web Site

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_1.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_1.JPG[/IMG]

ثم بعد ذلك سوف تظهر لك نافذة أنشاء ويب جديد .. اختر منها ASP.NET Web Site مع التاكد من الـ Language انها Visual Basic
وكذلك الـ location انه File System
وكذلك لا تنسى ان تغير اسم المجلد او تدعه كما هو باسمه الافتراضي ,, وسوف يتم حفظ الملفات في الـ My Documents في مجلد الـ Visual Studio 2005

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_2.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_2.JPG[/IMG]

ثم اضغط على Ok لكي يتم انشاء الموقع...
طيب الان لا بد من وجود داتا بيس .. ليكي يتم الاتصال بها ..
أنشأ داتا بيس بأي اسم يعجبك .. وانا عن نفسي انشات داتا بيس باسم db1 من نوع Microsoft Access
وكذلك انشا جدول بأي اسم .. وانا انشات جدول باسم tbl_Client للعملاء ..
وكذلك انشأ حقول في الجدول على حسب متطلباتك .. وعن نفسي انشات هذه الحقول ..
ID من نوع AutoNumber
C_Name من نوع Text
C_Phone من نوع Text
C_Address من نوع Text

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_3.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_3.JPG[/IMG]

بعد انشاء الداتا بيس .. اضف فيها بيانات مبدئية لكي نعرضها في التقرير .. فيما بعد ..
الان قم بنسخ الداتا بيس لديك إلى المشروع .. وضعها في مجلد الـ App_Data وهذا المجلد موجود في الـ

 كود
My Documents\Visual Studio 2005\Your_WebSite\App_Data


Your_WebSite تعني اسم مشروعك الذي انشاته مسبقا

الان اذهب إلى المشروع لكي نقوم باضافة الكرستال ريبوت
من خلال شريط الادوات ToolBox اذهب إلى ادوات الكرستال ريبوت .. وهي تكون تحت كلمه Crystal Reports اضغط دبل كلك على الاداة CrystalReportViewer



سوف يتم ادراجها على الصفحة بهذه الصورة



الان دع الاداة .. سوف نرجع لها لاحقاً ...

اذهب إلى شريط الادوات .. سوف ترى ايقونه شكلها مربع ... اضغط عليها واختر منها Add New Item...

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_6.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_6.JPG[/IMG]

او من خلال Solution Explorer ثم كلك يمين على اسم الموقع ثم اختار منها Add New Item...

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_7.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_7.JPG[/IMG]

ثم بعد ذلك سوف يظهر لك مربع حوار Add New Item اختر منه CrystalReport واجعل اسمه الافتراضي كما هو ..

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_8.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_8.JPG[/IMG]

ثم بعد ذلك اضغط على Ok لكي يتم اضافة التقرير .. بعد ذلك سوف تظهر لك نافذة الـ Crystal Reports Gallery


" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_9.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_9.JPG[/IMG]

دع الخيارات كما هي واضغط على زر OK لكي تظهر لك نافذة Standard Report Create Wizard

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_10.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_10.JPG[/IMG]

انتق الخيار Create New Connection
ثم انتق الخيار OLE DB ADO
سوف تظهر لك نافذة تحديد مزودات الربط بقواعد البيانات ... وبما اننا نستخدم مايكروسوفت اكسس لابد من اختيار

 كود
Microsoft Jet 4.0 OLE DB Provider



" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_11.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_11.JPG[/IMG]

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

النص Database Name

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_12.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_12.JPG[/IMG]

بعد تحديد الداتا بيس ..

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_13.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_13.JPG[/IMG]

الان اضغط على زر التالي Next لكي تظهر لك النافذة التالية

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_14.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_14.JPG[/IMG]

دع الخيارات كما هي .. واضغط على كلمه Finish لكي ترجع إلى اول نافذة ومن خلالها يتم اظهار الجداول التي في الداتا بيس ..
قم بتحديد الجدول tbl_Client ثم اضغط على الزر الذي في الاعلى ( <

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_15.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_15.JPG[/IMG]

لكي تم اختيار الجدول .. ومن ثم اضغط على زر Next لكي تظهر لك نافذة تحديد الاعمدة المراد اظهارها في التقرير

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_16.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_16.JPG[/IMG]

قم بالضغط على زر (<< لكي تم اضافة كل الاعمدة .. وفي حالة تريد فقط عدد من الاعمدة يمكنك تحديد واحداُ تلوا الآخر ... بعد تحديد الاعمدة .. قم بالضغط على زر التالي Next سوف تظهر

لك نافذة آخرى هنا يتم فيها اذا كنت تريد عمل علاقات او قروب وغيرها .. دعها كما هي اضغط على Next حتى تصل إلى تحديد شكل التقرير ...
سوف تظهر لك نافذة تحديد الثيم للكرستال ريبوت ... اختر اي شكل مناسب لتقريرك ..

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_17.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_17.JPG[/IMG]

ثم بعد ذلك اضغط على زر Finish لكي يتم انشاء التقرير .. ووضع الحقول في التقرير وسوف يكون الشكل النهائي بهذا الشكل ..

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_18.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_18.JPG[/IMG]

وهذا هو شكل التقرير .. وشكله غير مثير للاهتمام .. الان اذهب إلى صفحة الـ Default.aspx وقم بتحديد الاداة CrystalReportViewer1 سوف يظهر لك الوسم الذكي .. على الاداة انتقه واختر

من خلال الـ Choose Report Source

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_18.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_18.JPG[/IMG]

أختر New Report Source لكي تظهر لك نافذة آخرى Create Report Source

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_19.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_19.JPG[/IMG]

دع الاسم الافتراضي كما هو .....وقم بتحديد الكرستال ريبوت الذي انشأناه مسبقا ..

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_20.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_20.JPG[/IMG]

من خلال القائمة المنسدلة .. ثم اضغط على OK

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_21.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_21.JPG[/IMG]

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

ملاحظة يتم ادراج بيانات افتراضية في التقرير .. وليس لها علاقة بالجدول.. ولكن فقط يبين لك شكل التقرير سيكون بهذا الشكل في العرض وعند التشغيل سوف ترى البيانات الفعلية في

الجدول ..

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_22.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_22.JPG[/IMG]

الان لنجرب التقرير ... اذهب من خلال القائمة Build واختر منها Build Solution

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_22.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_22.JPG[/IMG]

بعد ان ترى انه تم Build Succeeded

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_24.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_24.JPG[/IMG]

قم بتشغيل المشروع من خلال الزر للتشغيل

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_25.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_25.JPG[/IMG]

لكي يتم اظهار البيانات الفعلية التي في الجدول المختار ..

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_26.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_26.JPG[/IMG]

الان انتهينا من كل شيء .. ولكن ... السؤال يطرح نفسه .. ماذا لو اردت ان اطبع سجل واحد ؟ ماهي الطريقة ..
وفي هذا الشرح يعرض لنا كل البيانات .. وكذلك الاتصال ليس مربوط بالكود وكذلك قاعدة البيانات .. فهذا يعني عندما تقوم بتشغيل المشروع على جهاز آخر سوف لا يتعرف على الداتا بيس ..

وهذه مشكلة ..

اذا لنقوم بكتابة الكود لكي يكون التقرير ديناميكي .. وليس البيانات تكون فيه Static

اذهب إلى صفحة الـ Default.aspx واضغط دبل كلك على الصفحة لكي تنفتح لك نافذة الكود ...
إذهب مباشرة إلى أعلى صفحة الكود وقم بكتابة هذه التعريفات للاتصال بقواعد البيانات والكرسيتال ريبوت ..

 كود
Imports System.Data.OleDb
Imports System.Data

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Collections


ثم اذهب الى الـ بيج لود Page_Load وقم بكتابة هذه الكود التالي .. سوف نقوم بالتعديل عليه ..
 كود

Dim rpt As New ReportDocument
rpt.Load(Server.MapPath("CrystalReport.rpt"))

Dim db As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + Server.MapPath(".\\db1.mdb"))
db.Open()
Dim SQLs As String
SQLs = ""
Dim ad As New OleDbDataAdapter(SQLs, db)
Dim da As New DataSet
ad.Fill(da, "Earth")

rpt.SetDataSource(da)
rpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.DefaultPaperOrientation
CrystalReportViewer1.ReportSource = rpt

db.Close()
ad.Dispose()
da.Dispose()


كما هو موضح ...

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_27.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_27.JPG[/IMG]

لاحظ اخي القارئ .. اننا تركنا هذا المتغير فارغ ..

 كود
SQLs = ""


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

الان اجعل الكرستال ريبوت هو المحدد حاليا CrystalReport.rpt ثم من خلال شريط الادوت الذي يكون على اليسار الخاص للكرستال ريبوت Field Explorer

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_28.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_28.JPG[/IMG]

اضغط على Show SQL Query لكي تظهر لك هذه النافذة

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_29.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_29.JPG[/IMG]

قم بنسخ جملة الاستعلام.. لكي نقوم بالتعديل عليها .. الان ارجع إلى صفحة الديفولت .. Default.aspx.vb وقم باسناد جملة الاستعلام إلى المتغير SQLs وسوف نسنده بشرط معين بشرط

رقم الـ ID= 1 لكي يصبح المتغير قيمة المتغير بهذا الشكل

 كود
SQLs = "SELECT `tbl_Client`.`ID`, `tbl_Client`.`C_Name`, `tbl_Client`.`C_Phone`, `tbl_Client`.`C_Address`FROM `tbl_Client` `tbl_Client` Where ID=1"


وبهذه الطريقة انتهينا ..

قم بتشغيل التقرير .. لكي يظهر لك فقط سجل واحد .. كما هو مبين ..

" target="_blank" href="http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_30.JPG[/IMG]" target="_blank">http://www.arabmoheet.net/forum/Members_Upload_Pics/34925/Crystal_Report_30.JPG[/IMG]

شرح بعض الاكواد للتوضيح

استخدمنا امر


 كود
Imports System.Data.OleDb
Imports System.Data


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

وكذلك اظهار او اتاحة الخصائص للتقرير

 كود
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Collections


عرفنا متغير من نوع rpt لياخذ خصائص التقرير

 كود
Dim rpt As New ReportDocument
rpt.Load(Server.MapPath("CrystalReport.rpt"))


ومن ثم التعرف على مسار التقرير وتحديده .. في الموقع ..

وهنا
 كود

Dim db As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + Server.MapPath(".\\App_Data\\db1.mdb"))
db.Open()
Dim SQLs As String
SQLs = "SELECT `tbl_Client`.`ID`, `tbl_Client`.`C_Name`, `tbl_Client`.`C_Phone`, `tbl_Client`.`C_Address`FROM `tbl_Client` `tbl_Client` Where ID=1"


قمنا بتعرف متغير للاتصال ومن ثم فتحه .. وعرفنا متغير SQLs لياخذ لكي يتحفظ بقيمة او بالاحرى يخزن جملة الاستعلام في المتغير ..
ومن ثم عرفنا الادبتر .. لكي يتم تنفيد جملة السكيول
وعرفنا الداتا ست لكي ياخذ القيم المرجعه من خلال الادبتر ..

 كود
Dim ad As New OleDbDataAdapter(SQLs, db)
Dim da As New DataSet
ad.Fill(da, "tbl_Client")


ثم بعد ذلك اسندنا قيمة الداتا ست إلى التقرير .لياخذ البيانات منها

 كود
rpt.SetDataSource(da)


ثم بعد ذلك كتبنا هذا الكود التالي لكي يهيئ التقرير للطباعة بالعرض والطول ..

 كود
rpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.DefaultPaperOrientation


ويمكن تجاهل هذا السطر ..

ثم اسندنا لعارض الكرستال ريبوت مصدر الريبوت وهو الـ rpt لكي يتعرف على الريبوت

 كود
CrystalReportViewer1.ReportSource = rpt


ومن ثم اغلاق كلاُ من

 كود
db.Close()
ad.Dispose()
da.Dispose()



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

سجلات على حسب القيمة المرجعة من الاستعلام ..

الان الكود بلغة الـ C#.NET

ضع هذا الكود في اعلى النافذة

 كود

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Collections;


وضع هذا الكود في البيج لود ..

 كود
ReportDocument rpt = new ReportDocument();
rpt.Load(Server.MapPath("CrystalReport.rpt"));


String SQLs;
SQLs = "SELECT `tbl_Client`.`ID`, `tbl_Client`.`C_Name`, `tbl_Client`.`C_Phone`, `tbl_Client`.`C_Address`FROM `tbl_Client` `tbl_Client` Where ID=1";

String strConnection = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Server.MapPath(".\\App_Data\\db1.mdb");
//create a new OleDbConnection object using the connection string
OleDbConnection objConnect = new OleDbConnection(strConnection);
//open the connection to the database
objConnect.Open();
OleDbDataAdapter ad = new OleDbDataAdapter(SQLs, objConnect);
DataSet da = new DataSet();
ad.Fill(da, "tbl_Client");

rpt.SetDataSource(da);
rpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.DefaultPaperOrientation;
CrystalReportViewer1.ReportSource = rpt;


objConnect.Close();
ad.Dispose();
da.Dispose();



وهذا والله أعلم..
ربي اني لَمَا انزلتَ اليّ من خيرٍ فقير


--------------------
العلـم دين يُدان الله به..
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالأربعاء,10/ذو الحجة/1428 هـ,09:28 صباحاً
المشاركة #2

الرتبة في المنتدى:مقدم

أيقونة المجموعة

المجموعة: أعضاء الشرف
المشاركات: 526
سجل في:الاثنين,04/شوال/1428 هـ,05:04 مساءً
الدولة:السعودية
رقم العضوية: 34925



هذا المثال بالـ VB.NET



الملفات المرفقة
 WebSiteReport.rar ( 15.15ك ) عدد مرات التنزيل: 1661


--------------------
العلـم دين يُدان الله به..
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالأربعاء,10/ذو الحجة/1428 هـ,09:29 صباحاً
المشاركة #3

الرتبة في المنتدى:مقدم

أيقونة المجموعة

المجموعة: أعضاء الشرف
المشاركات: 526
سجل في:الاثنين,04/شوال/1428 هـ,05:04 مساءً
الدولة:السعودية
رقم العضوية: 34925



وهذا المثال بالـ C#.NET

تحياتي ...


الملفات المرفقة
 WebSite_ReportCNET.rar ( 15.08ك ) عدد مرات التنزيل: 1291


--------------------
العلـم دين يُدان الله به..
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالأربعاء,10/ذو الحجة/1428 هـ,10:02 صباحاً
المشاركة #4

الرتبة في المنتدى:رقيب

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 6
سجل في:الجمعة,05/ذو الحجة/1428 هـ,01:10 مساءً
الدولة:السعودية
رقم العضوية: 40374



بسم الله الرحمن الرحيم
والصلاه والسلام على سيدنا محمد وعلى اله وصحبه اجمعين
الاستاذ القدير FuctionSys
جزاك الله خيرا على هذا الموضوع الرائع وهذا الشرح المفصل جعله الله في موازين حسناتك وكثر الله من امثالك
فانا ممن عانا كثيرا في البحث عن درس كهذا ينفعني ويساعدني

والله انني وجميع اعضاء المنتدى نعلم ان هذا العطاء ليس بشي غريب عليك
ولااملك الاشكرك والدعاء لك
وتقبل تحياتي


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالأربعاء,10/ذو الحجة/1428 هـ,10:44 صباحاً
المشاركة #5

الرتبة في المنتدى:مقدم

أيقونة المجموعة

المجموعة: أعضاء الشرف
المشاركات: 526
سجل في:الاثنين,04/شوال/1428 هـ,05:04 مساءً
الدولة:السعودية
رقم العضوية: 34925



بسم الله الرحمن الرحيم
اللهم صلي على محمد وآل محمد...

شكرا لكِ اختي .. على هذا الاطراء اخجلتي تواضعي ..
موفقين يارب


--------------------
العلـم دين يُدان الله به..
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالأربعاء,10/ذو الحجة/1428 هـ,09:36 مساءً
المشاركة #6

الرتبة في المنتدى:رقيب

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 6
سجل في:الجمعة,05/ذو الحجة/1428 هـ,01:10 مساءً
الدولة:السعودية
رقم العضوية: 40374



اخي القدير FunctionSysصدقني ماقلت الا الحقيقه
بس فيه عندي سوال زغيرون نفسي اعرف كيف اسويه وهو
انت في المثال قدرت تعرض لنا سجل واحد اوعده سجلات
لكن لما كنت تعرض سجل واحد كان رقم IDمكتوب في الكود يعني نفسي اعرف مافي طريقه مثلا اخلي المستخدم هو يدخل رقم السجل الي عاوز يعرضه ويتعرض في الريبورت
زي مثلا تكست بوكس يدخل فيه رقم العميل وليكن 2 ويتعرض في الريبورت بيانات العميل التاني
اتمنى القى اجابه منك ومشكوووووووووووووور مره تانيه وتالته...الخ
وتقبل تحياتي


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالخميس,11/ذو الحجة/1428 هـ,03:28 صباحاً
المشاركة #7

الرتبة في المنتدى:مقدم

أيقونة المجموعة

المجموعة: أعضاء الشرف
المشاركات: 526
سجل في:الاثنين,04/شوال/1428 هـ,05:04 مساءً
الدولة:السعودية
رقم العضوية: 34925



بسم الله الرحمن الرحيم
اللهم صلي على محمد وآل محمد ...

لو تلاحظين في الشرح .. في البداية انا تركت المتغير SQLs فارغ .. ثم اسندت له قيمة ...
وبما انك تبين المستخدم يدخل الرقم او الاسم .. او اي شيء مشروط .. كل ماعليك هو تمرير جملة سكيول إلى الصفحة وتشغيلها .. على سبيل المثال .. احنا عرفنا متغير SQLs كالتالي واسندنا له جملة الأستعلام المشروط ...
الكود بالسي شارب ..
 كود
String SQLs;
SQLs = "SELECT `tbl_Client`.`ID`, `tbl_Client`.`C_Name`, `tbl_Client`.`C_Phone`, `tbl_Client`.`C_Address`FROM `tbl_Client` `tbl_Client` Where ID=1";


ومن ثم قمنا بتشغيلها .. بهذا الامر ..

 كود
OleDbDataAdapter ad = new OleDbDataAdapter(SQLs, objConnect);


طبعا بأمكانا نستغني على الجملة التالية الا وهي
 كود

SQLs = "SELECT `tbl_Client`.`ID`, `tbl_Client`.`C_Name`, `tbl_Client`.`C_Phone`, `tbl_Client`.`C_Address`FROM `tbl_Client` `tbl_Client` Where ID=1";


يعني نعرف فقط String SQLs;
ونسند له القيمة القادمة من صفحة آخرى ادخلها المستخدم .. على سبيل المثال ..

نقول

SQLs="القيمة القادمة من صفحة آخرى ادخلها المستخدم"
ومن ثم نشغل الجملة

 كود
OleDbDataAdapter ad = new OleDbDataAdapter(SQLs, objConnect);


السؤال يطرح نفسه .. كيف امرر قيمة من صفحة آلى آخرى ... تستطيعين بعدة طرق ..
والشائع هو استخدام السشن .. لكي يحمل لك جملة السكيول .. واسنده إلى المتغير الي هو SQLs

على سبيل المثال .. لدنيا صفحة يتم فيها وضع قيمة المنتج .. وعند الضغط على الزر ينقله إلى صفحة التقرير ليتم عرض البيانات من خلال الرقم المدخل..

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

Session["MySQL"] = "Select * from emp where id='" + TextBox1.text + "'";


ومن ثمَ في صفحة عرض التقرير .. في البيج لود ...
نسند الـ Session["MySQL"] إلى متغير السكيول

بهذه الطريقة
 كود
SQLs = Session["MySQL"].ToString;


وسوف يتم تنفيذ الجملة وتشغيلها وعرض البيانات في التقرير ...

اتمنى الفكرة وضحت ..
تحياتي لك


--------------------
العلـم دين يُدان الله به..
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالخميس,11/ذو الحجة/1428 هـ,09:36 صباحاً
المشاركة #8

الرتبة في المنتدى:ملازم

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 136
سجل في:الخميس,04/شوال/1427 هـ,11:23 مساءً
الدولة:السعودية
رقم العضوية: 14529



بسم الله ماشاء الله ..
الله يوفقك استاذنا القدير والفاضل FunctionSys ..
الله يجعلها في ميزان حسناتك .. اللهم امين ..


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالخميس,11/ذو الحجة/1428 هـ,04:12 مساءً
المشاركة #9

الرتبة في المنتدى:مقدم

أيقونة المجموعة

المجموعة: أعضاء الشرف
المشاركات: 526
سجل في:الاثنين,04/شوال/1428 هـ,05:04 مساءً
الدولة:السعودية
رقم العضوية: 34925



بسم الله الرحمن الرحيم
اللهم صلي على محمد وآل محمد ..

العفوا اخي العزيز يوفي VIP
كل مااصبوا اليه هو نشر العلم الكامن في هالعقول ..
تحياتي لك


--------------------
العلـم دين يُدان الله به..
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالاثنين,15/ذو الحجة/1428 هـ,05:54 صباحاً
المشاركة #10

المراقب العام
Joseph
الرتبة في المنتدى:عماد



المجموعة: الإدارة
المشاركات: 2897
سجل في:الاثنين,26/ربيع الأول/1427 هـ,07:49 صباحاً
الدولة:الأردن
رقم العضوية: 10102



كلام جميل اخي الكريم و فققك الله لكل خير و تشكر على هذه الجهود الطيبة.
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة

    

عدد المتصفحين لهذا المنتدى «1»: (الضيوف «1» - المتخفون «0»)
الأعضاء «0»: .

عدد الصفحات : 5  1  2  3  4  5   > » إضافة رد جديد إضافة موضوع جديد



 
الوقت الأن:اليوم,11:16 صباحاً بتوقيت القدس المحتلة

Powered By arabmoheet v3.1

منتديات المحيط العربي  -  راسلنا  -   أعلى
X   رسالة المنتدى
(سوف يتم اغلاق هذه النافذة بعد 2 ثانية)
X   رسالة المنتدى
(سوف يتم اغلاق هذه النافذة بعد 2 ثانية)