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

(منتدى الأكسس) الموضوع:الحاق نتيجة استعلام فى جدول بواسطة: (startnet) :: (منتدى الأكسس) الموضوع:استيراد عده اوارق اكسل في جدول واحد بواسطة: (startnet) :: (منتدى الأكسس) الموضوع:فيديو للشروحات والدروس من عمل الاعضاء بواسطة: (startnet) :: (قسم الاعلانات) الموضوع:مزاد سعودي يحتوي على مزاد السيارات و العقار و الأجهزة ولوحات مميزه وارقام مميزه بواسطة: (اسامة الاحمر) :: (منتدى الأكسس) الموضوع:من أدخل السجل وقام بالتعديل عليه بواسطة: (أيمن غراوي) :: (منتدى الأكسس) الموضوع:اضافة سجل جديد في النموذج المخفي بواسطة: (د.كاف يار) :: (منتدى Microsoft Excel) الموضوع:شيت كنترول ابتدائي 2018 تصميم عبد الحميد شقير بواسطة: (shokeir) :: (منتدى الأكسس) الموضوع:مساعدة بتنفيذ فكرة لترحيل دين شهريا بواسطة: (د.كاف يار) :: (قسم الاعلانات) الموضوع:شركة نقل اثاث بالرياض بواسطة: (سمسم جمال) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:كيف تستخدم حلقة foreach واحدة للحصول على قيم من مجموعتين مختلفتين بواسطة: (عبد الكريم كنعان) :: (قسم الاعلانات) الموضوع:احصل على قنوات تلفزيونية مجانية بواسطة: (اسامة الاحمر) :: (قسم الاعلانات) الموضوع:تملك شقتك الان في مشروع الجادة بالشارقة بواسطة: (اسامة الاحمر) :: (أخبار التكنولوجيا) الموضوع:خصومات الان من خدمة عملاء كاريير بواسطة: (ليان عمر) :: (قسم الاعلانات) الموضوع:موقع اعلانات تاسكي رويال بواسطة: (اسامة الاحمر) :: (قسم الاعلانات) الموضوع:مطلوب فنيين تركيب كاميرات مراقبة وأنظمة أنذار حريق بواسطة: (royal sara) :: (منتدى الأكسس) الموضوع:مساعد عاجله لطريقة حل مشكلة الفرغات بالتقرير بواسطة: (STAR5000) :: (قسم الاعلانات) الموضوع:بدون تعقيدات تستلم خادمتك و سائقك بواسطة: (ايوان للاستقدام) :: (منتدى الأكسس) الموضوع:اخفاء حقول عند شرط بواسطة: (اواب) :: (قسم الاعلانات) الموضوع:ابطال السحرالشيخ سامح الكيشاني بواسطة: (اسامة الاحمر) :: (منتدى الأكسس) الموضوع:التفعيل بواسطة: (.husein)


راديو القرآن

المواضيع المثبته: (قسم الـ portable) الموضوع:برنامج اكسترا لرفع الصور بواسطة: (kkarem55) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:مكتبة الأمثلة والتطبيقات للغة #C بواسطة: (النور) :: (منتدى الوورد والباور بوينت) الموضوع:مكتبة الوورد بواسطة: (ramies) :: (قسم الدروس و الدورات) الموضوع:المواضيع والدروس التعليمية في الدوت نيت - ابدأ من هنا بواسطة: (fmo_82) :: (منتدى Borland Delphi) الموضوع:دورة تعليمية في تصميم دليل هاتف في دلفي بواسطة: (مهند عبادي) :: (القسم المفتوح) الموضوع:إلا رسول الله صلى الله عليه وسلم بواسطة: (alanees) :: (منتدى Microsoft Excel) الموضوع:مكتبة اكسيل كاملة - عربى - انجليزى بواسطة: (junkbki) :: (منتدى مبرمجي ASP.NET) الموضوع:Visual Web Developer 2010 Express بواسطة: (يوسف جميل جادالله) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:ما هي أوراكل وماتعرف عنها بواسطة: (وليد القدسي) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:طريقة عمل شبكة لاسلكية بين جهازين او أكثر ..اكس بي.. لمشاركة الملفات والإنترنت بواسطة: (مرحبا الساع) :: (منتدى الكتب و المقالات) الموضوع:كتب في الاكسس باللغة العربية بواسطة: (ابو حسام) :: (منتدى برمجة الألعاب) الموضوع:برنامج رائع لتصميم الألعاب بواسطة: (mjxp) :: (منتدى C و C) الموضوع:دورة السي بلس بلس بواسطة: (مصطفي البارودي) :: (منتدى الكتب الالكترونية) الموضوع:كتاب كامل من جزئين يشرح access وبالتفصيل وقواعد البيانات وبالتفصيل بواسطة: (m.i.a.r) :: (منتدى مبرمجي ASP) الموضوع:تحزين سجلات داخل ملفات اكسل و xml وورد ..إلخ بواسطة: (عبدالله جابر شقليه) :: (منتدى أجاكس(Asynchronous JavaScript and XML)) الموضوع:البدء مع ASP.NET AJAX بواسطة: (يوسف جميل جادالله) :: (القسم المفتوح) الموضوع:قصص الأنبياء عليهم السلام .جميعا بواسطة: (غزاوية أصيلة) :: (قسم المواضيع المميزة) الموضوع:تحديث قاعدة بيانات لدى عميل عن طريق الإنترنت... بواسطة: (أبو رهف) :: (قسم الدعم الفني) الموضوع:هل تريد التحكم بجهازك كأنك محترف بواسطة: (ياسر جمال) :: (منتدى الدعم الفني للماسنجر المحيط العربي) الموضوع:مشاكل ماسنجر المحيط العربي بواسطة: (jbsa)

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


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

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

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

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



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

تحياتي ...


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


--------------------
العلـم دين يُدان الله به..
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالأربعاء,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   > » إضافة رد جديد إضافة موضوع جديد



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

Powered By arabmoheet v3.1

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