الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التمثيل البيانى للبيانات

مغلق
بدأه m_3ryan في 25 سبتمبر 2006 · 28 رد · 5,763 مشاهدة · في تصميم وبرمجة التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

الأخوة الكرام فى معظم المواضيع التى طرحت فى المنتدى من قبل كان الاعضاء يتساءلون عن كيفية تخزين البيانات فى قاعدة بيانات و لكن لم يقابلنى ان سأل أحد الأعضاء عن التمثيل البيانى للبيانات المخزنة كما فى الشكل التالى

Chartpreview.jpg

حيث يعرض الرسم البيانى كما هو موضح بالشكل علاقة بين قيم و أسماء و التى عادة ما نريد استخدام هذه الأداة فى تحليل المعلومات المخزنة و أيضا يمكن رسم العلاقة السابقة بالشكل التالى

piechartpreview.jpg

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

الأدوات المستخدمة قى هذا الدرس

1- أداة مجانية تسمى ZedGraph و هى أداة مفتوحة المصدر و يمكنك الإطلاع على التفاصيل الخاصة بها من على الموقع الخاص بها و هوه http://zedgraph.org/wiki/index.php?title=Main_Page وقد قمت بوضعها فى المرفقات و تسمى ZedGraph.dll

2- من خلال الإطلاع على الاداة فى الموقع الخاص بها سوف تجد طريقة ربط البيانات بها و لكن للتسهيل على الأعضاء لقد قمت بإنشاء كلاس ChartClass.dll و كل ما عليك هوه تمرير بارامترات لها و التى سوف أوضح طريقةالإستعمال فيما يلى

الخطوة الأولى و هى إضافة الأداة ZedGraph إلى بيئة دوت نت

addrefrence.jpg

2-3.jpg

سوف تلاحظ ظهور ال reference الخاص به فى الsolution explorer كما فى الشكل

4(4).jpg

و بنفس الطريقة نضيف الكلاس ChartClass.dll إلى المشروع

ref4.jpg

الخطوة الثانية و هى إضافة الأداة إلى شريط الادوات كالتالى

tol1.jpg

tol2.jpg

tol3.jpg

سوف تلاحظ ظهور الإداة فى شريط الأدوات كما فى الشكل

tol4.jpg

#2

جزاك الله خيرا وللمزيد إن شاء الله

اللهم ارزقنا فهم النبيين وحفظ المرسلين

Hock341@yahoo.com

الشركة التطبيقية لخدمات الحاسب الالي [حاسب]

http://www.hasib.com.sa

مدونتي

#3

شكرا اخي الكريم على هذا الشرح :--

بس للاسف وين المرفقات

تحياتي

#4

الرابط مرفق انتبه له جيدا

http://zedgraph.org/wiki/index.php?title=Main_Page

يا أيها الناس قولو لا إله إلا الله تفلحوا وتملكوا بها العرب وتذل لكم العجم وإذا آمنتم كنتم ملوكا في الجنة

#5

السلام عليكم ورحمة الله وبركاته

نفع الله بك وجعل الله ذلك فى ميزان أعمالك الحسنة

#6

مشكور.

انا شخصيا لي تجربة مع ال Zedgraph تعاملت معه من قبل في برنامج لكن لتعقيداته لم استمر في التعامل معه، وبالرغم من انه مفتوح المصدر الا ان النسخة اللتي كانت عندي فيها اشياء ناقصة وتحتاج الى تكملة.

اتنمى ان الصنف ChartClass اللذي تفضل الاخ m_3ryan بانشاءه يسهل التعامل ويزيل الكثير من التعقيد.

مشكور.

انا شخصيا لي تجربة مع ال Zedgraph تعاملت معه من قبل في برنامج لكن لتعقيداته لم استمر في التعامل معه، وبالرغم من انه مفتوح المصدر الا ان النسخة اللتي كانت عندي فيها اشياء ناقصة وتحتاج الى تكملة.

اتنمى ان الصنف ChartClass اللذي تفضل الاخ m_3ryan بانشاءه يسهل التعامل مع Zedgraph ويزيل الكثير من تعقيداته.

