ماهي ملفات XSD ؟
هي ملفات تساعدنا في استعراض التقارير او
ارسال واستلام بيانات من والى Stored procedure الموجودة بداخل قاعدة البيانات
بطريقة سهلة وواضحة .
اي التقرير في بيئة
الفجوال ستوديو لا يمكن استخدامه عن طريق الاتصال المنفصل او عن طريق الكود بصورة
عامة لأنه يحتاج الى ملف ذو امتداد .XSD يحدد له الحقول التي سيعرض بها البيانات التي نملئها
من قاعدة البيانات . اي تكون العملية بشكل
التالي
لأدراج ملف .XSD من داخل المشروع نختار اضافة كائن جديد ومن قائمة Data نختار DataSet
وهذا Query الموجودة داخل TableAdapter نكونها عن طريق سحب Query من Toolbox وبعد سحب والقائه على TableAdapter سيعرض لنا الشاشة التالية
في هذا SQL جعلنا يبحث عن اسم معين
توضيح محتويات الصفحة ....
اي البيانات تأتي
من قاعدة البيانات الى ملف XSD الذي نحن نحمله بالبيانات ومنه
تعرض داخل التقرير هذه البيانات والتقرير يعرض داخل مستعرض تقارير Report
Viewer او تستخدم مباشرة من بدون تقارير
لأدراج ملف .XSD من داخل المشروع نختار اضافة كائن جديد ومن قائمة Data نختار DataSet
شكل الملف بعد
ادراجه داخل المشروع يعرض لنا في ToolBox اداوات جديدة نستخدمها في هذه
الملفات وسوف نشرحها بلتفصيل
كما نعلم التقرير يحتاج لأعمدة تعرض فيه اي
حقول لذالك ندرج DataTable
لتكوين اعمدة المطلوبة للتقرير ونوع كل
عمود يحدد من خصائصه وكذالك بقية الخصائص الخاص بكل عمود او حقل.
وكيف نملئى هذه الاعمدة بالبيانات ؟
نملئها عن طريق TableAdapter ايضا ندرجه في اسفل DataTable الذي كوناه لكي ننفذ عمليات على TableAdapter وهو يملئ الجدول DataTable بالبيانات .
نملئها عن طريق TableAdapter ايضا ندرجه في اسفل DataTable الذي كوناه لكي ننفذ عمليات على TableAdapter وهو يملئ الجدول DataTable بالبيانات .
وهذا Query الموجودة داخل TableAdapter نكونها عن طريق سحب Query من Toolbox وبعد سحب والقائه على TableAdapter سيعرض لنا الشاشة التالية
توجد به ثلاث
خيارات
1.
Use SQL
statements
هنا نحن نكتب جملة SQL
ونحدد البيانات التي نريدها ان تعرض وكيف
2.
Create new
stored procedures
هنا ننشئ بروسيجر جديدة ونضيفه في قاعدة البيانات
3.
Use existing stored
procedures هنا نستخدم مباشرة بروسيجر موجودة في قاعدة
البيانات
في حال اخترنا الخيار الأول ستضهر لنا هذه الشاشة ونكتب
به Sql التي نود ان تنفذ
في هذا SQL جعلنا يبحث عن اسم معين
توضيح محتويات الصفحة ....
Query Builder : هي لتنفيذ جملة Sql والتاكد من
صحتها
Advanced Options : هي تحديد امكانية اضافة وحذف
وتعديل مباشرة على الجدول اي يضيف Query الخاص بلحذف والتعديل مباشرة. وهذه الخاصية ل اتفعل اذا اذا كان احد
حقول الجدول يحتوي على مفتاح رئيسي تستطيع اضافته
بعد اكمال العمل نضغط next ستضهر هذه الشاشة
يوجد به اسمين للبروسيجر او الفاكشن التي كتبناها وكيف
سيتم استدعاها
1.
Fill A
DataTable
هي اسم الدالة التي نريد استدعائها عن ملئى حقول الجدول DataTabel بالبيانات
2.
Return a
DataTabel
هي اسم الدالة SelectMethod التي
سنستدعيها في التقارير لتمرير البيانات لها
بعد اضافة query وتفعيل الاضافة والحذف والتعديل تلقائيا تكتب عبارة Sql الخاصة بكل من الاضافة والحذف والتعديل والاختيار الخاصة بالجدول
بشكل اجرائات (insert,delete,update, select) نستطيع استدعائها وتمرير البرامترات لها . ونستطيع تغيرها ومعرفتها بضغط tableAdapter الخاص بجدول والتحكم بالخصائص
بعد اضافة query وتفعيل الاضافة والحذف والتعديل تلقائيا تكتب عبارة Sql الخاصة بكل من الاضافة والحذف والتعديل والاختيار الخاصة بالجدول
بشكل اجرائات (insert,delete,update, select) نستطيع استدعائها وتمرير البرامترات لها . ونستطيع تغيرها ومعرفتها بضغط tableAdapter الخاص بجدول والتحكم بالخصائص
العلاقات بين
الجداول Relation
تستخدم لعمل علاقة بين اكثر من جدول لجلب بيانات من اكثر من جدول الى تقرير او الى
المشروع للتعامل معها وهي عملية معروفة جدول رئيسي وثانوي ومفتاح رئيسي وثانوي
يربط الجدولين
هناك طريقة مباشرة لتكوين Data table و TableAdapter مباشرة بدون
تصميم حقل حقل وهو عن طريق الاتصال ببروسيجر موجود بقاعدة البيانات فيه كل مدخلات
ومخرجات التقرير فقط نسحب TableAdapter وندرجه ونختار
Use existing stored
procdures ونختار البروسيجر من قاعدة البيانات وهو تلقائيا
سيكون لنا الجدول الخاص به بكل سهولة وكذالك Query
الخاصة به
كيف نستدعي الدوال
الموجودة داخل ملفات XSD من البرنامج ؟
لعمل نسخة من جدول
معين نكون كائن جديد من Dataset.xsd وبعدها اسم
الجدول المطلوب نكتب التالي
VB.net Code
|
Dim dsCopy As
New DataSet1.AdminsManageDataTable
|
C# Code
|
DataSet1.AdminsManageDataTable dsCopy
= new DataSet1.AdminsManageDataTable();
|
لتنفيد Query موجودة ضمن TableAdapter نكون كائن جديد من ذالك TableAdapter ونستدعي اي
دالة موجودة ضمنه ونرسل لها الجدول المراد ملئه بالبيانات الذي كوناه قبل قليل والبرامترات الخاصة بالجدول
VB.net Code
|
Dim TabelAdapb As New
DataSet1TableAdapters.AdminsManageTableAdapter
TabelAdapb.Fill(dsCopy, "h%")
|
C# Code
|
DataSet1TableAdapters.AdminsManageTableAdapter TabelAdapb = new DataSet1TableAdapters.AdminsManageTableAdapter();
TabelAdapb.Fill(dsCopy, "h");
|
الأن لكي نعرض هذه
البيانات داخل GridView1 ويكون الكود
كامل
VB.net Code
|
Dim dsCopy As
New DataSet1.AdminsManageDataTable
Dim TabelAdapb As New
DataSet1TableAdapters.AdminsManageTableAdapter
TabelAdapb.Fill(dsCopy,
"h")
GridView1.DataSource
= dsCopy
|
C# Code
|
DataSet1.AdminsManageDataTable dsCopy
= new DataSet1.AdminsManageDataTable();
DataSet1TableAdapters.AdminsManageTableAdapter TabelAdapb = new DataSet1TableAdapters.AdminsManageTableAdapter();
TabelAdapb.Fill(dsCopy, "h");
|
وفي التقارير
تستدعى بشكل التالي نرسل اسم الدالة والبرامترات هنا اتحدث عن ASP.net تقارير اما تقاير تطبيقات الوندوز يكون نفس الطريقة السابقة
VB.net Code
|
ObjectDataSource1.SelectMethod = "GetData"
ObjectDataSource1.SelectParameters.Clear()
ObjectDataSource1.SelectParameters.Add("AdminFullName",
DbType.String)
ObjectDataSource1.SelectParameters("AdminFullName").DefaultValue
= "h"
Me.ReportViewer1.LocalReport.Refresh()
|
C# Code
|
ObjectDataSource1.SelectMethod
= "GetData";
ObjectDataSource1.SelectParameters.Clear();
ObjectDataSource1.SelectParameters.Add("AdminFullName", DbType.String);
ObjectDataSource1.SelectParameters("AdminFullName").DefaultValue
= "h";
this.ReportViewer1.LocalReport.Refresh();
|
الان لنعود الى صفحة تسمية الدالة عند الاستدعاء
1.
Fill a DataTable كان اسمها fill وهو ما فعلنا في استعائها كدالة في ملئ grid
View
2.
Return a
DataTabel كان اسمها GetData واستدعينها
في التقرير
الان عرفنا الفرق في استخدام هذين الاسمين