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

درس - تصميم التقرير خطوة بخطوة ....

بدأه مختار سيد صالح في 11 نوفمبر 2004 · 22 رد · 16,446 مشاهدة · في قسم التقارير
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

درسنا لهذااليوم بعنوان ... إنشاء التقارير بوااسطة داتا ريبورت .

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

بسم الله الرحمن الرحيم نبدأ .

أولاً - مدخل إلى الدرس :

كل من قام بتصميم برنامج قواعد بيانات بسيطاً كان أم معقداً فلا بد و أنه فكر

في إضافة ميزة الطباعة لبرنامجه و التي تعد من أهم الميزات في كل البرامج .

و لعمل أمر طباعة إحترافي و مع ميزة عرض قبل الطباعة فأنت إذاً سوف تحتاج

إلى أداة رائعة تأتي مع فيجوال بيسك و هي data report

ثانياً - بداية إنشاء داتا ريبورت :

إذا كنت قد قررت إنشاء تقاريرك بواسطة داتا ريبورت فالأمر سهل جداً و ما يحتاج تعقيد .

أنا راح أحاول أشرح شرح مبسط أوكي ..

بعد تجهيز قاعدة البيانات المراد العمل بها و معرفة المشروع ننفذ الخطوات التالية

و على سبيل المثال سوف نأخذ برنامج دليل الهاتف الذي صممناه منذ مدة ... حتى نطوره

و نجعله يطبع نتائج البحث .

من القائمة project >>>>

more activx designers >>>

data enviroment

فتظهر لنا نافذة جديدة ....

ننقر بها على الرمز connection1 بالزر الأيمن ثم نختار properties

ثم نحدد النمط

microsoft jet 4.0 ole db provider

و من التبويب الثاني نحدد إسم قاعدة البيانات

ثم نضغط على الامر test ((إختبار الاتصال ))

و سوف يعطينا رسالة بنجاح الاتصال نضغط موافق ثم موفق ...

فنعود مرة أخرى إلى واجهة data enviroment الرئيسية

نضغط مرة اخرى على connection1 باليمين و نختار

add command

ثم نضغط على command1 باليمين و نختار properties

نفعل على الخيار

SQL statement

و نكتب في المربع السفلي أي عبارة sql مثلاً

 
select * from mok

ثم نختار موافق .... فنلاحظ أن الحقول الموجودة بالجدول المحدد قد أدرجت ... و هنا

نكون قد تجاوزنا القسم الأول و الصعب نسبياً . مبروووووك

ثالثاً - إنشاء التقرير :

بعد أن حققنا الربط مع قاعدة البيانات نختار من القائمة project الأمر

add data report

فنلاحظ ان التقرير مقسم إلى خمس أقسام

الأول - report header

رأس التقرير ... و فيه تكتب العبارة التي سوف تظهر في رأس أول صفحة من تقريرك مثلاً اسم شركتك مثلاً : المختار للبرمجة طبعاً بواسطة أداة الليبل

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

الثاني - page header

رأس الصفحة ..... و هي العبارة التي تظهر في رأس كل صفحات التقرير تكتب فيها مثلاً .

تقرير بنتائج البحث .

الثالث - detail

و هو الأهم و سوف نتكلم عنه آخر شي.

الرابع Page footer

تذبيل الصفحات

الخامس report footer

تذبيل التقرير

.... الأهم الآن ماذا نفعل في القسم الثالث detail

و ببساطة شديدة نفتح واجهة data enviroment ثم نفتح connection1 ثم command1

ثم نحدد الحقل الأول مثلاً (( الاسم )) و نسحبة إلى ان نصل به إلى القسم الثالث ثم نقوم بإفلاته

و نعمل نفس الشيء مع بقية الحقول .... ثم نقوم بتنسيق التقرير .. على ذوقنا.

رابعاً - إظهار التقرير :

الآن نقوم بوضع زر أمر في الفورم تحت عنوان طباعة

و نكتب فيه الكود التالي

datareport1.show

نفذ البرنامج و اسمتمع .....

خامساً - التقرير الحي :

إلى الآن فمن المفترض أنك قد قمت بإنشاء تقرير رائع ....

و لكن ألا تلاحظ ان تقرير يعرض كل السجلات ...

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

الآن سوف نتعلم كيف نجعل التقرير مرتبط بجملة SQL

