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

(قسم الاعلانات) الموضوع:عروض برد صيفك بواسطة: (اسامة الاحمر) :: (قسم الاعلانات) الموضوع:ابو عباس لنقل الاثاث داخل وخارج الرياض بواسطة: (المروج للتسويق 3) :: (قسم الاعلانات) الموضوع:كود خصم من موقع اي هرب IHERB بواسطة: (اسامة الاحمر) :: (قسم الاعلانات) الموضوع:شراء اثاث مستعمل بالرياض بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:شقق للبيع النزهة محطة برتى مساحات من 100 م الى 250 م بواسطة: (جمعة عللام) :: (قسم الاعلانات) الموضوع:تنظيف البيوت بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:نقل اثاث بالرياض بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:تنسيق حدائق بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:عزل اسطح بالرياض بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:تنظيف موكيت و كنب بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:تنظيف خزانات بالرياض بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:تخزين اثاث بالرياض بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:الشركة المتحدة لخدمات الغاز المركزي بواسطة: (محمد علي زنهم) :: (قسم الاعلانات) الموضوع:مكافحة حشرات بالرياض بواسطة: (eng saeed) :: (قسم الاعلانات) الموضوع:اضيفى لمسة جمال الى منزلك من معرض الكامل للاثاث بواسطة: (رمز الهنا) :: (قسم الاعلانات) الموضوع:ابو عباس لشراء الاثاث المستعمل بواسطة: (المروج للتسويق 3) :: (منتدى الأكسس) الموضوع:اريد ان ابحث برقم هوية الشخص بواسطة: (startnet) :: (منتدى برمجة الجرافكس) الموضوع:تصميم فيديوهات media بواسطة: (جرافيرو109) :: (أخبار التكنولوجيا) الموضوع:شهادات توفل وايلتس للبيع 00962798140440 من داخل الامارات اصليه معتمده بواسطة: (دكتور فارس) :: (قسم الاعلانات) الموضوع:مقاول بالرياض0533266762 مؤسيه عيد العنزي للمقاولات بالرياض.مقاول ملاحق ممتاز بالرياض بواسطة: (عبدالرحمان)


راديو القرآن

المواضيع المثبته: (منتدى مبرمجي ASP.NET) الموضوع:كتاب تصميم موقع اخباري بواسطة: (م.محمد الساعدي) :: (منتدى تصميم صفحات الويب) الموضوع:أرشيف المواضيع المميزة بواسطة: (alanees) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:تعرف على تقنية Oracle APEX بواسطة: (وليد القدسي) :: (منتدى برمجة الشبكات في بيئة الدوت نت) الموضوع:Dot Net Networks & TCP/IP Programming بواسطة: (fmo_82) :: (منتدى مبرمجي لغة جافا JAVA) الموضوع:شرح أكواد الجافا بواسطة: (الردادي) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:المواضيع والدروس التعليمية في الدوت نيت - ابدأ من هنا بواسطة: (fmo_82) :: (قسم الدروس و الدورات) الموضوع:لتحميل مجموعة امثله على الفيجوال بيسيك دوت نت 2005 بواسطة: (HnHn) :: (منتدى برمجة الألعاب) الموضوع:استراتيجية انتاج و تسويق الالعاب بواسطة: (مصطفي البارودي) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:أنواع الشبكات الحاسوبية بواسطة: (مرحبا الساع) :: (منتدى Microsoft SQL Server) الموضوع:يومياً أسئلة sql server مجاناً بواسطة: (m.atassi) :: (منتدى Microsoft SQL Server) الموضوع:كتب SQL server بواسطة: (m.atassi) :: (منتدى Microsoft SQL Server) الموضوع:مراحل تصميم قاعدة بيانات ناجحة بواسطة: (m.atassi) :: (منتدى البرامج) الموضوع:برنامج رهيب انتا تتكلم والكمبيوتر يكتب بالعربى بواسطة: (مستشفى الكمبيوتر) :: (منتدى مبرمجي ASP) الموضوع:برنامج اختبارات للجامعات بواسطة: (عبدالله جابر شقليه) :: (منتدى Borland Delphi) الموضوع:تحويل الأرقام إلى نص بواسطة: (مهند عبادي) :: (منتدى ال SQL العام) الموضوع:كتاب يشرح اساسيات SQL بواسطة: (محمد جمعة) :: (منتدى Microsoft Excel) الموضوع:هيا بنا نتعلم كتابة الكود فى الاكسيل VBA بواسطة: (ramies) :: (منتدى C و C) الموضوع:برنامج من سيربح المليون بواسطة: (مصطفي البارودي) :: (منتدى Microsoft Visual Basic) الموضوع:برنامج الحسابات مع الكود بواسطة: (د.أنس عباس) :: (منتدى برمجة الجرافكس) الموضوع:الجزء الثانى من دروس تعلم GDI بواسطة: (alaa gomaa)

عدد الصفحات : 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ك ) عدد مرات التنزيل: 1722


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

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

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

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



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

تحياتي ...


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


--------------------
العلـم دين يُدان الله به..
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالأربعاء,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:27 مساءً بتوقيت القدس المحتلة

Powered By arabmoheet v3.1

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