تم تعديل هذه المشاركة بواسطة abd_albaset في 26 سبتمبر 2006 في 10:16

#7

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

reportfrm(1).jpg

تلاحظ من الشكل أن التقرير يتكون من

1- Title وهو يمثل إسم التقرير

2- YAxis و هو عبارة عن محورy

3- Xaxis و هو عبارة عن محور X

كل من محور X ,Y لهما خاصيتين هما (الإسم الموجود فى قاعدة البيانات و الإسم المعروض على التقرير)

فى المرفقات سوف تجد مثال كامل يبين كيفية استخدام الكلاس فى اى مشروع و لكى تستفيد من المشروع كل ما عليك هو ان تضيف الفورم ChartPreview إلى المشروع كالاتى

add.jpg

و المثال فى المرفقات يبين كيفية استخدام الفورم

ستجد ان الفورم تتطلب عدد من المتغيرات

 
ChartPreview frm = new ChartPreview(dt, "X Column Name, "XdisplayName", "Y Column name", "YDsiplayName", "Title", true );

لتوضيح المتغيرات

1-نقوم بتمرير جدول من البيانات المطلوب تمثيلها بيانيا يتكون من خانتين الاولى تمثل محور X و الثانية تمثل محور Y

2- البارامتر الثانى يمثل اسم الخانة فى الجدول التى تمثل محور X

3 – البارامتر الثالث يمثل الإسم الذى يمثل الخانة الاولى على الرسم البيانى فمثلا الجدول يتكون من الخانة الاولى (name ) وانا اريد ان اعرضها على الرسم البيانى (الإسم )

4- بالمثل البارامتر الرابع و الخامس

5- كما شرحنا مسبقا يمثل الإسم الذى يظهر أعلى التقرير و اذا كنا نريد رسم Bar chart نمرر القيمة True إلى الفورم و غإذا كنا نريد رسم Bie Chart نمرر القيمة False

ملحوظة

المثال المرفق لن يعم لإلا بعد تعديل الجزء فى الفورمة الرئيسية الخاص بجلب اليانات من قاعدة البيانات و وضعها فى صورة جدول يتكون من خانتين (مثلا العامود الاول يتكون من الاسماء و العامود الثانى بالجدول عبارة عن القيم المماثلة لها)

لابد من تعديل هذا الكود

//برجاء تعديل هذا الجزء قبل اختبار المثال لكى يقوم بجلب بعض البيانات من قاعدة البيانات
ٍstring sqlcmd = "select [name],[minQuantity] from parts where name like 'zaki%' order by minQuantity";
SqlConnection con = new SqlConnection("Data Source=PC2;Initial Catalog=SPMS;User ID=sa;password=123");

المثال تم برمجته بواسطة Microsoft Visul studio 2005

لا تنسونا بصالح الدعاء

Classes.rar

Sample_ChartView.rar

تم تعديل هذه المشاركة بواسطة m_3ryan في 26 سبتمبر 2006 في 13:55

#8

شكرا شكرا شكرا على هالموضوع الرائع انا كنت الاسبوع هذا افكر بالموضوع نفسه التمثيل البياني شئ احترافي بمعنى الكلمة .

تحياتي

#13

موضوع جميل،

لكن ، هل بالامكان تفيير الألوان في التقرير، وتقريب الأعمدة من بعضها حتى تكون متلاصقة ؟

شكرا

#14

هل يمكن تطبيق هذه الطريقة على VB2005

#15

بالنسبة للاخ العزيز delab

اقتباس
لكن ، هل بالامكان تفيير الألوان في التقرير، وتقريب الأعمدة من بعضها

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

#16

بالنسبة لطلب الاخ

اقتباس
عبودى 99

هل يمكن تطبيق هذه الطريقة على VB2005

ثانيا باستخدام VB.Net

سوف تتبع نفس الخطوات إلى ان نضيف الاداة إلى شريط الادوات ثم نضيف الاداة إلى الفورم المطلوب عرض الشكل عليها و نقوم يتغيير اسمها إلى Zchart

ثم نكتب فى أعلى صفحة الكود

Imports ChartClass
Imports System.Data.SqlClient

و نستخدم الكود التالى لعرض الشكل

'هذا لجزء من الكود يستدخدم لجلب البيانات المطلوب تمثيلها
Dim DT As New DataTable, ds As New DataSet
Dim Sqlcmd As String = "select [name],[quantity] from parts"
Dim con As New SqlConnection("Data Source=DatabaseSource;Initial Catalog=SPMS;User ID=sa;password=123")
'لابد من تغيير ال String  الخاص ب الConnection قبل تجربة المثال
Dim da As New SqlDataAdapter(Sqlcmd, con)
Try
   con.Open()
   da.Fill(ds, "parts")
   DT = ds.Tables(0)
   con.Close()
Catch ex As SqlException
   MsgBox(ex.Message)
End Try

Dim x As New customchart
'و لرسم   Bar Chartنضيف هذا السطر من الكود

x.DrawBarChart(Zchart, DT, "name", "Name", "minQuantity", "Quan")

'و لرسم   Pie Chartنضيف هذا السطر من الكود

x.DrawPieChart(Zchart, DT, "name", "", "minQuantity", "")

اعتقد أن لو مكان المشاركة أصبح فى منتدى قسم التقارير أطلب من المشرفين نقل المشاركة و أطلب من المشرفين تثبيتها

و لكم جزيل الشكر

VB.net.doc

#17

شكرا جزيلا سوف اجرب وارجوا أن لا اثقل عليك بالاسئلة

#18

طبقة ماذكرة

WindowsApplication5.rarيبدو أن المثال على sql

طبقة ما ذكرة ولم انجح ارفقة لك المثال لو امكن توضيح الخطا

كذلك اريد تطبيقه على اكسس

#19

أخى العزيز لقد قلت عند تجربة المثال يجب عليك تغيير السطر الخاص بالأتصال بقاعدة البيانات و هو

 Dim con As New SqlConnection("Data Source=DatabaseSource;Initial Catalog=SPMS;User ID=sa;password=123")

لكى يناسب قاعدة البيانات التى تجلب البيانات منها فمثلا فى المثال الذى استخدمته قمت الاتصال بقاعدة البيانات DataSource التى تحتوى على اسماء و كميات و قمت برسم العلاقة بينهم دى أولا

ثانيا انت عملت نسخ ولصق للكود من غير ما تقراه و تفهمه

يعنى انت المفروض انت تبقى عارف انت عايز ترسم Pie ولا Bar Chart يعنى تضع احد السطريين الاتيين

 'و لرسم   Bar Chartنضيف هذا السطر من الكود

		x.DrawBarChart(Zchart, DT, "name", "Name", "minQuantity", "Quan", "")

		'و لرسم   Pie Chartنضيف هذا السطر من الكود

		x.DrawPieChart(Zchart, DT, "name", "", "minQuantity")

يا ريت تكون فهمت انا قصدى ايه

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

و انا مستعد لأى تساؤل

#20

اسف على الازعاج اعتقد اني قطعة ربع المسافه

حاولت ولكن ظهرة رسالة خطا

ارجوا تجربة المثال متصل بقاعدة اكسس :s

WindowsApplication99.rar

#22

شكراً اخي العزيز نجح السطر المرفق لي سؤال

ما فائدة Title

وهل يمكن تعديل السطر التالي حيث يوجد به خطا

[

 x.DrawBarChart(Zchart, DT, "dd1", "dd1", "dd2", "")]

تم تعديل هذه المشاركة بواسطة عبودي99 في 17 أكتوبر 2006 في 13:24

#23

أخى العزيز يا ريت تنظر علىالصورة اللى فى المشاركة رقم 7 لكى تعرف مكونات الشكل البيانى و منها هاتعرف ال title يعنى ايه

و بالنسبة للكود اللى انت عايزه هايكون على الصورة

x.DrawBarChart(Zchart, DT, "dd1", "dd1", "dd2", "dd2","your title" )
#24

انا كنت مستعجل على فهم المثال بعد تطبيق ماذكرة فهمت كل حاجه

الان كل شي واضح شكرا لك اخي العزيز

جعله الله في موازين حسناتك

هذا الموضوع مغلق.

مواضيع مشابهة