إذا كنت قد لاحظت سير الدرس فلا بد و انك قد انبهت ان التقرير قد ارتبط بقاعدة البيانات عن طريق

data environment و ببساطة لتطبيق استعلام على التقرير يكفي تطبيقه على الـ data environment

و لتطبيق الاستعلام عليها نضيف الكود التالي إلى كود البحث .

  With DataEnvironment1
          .Commands(1).CommandType = adCmdText
          .Commands(1).CommandText = "هنا ضع جملة الاستعلام  "
          .Commands(1).Execute
        If .rsCommand1.State = 1 Then
          .rsCommand1.Close
        End If
  End With

ملاحظات عامة :

للفهم الأكبر يجب متابعة الدرس بالتسلسل الموجود عليه ...

و التطبيق العملي خير وسيلة للتعلم ....

و تذكر أنه إذا لم تخطأ فإنك لن تصيب ....

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

كما أرجو من الله تعالى أن لا تنسوني من دعوة صالحة في ظهر الغيب

أخوكم في الله : مختار سيد صالح

#2

شكراً أخي هذا من بعض ما أبحث عنه

#3

إذا أردت ان تشكرني فلا تقل شكراً

بل قم بالتسجيل في منتدياتي فهذا أكبر شكر لي ....

تحياتي

#4

أرجو منك أنت أيضاً أن تشارك في منتدياتيك

#5

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

شكرا يا اخ مختار على هذا الدرس القيم

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

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

#6

اريد ان اعرف كيفية تغيير حجم الورقة

والهوامش

وطباعة الورقة بالعرض وليس بالطول

شكرا اخى

#7

الف الف شكر لك وجزاك الله خير

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

هو اللي كنت ابحث عنة الف شكر لك

C:\Documents and Settings\محمد النجيمي\My Documents\My Pictures\family

#8

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

#9

اولا أشكر الاخ مختارالسيد على المبذول

وأشكر الجميع

وأشكر الاخ Hazeim على الحكمة الموجوده في التوقيع والله جلست أتـأمل فيها وصح كلامك 100%

#10

شكرا على المجهود الجبار هذا واتمنى لك التوفيق

#11

مشكلة؟؟ :(

04_10_05_10_22_00_1128446520_.jpg

04_10_05_10_21_43_1128446503_1.jpg

#12

ما هى عبارة ال SQL التى وضعتها فى Text3.text

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#13

شكراً جزيلاً لقد حلت المشكلة وكان سببها عبارة SQL

حولتها إلى

Select * from Table Where Col1 = ' " & Text1.Text & " ' "

لكن هنالك مشكلة جديدة الآن ألا وهي:

بعدما أقوم بطباعة التقرير أعود لأختيار بيانات أخرى لأطبعها تظهر لي فورم طباعة التقرير بالمعلومات السابقة

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

أرجو أن ألا أكون أطلت عليكم وشكرا لوقتكم المبذول

#15

هل مات الموضوع عند انتقاله إلى هذا القسم!!!!!!!!!!!!!!!!!!

<_< <_< <_< <_< <_< <_< <_< <_< <_< <_<

#16

هو أحسن من غيره

الأحسن منو ماتو..

أنا مش عارف شو اللي بيصير في هالمنتدي..."نقد"!!!!!!!!!!!!!!!!!!

::::التوقيع::::

موقع ممتاز

وان شاء الله يفيد الجميع

وشكرا

؟؟لماذا لا يصل الايميل المرسل من صفحتي الي الهوتميل؟؟

مستوي الجدية في المواضيع المطروحة

لا اله الا الله محمد رسول الله

#17

اريد ان اعرف هل يمكن التحكم في شكل طباعة التقارير كما اريد ان اعرض التقارير بالعرض

هل يمكن ذلك

الناس انواع

رجل يعلم ويعلم انه يعلم فهذا عالم فوقروه

رجل يعلم ولا يعلم انه يعلم فهذا غافل فإيقزوه

رجل لا يعلم ويعلم انه لا يعلم فهذا جاهل فعلموه

رجل لا يعلم ولا يعلم انه يعلم فهذا احمق فابتعدو عنه

#18

درس حلو كتير :D

Mimo

040.gif

#19

بارك الله في هذا المجهود

أولا -- لست أرى السعادة جمع مال ** ولكن التقي هو السعيد

ثانيا-- وإن ضاق رزق اليوم فاصبر إلى غد *** عسى نكبات الدهر عنك تزول

ثالثا-- أصون عرضي بمالي لا أدنسه *** لا بارك الله بعد العرض بالمال

وأخيرا -- قال تعالى ( يوم لا ينفع مال ولا بنون إلا من أتى الله بقلب سليم )

#20
اقتباس
لكن هنالك مشكلة جديدة الآن ألا وهي:

بعدما أقوم بطباعة التقرير أعود لأختيار بيانات أخرى لأطبعها تظهر لي فورم طباعة التقرير بالمعلومات السابقة

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

أرجو أن ألا أكون أطلت عليكم وشكرا لوقتكم المبذول

إذا دققت قليلاً علي كلامك تجد أن معني هذا الكلام أن الأمر Command المرتبط مع Data Environment يطالبك بإغلاقة ثم فتحة من جديد ، وليس مع الـ DED فقط بل مع أي آداة أخري مثل ADODB - أو ADODC أو حتي RDO أو DAO !!!

بمعني ، يجب أن يتم إغلاق الـ Recordset وفتحة من جديد لجلب البيانات الجديدة !!!

علي العموم أنظر المثال المرفق كي تعلم كيف يتم ذلك بالـ DED .

	With DED.rsRep_Dep
		If (.State = 1) Then .Close
		.Open
	End With
	repDep.Show

--------------------------------------------------------------------------------------------

اقتباس
هل مات الموضوع عند انتقاله إلى هذا القسم
اقتباس
هو أحسن من غيره

الأحسن منو ماتو..

أنا مش عارف شو اللي بيصير في هالمنتدي..."نقد"!!!!!!!!!!!!!!!!!!

علي فكرة أنا ألاحظ أن أقسام الفيجوال بيزيك في المنتدي أو أي منتدي آخر نشط بطريقة واضحة .. لكن في المنتدي أن أري بعض أقسام غير نشطة وأأمل من الله أن يكون أحسن من هذا الوضع ، ولكن في نفس الوقت لا تظلموا الأعضاء حيث أنكم أخطأطم خطأ أي مبتديء ( مع إحترامي للجميع )

أولاً ، هذه المشكلة قد تم عرضها وإضافة مشاركات عليها كثيراً ، بمعني لو أحد منكم فكر يبحث بالمنتدي بحث جيد لوجد الأمثلة المطلوبة ، أو علي الأقل يحاول البحث وبعد ذلك إذا لم يتمكن من إيجاد نتائج يلجأ الي عرض سؤالة بالمنتدي .

ثانياً ، ليس كل المبرمجون يتعاملون مع هذه الأدوات ، حيث أنها ليست أفضل الأدوات وصدقوني ( هتيجوا اليوم وتفتكروا الكلام دة وستتركوها وتلجأوا الي الأفضل ) .

أترككم مع المثال حيث يحتوي علي مثالين ، الأول تحديث الكائن Command ، والثاني بناء تقرير بالعرض !!!

شكراً

Simble.rar

تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 22 فبراير 2008 في 17:44

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#21

الاخوة الافاضل

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

حيث عندما اقوم بعمل اختبار الاتصال بقاعدة البيانات

تظهر رسال بان خطأ في الاتصال لوجود كلمة مرور بقاعدة البيانات

وشكراً

#22

up

#23

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

شكرًا جزيلا أخي على هذه المعلومات القيمة وبالمناسبة عندي سوءالين في هاذا الموضوع
أريدإدخال رقم بالتتابع لعدد السجلات في التقرير مثلا من 1 إلى 40
كما نعمل في عدد الصفحات ‎%‎P هل من الممكن في الأرقام المتتابعة فعل  ذالك 

والسوءال الثاني وهو في مؤخرة

التقرير وضغت فيه محل الإمضاء و التاريخ في بعض الأحيان أطبع التقرير تماما وفي بعض الاحيان يتغير موضع التاريخ والامضاء فينتقل إلى ورقة فارغة ليس فيها معطيات أعني إذا كانت المعطيات فيها 25 صفحة فتطبع 24 صفحة تماما و الصفحة الاخيرة  أعني تتمة 25 تخرج فارغة ليس فيها سوى التاريخ والامضاء هل من الممكن جعل

التاريخ والامضاء ثابتا مهما كانت عدد المعطيات
جزاكم الله كل خير?

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