<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب  - دورة بناء برنامج لإدارة السوبر ماركت من الألف إلى الياء]]></title>
		<link>https://vb4arb.com/vb/</link>
		<description><![CDATA[منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب  - https://vb4arb.com/vb]]></description>
		<pubDate>Wed, 22 Apr 2026 21:56:01 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5722</link>
			<pubDate>Mon, 15 Oct 2012 05:10:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5722</guid>
			<description><![CDATA[<span style="color: #0000ff;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span></span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">مشكلة تحويل البرنامج إلى كود مرة أخرى .</div>
<br />
</span><br />
<div style="text-align: right;" class="mycode_align">تتوفر في الإنترنت برامج متنوعة تقوم بتحويل التطبيقات إلى ملفات بالكود من جديد ما يعني ضياع حق المبرمج بسهولة ، وعملياً لا يوجد حل كامل لهذه المشكلة ، لأن الطريقة العكسية لعمل ال <span style="font-family: Arial;" class="mycode_font">Compiling</span> هي التي تفك الضغط ، وبذا يعود البرنامج كما كان ، وتفاقم الامر مع الاصدارة .<span style="font-family: Arial;" class="mycode_font">net</span>من الفيجوال بيسك نظراً للطريقة التي تعتمد عليها البرامج المصنوعة تحت بيئة التطوير هذه ، ولذا تقوم مايكروسوفت دورياً بوضع برامج تشفير - إن صح التعبير - تقوم بتصعيب هذه العملية ، وكما توفر بعض الشركات برامج وتقنيات للحفاظ على حقوق المبرمج ، ولكن العلاقة مستمرة في شد وجذب بصورة مستمرة .<br />
<br />
هناك أيضاً اتفاقيات البرمجيات مفتوحة المصدرمثل <span style="font-family: Arial;" class="mycode_font">GPL </span>والتي تعني <span style="font-family: Arial;" class="mycode_font">Genral Public Licence </span>والتي تأتي مع أغلب برمجيات المفتوحة المصدر ، باختصار كل ما في الموضوع هو انك تقوم بتوفير برنامجك مع ال <span style="font-family: Arial;" class="mycode_font">Source Code</span> الخاص به للجميع ، ويمكنك أن تطلب ثمناً لذك لكن بشرط اعطاء الكود مع البرنامج ، يمكن التعديل عليه واضافة مزايا أخرى مما يجعل تطوير البرنامج أسرع ، لا تقلق من ذلك فلن يضيع حقك بكل تأكيد ، ولن تجد شخصاً يحاول أن يكسر حماية برنامجك على أي حال . من نظم التشغيل التي تتبنى هذا الاتجاه عائلة <span style="font-family: Arial;" class="mycode_font">Unix</span> أيضاً من لغات البرمجة التي تسير في هذا المنهاج <span style="font-family: Arial;" class="mycode_font">Java</span> و <span style="font-family: Arial;" class="mycode_font">PHP</span> . ومن البرامج الشهيرة برامج مثل متصفحات <span style="font-family: Arial;" class="mycode_font">Mozilla </span>و <span style="font-family: Arial;" class="mycode_font">FireFox</span> سيرفرات <span style="font-family: Arial;" class="mycode_font">Apache </span>وغيرها .<br />
<br />
ربما إن أسعفنا الوقت في دروس قادمة أن نضع مقدمة لمثل هذه العمليات في قسم التقنية العام حيث ترتبط هذه العملية ارتباطاً وثيقاً بالأسمبلي ، لست محترفاً ولا حتى مبتدئاً على أية حال ولكني سأضع بعض المعلومات التي قد تكون هامة للمبرمجين ...</div>
<br />
<br />
[b]<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">تشغيل برنامج التنصيب تلقائياً بمجرد ادخال الاسطوانة - الدرس الأخير - .</div>
</span><br />
<div style="text-align: right;" class="mycode_align">سيكون هذا الموضوع الخفيف هو ختام دروسنا في هذه السلسلة إن شاء الله .<br />
<br />
لعمل هذه الخطوة البسيطة لا يلزمنا سوى فتح مستند نصي فارغ . غير الاسم إلى : <span style="font-family: Arial;" class="mycode_font">AUTORUN.INF</span> .<br />
<br />
والآن قم بفتح هذا الملف بواسطة المفكرة <span style="font-family: Arial;" class="mycode_font">NotePad</span> ، وأكتب هذين السطرين بداخله :<br />
<br />
<span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[autorun] <br />
open=Setup.exe</code></div></div></span><br />
<br />
وانسخها وضعها مع البرنامج في نفس مسار الملف <span style="font-family: Arial;" class="mycode_font">Setup.exe</span> .<br />
وهذه الطريقة تصلح مع جميع انواع الملفات وليس التطبيقات فحسب .</div>
<br />
<br />
<br />
[b]<span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بهذا الدرس البسيط نكون بحمد الله قد اتممنا هذا الجزء من الدروة .</div>
</span><br />
<span style="color: #0000ff;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div>
</span></span>[/b][/b]]]></description>
			<content:encoded><![CDATA[<span style="color: #0000ff;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span></span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">مشكلة تحويل البرنامج إلى كود مرة أخرى .</div>
<br />
</span><br />
<div style="text-align: right;" class="mycode_align">تتوفر في الإنترنت برامج متنوعة تقوم بتحويل التطبيقات إلى ملفات بالكود من جديد ما يعني ضياع حق المبرمج بسهولة ، وعملياً لا يوجد حل كامل لهذه المشكلة ، لأن الطريقة العكسية لعمل ال <span style="font-family: Arial;" class="mycode_font">Compiling</span> هي التي تفك الضغط ، وبذا يعود البرنامج كما كان ، وتفاقم الامر مع الاصدارة .<span style="font-family: Arial;" class="mycode_font">net</span>من الفيجوال بيسك نظراً للطريقة التي تعتمد عليها البرامج المصنوعة تحت بيئة التطوير هذه ، ولذا تقوم مايكروسوفت دورياً بوضع برامج تشفير - إن صح التعبير - تقوم بتصعيب هذه العملية ، وكما توفر بعض الشركات برامج وتقنيات للحفاظ على حقوق المبرمج ، ولكن العلاقة مستمرة في شد وجذب بصورة مستمرة .<br />
<br />
هناك أيضاً اتفاقيات البرمجيات مفتوحة المصدرمثل <span style="font-family: Arial;" class="mycode_font">GPL </span>والتي تعني <span style="font-family: Arial;" class="mycode_font">Genral Public Licence </span>والتي تأتي مع أغلب برمجيات المفتوحة المصدر ، باختصار كل ما في الموضوع هو انك تقوم بتوفير برنامجك مع ال <span style="font-family: Arial;" class="mycode_font">Source Code</span> الخاص به للجميع ، ويمكنك أن تطلب ثمناً لذك لكن بشرط اعطاء الكود مع البرنامج ، يمكن التعديل عليه واضافة مزايا أخرى مما يجعل تطوير البرنامج أسرع ، لا تقلق من ذلك فلن يضيع حقك بكل تأكيد ، ولن تجد شخصاً يحاول أن يكسر حماية برنامجك على أي حال . من نظم التشغيل التي تتبنى هذا الاتجاه عائلة <span style="font-family: Arial;" class="mycode_font">Unix</span> أيضاً من لغات البرمجة التي تسير في هذا المنهاج <span style="font-family: Arial;" class="mycode_font">Java</span> و <span style="font-family: Arial;" class="mycode_font">PHP</span> . ومن البرامج الشهيرة برامج مثل متصفحات <span style="font-family: Arial;" class="mycode_font">Mozilla </span>و <span style="font-family: Arial;" class="mycode_font">FireFox</span> سيرفرات <span style="font-family: Arial;" class="mycode_font">Apache </span>وغيرها .<br />
<br />
ربما إن أسعفنا الوقت في دروس قادمة أن نضع مقدمة لمثل هذه العمليات في قسم التقنية العام حيث ترتبط هذه العملية ارتباطاً وثيقاً بالأسمبلي ، لست محترفاً ولا حتى مبتدئاً على أية حال ولكني سأضع بعض المعلومات التي قد تكون هامة للمبرمجين ...</div>
<br />
<br />
[b]<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">تشغيل برنامج التنصيب تلقائياً بمجرد ادخال الاسطوانة - الدرس الأخير - .</div>
</span><br />
<div style="text-align: right;" class="mycode_align">سيكون هذا الموضوع الخفيف هو ختام دروسنا في هذه السلسلة إن شاء الله .<br />
<br />
لعمل هذه الخطوة البسيطة لا يلزمنا سوى فتح مستند نصي فارغ . غير الاسم إلى : <span style="font-family: Arial;" class="mycode_font">AUTORUN.INF</span> .<br />
<br />
والآن قم بفتح هذا الملف بواسطة المفكرة <span style="font-family: Arial;" class="mycode_font">NotePad</span> ، وأكتب هذين السطرين بداخله :<br />
<br />
<span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[autorun] <br />
open=Setup.exe</code></div></div></span><br />
<br />
وانسخها وضعها مع البرنامج في نفس مسار الملف <span style="font-family: Arial;" class="mycode_font">Setup.exe</span> .<br />
وهذه الطريقة تصلح مع جميع انواع الملفات وليس التطبيقات فحسب .</div>
<br />
<br />
<br />
[b]<span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بهذا الدرس البسيط نكون بحمد الله قد اتممنا هذا الجزء من الدروة .</div>
</span><br />
<span style="color: #0000ff;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div>
</span></span>[/b][/b]]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5721</link>
			<pubDate>Mon, 15 Oct 2012 05:08:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5721</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></div>
<div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
<br />
<br />
<br />
<div style="text-align: right;" class="mycode_align">عمل ( تعليب ! ) </div>
<br />
<div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Package</span></span><span style="color: #ff0000;" class="mycode_color"> لعمل نسخة تنصيب </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Setup</span></span><span style="color: #ff0000;" class="mycode_color"> من البرنامج .</span><br />
</div>
<br />
<br />
<br />
<div style="text-align: right;" class="mycode_align">إذا قمت ببرمجة برنامجك باستخدام فيجوال بيسك ثم قمت بتحويله إلى تطبيق <span style="font-family: Arial;" class="mycode_font">Exe</span> وحاولت تشغيله على جهاز آخر فإنك لن تستطيع ، وإذا كان الجهاز يحتوي على نسخة من ملفات تشغيل الفيجوال بيسك فإنك ستواجه مشاكل فيما إذا كنت قد استخدمت أدوات غير افتراضية ، أو على الأقل ستعاني من نقل قاعدة البيانات مع البرنامج مع الملفات الملحقة كلما قررت تغيير مكان البرنامج .<br />
<br />
أما التعليب - إن صحت الترجمة لكلمة <span style="font-family: Arial;" class="mycode_font">Package</span> - فإنه يمكنك من توفير ملف واحد يحتوي على جميع ملفات برنامجك ، وبمجرد تشغيله قوم تلقائياً بانزال كافة مكونات برنامجك على النظام ، ويضيف لك البرنامج في قائمة البرامج ، كما توفر برامج متقدمة لهذا الغرض توفير اختصار على سطح المكتب وبرمجة متقدمة للتحميل واعادة تشغيل عند الطلب ، وكلمات مرور وتسجيل المنتج .<br />
<br />
لن نتوسع في استخدام برنامج غير متوفر ، بل سنستخدم برنامجاً مرفقاً مع الفيجوال بيسك بصورة افتراضية ، وهو برنامج <span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Package &amp; Deployment Wizerd</span></span>والموجود ضمن قائمة الفيجوال بيسك تحت قسم <span style="font-family: Arial;" class="mycode_font">Microsoft Visual Basic 6.0</span> .<br />
<br />
والآن سنبدأ بالعمل على هذا البرنامج ، وبمجرد تشغيل البرنامج تظهر لنا شاشة تطلب منا في مقدمتها مسار البرنامج الذي نريد عمل <span style="font-family: Arial;" class="mycode_font">Setup</span> له ، وهناك نضغط على <span style="font-family: Arial;" class="mycode_font">Browse</span> ونختار البرنامج الخاص بنا . ثم نقوم بالضغط على <span style="font-family: Arial;" class="mycode_font">Package</span> .<br />
<br />
يقوم البرنامج بفحص النسخة التي وضعناها ، فإذا لم يجد نسخة <span style="font-family: Arial;" class="mycode_font">exe</span> أو إذا وجد تعديلاً في النسخة عن ملف <span style="font-family: Arial;" class="mycode_font">exe</span> معها فإنه يطلب منك ارشاده إلى عمل <span style="font-family: Arial;" class="mycode_font">Compiling</span> من جديد أو الاحتفاظ بنسخة <span style="font-family: Arial;" class="mycode_font">exe</span> الحالية ، أو وضع مسار نسخة <span style="font-family: Arial;" class="mycode_font">exe</span> ترغب في استخدامها ، أما إذا لم تكن هناك فروق فإنه يستمر ، وينتقل للخطوة التالية .<br />
<br />
في الخطوة التالية سوف يسألك فيما إذا كنت ترغب في استخدام خطوات سابقة ، أو الاختيار <span style="font-family: Arial;" class="mycode_font">None</span> ونستفيد من هذه الخاصية في حالة عمل <span style="font-family: Arial;" class="mycode_font">Setup</span> لنفس البرنامج أكثر من مرة ، حيث لا تحتاج في كل مرة إلى اضافة الأدوات من جديد بل استخدم خطوات سابقة وسوف يضيفها لك تلقائياً . مبدئياً سوف نختار <span style="font-family: Arial;" class="mycode_font">None</span> .<br />
<br />
لاحقاً سوف نقوم بتحديد نوع <span style="font-family: Arial;" class="mycode_font">Package</span> الذي نرغب فيه ، وسوف نحتار النوع الأول <span style="font-family: Arial;" class="mycode_font">Standerd Setup Package</span> .<br />
ثم يطلب منك البرنامج المكان الذي تود عمل ملف التنصيب فيه ، ضع أي مسار وقم لاحقاً بنقله كما تحب ، كما تستطيع وضعه على شبكة <span style="font-family: Arial;" class="mycode_font">Network</span> . وفيما إذا كان المسار يحتوي على مجلد غير موجود فسوف يخيرك بين انشاءه ، أو وضع مسار موجود أصلاً .<br />
<br />
بعدها تظهر شاشة المكونات .<br />
في هذه الشاشة سوف يقوم الفيجوال بيسك تلقائياً باضافة الملفات التي يتطلب برنامجك تشغيلها إلى هذه القائمة ، وتستطيع الغاء ما لا تحتاجه منها عن طريق ازالة التحديد ، كما أنه سيكون عليك اضافة العناصر التي تحتاجها وهي ليست موجودة في القائمة ، ويشمل ذلك ما يلي :</div>
<br />
<div style="text-align: right;" class="mycode_align">* ملفات قاعدة البيانات حيث نضغط زر </div>
<br />
<div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Add</span></span><span style="color: #000080;" class="mycode_color"> ثم نختار </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">All Files</span></span><span style="color: #000080;" class="mycode_color"> من أسفل الشاشة ونختار ملف قاعدة البيانات .<br />
* الخطوط غير الافتراضية ، حيث يتم تحميلها في جهاز المستخدم .<br />
* الصور والأصوات وملفات الفيديو التي يحتاجها برنامجك .<br />
* ملفات المساعدة والتعليمات مثل ملف </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Help.rtf</span></span><span style="color: #000080;" class="mycode_color"> مع برنامجنا .<br />
* الأدوات </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">ocx</span></span><span style="color: #000080;" class="mycode_color"> وملفات النظام </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">dll</span></span><span style="color: #000080;" class="mycode_color"> والتي لا توجد في القائمة مثل استخدام أزرار أو قوائم خارجية .<br />
* ملفات الريسحتري </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">reg</span></span><span style="color: #000080;" class="mycode_color"> وغيرها .</span><br />
</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">وبعد اضافة ما نحتاجه وهو في برنامجنا فقط ملفي <span style="font-family: Arial;" class="mycode_font">Help.rtf</span> و <span style="font-family: Arial;" class="mycode_font">db1.mdb</span> نختار الانتقال للخطوة التالية <span style="font-family: Arial;" class="mycode_font">Next</span> .<br />
في الخطوة التالية يطلب منك تحديد طبيعة الملف وهل هو ملف واحد فقط بغض النظر عن حجمه أم مقسم بحجم معين لوضعه على اقراص مرنة <span style="font-family: Arial;" class="mycode_font">Disks</span> مثلاً . وفي الخطوة اللاحقة سوف يطلب اليك تحديد اسم لهذا التنصيب يظهر كعنوان له ، وسنختار "البائع الذكي" .<br />
<br />
والآن ننتقل للخطوة التالية ، حيث سيطلب منك تحديد شكل ظهور البرنامج في قائمة البرامج ، حيث تستطيع اضافة عنصر جديد ، أو حتى مجموعة جديدة ، ولتجربة ذلك نقوم باضافة ملف التعليمات مع ملف البرنامج من خلال الضغط على زر <span style="font-family: Arial;" class="mycode_font">New Item</span> ، ونكتب في الخانة الأولى اسم الملف وليكن "تعليمات البرنامج" ثم نختار الملف ومكان تشغيله من الخانتين اللاحقتين ... كما تستطيع تعديل خصائص أي عنصر من خلال الضغط على زر <span style="font-family: Arial;" class="mycode_font">Propertires</span> .<br />
<br />
في الشاشة التالية يحدد البرنامج أماكن وضع المكونات المحددة على جهاز المستخدم ، فتلاحظ وضع ملفات قاعدة البيانات والتعليمات في مسار البرنامج <span style="font-family: Arial;" class="mycode_font">AppPath</span> ، والخطوط في <span style="font-family: Arial;" class="mycode_font">Fonts</span> ، ومكونات النظام في <span style="font-family: Arial;" class="mycode_font">System</span> ، وتستطيع تغييرها إذا أردت .<br />
<br />
بالضغط على <span style="font-family: Arial;" class="mycode_font">Next</span> سوف يخبرك البرنامج بأن هناك قائمة من المكونات يمكن استخدامها كـ <span style="font-family: Arial;" class="mycode_font">Shared Files</span> وهي ملفات يمكن للبرامج الأخرى استخدامها مثل الخطوط وغيرها ، ونستفيد من ذلك التحديد أنه في حالة الحذف يتم التأكيد على حذف هذه المكونات أكثر من مرة نظراً لاحتمال وجود برامج أخرى تستخدمها . ولعلك لاحظت ذلك في خلال عمليات تشغيلك وحذفك لبرامج سابقة .<br />
<br />
الخطوة الأخيرة هو تحديد اسم لهذه الخطوات التي قمت بها ، ومن خلال هذا الاسم تستطيع تجتنب تكرار كل هذه الخطوات مع كل مرة ، حيث تكون موجودة افتراضياً مع امكانية التعديل فيها بالطبع .<br />
<br />
أخيراً قم بالضغط على <span style="font-family: Arial;" class="mycode_font">Finish</span> وهكذا تكون قد انتهيت من عمل ملف <span style="font-family: Arial;" class="mycode_font">Setup</span> لبرنامجك .</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">في نهاية درسنا عن عمل </div>
<br />
<div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Setup</span></span><span style="color: #0000ff;" class="mycode_color"> للبرنامج سأشير إلى برنامجين هما من أشهر البرامج في مجال عمل </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Setup</span></span><span style="color: #0000ff;" class="mycode_color"> لبرامج الفيجوال بيسك ولغيرها ، هما برنامجا </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Setup Factory</span></span><span style="color: #0000ff;" class="mycode_color"> وبرنامج </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Install Shild</span></span><span style="color: #0000ff;" class="mycode_color"> .<br />
<br />
يحتوي هذان البرنامجان على مزايا اضافية عديدة ، مثل تحديد الشاشات وعددها وأنواعها وتصميمها ، اختيار عمل اختصارات على سطح المكتب وخلافه ، تحكم كامل في الأدوات والملفات المرفقة ، التسجيل في الريجستري ووضع عناوين وازالة مفاتيح وخلافه ، اضافة كلمات مرور وانواع </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">install</span></span><span style="color: #0000ff;" class="mycode_color"> ، اتاحة كتابة تعليمات برمجية بسيطة حيث يحتوي كل منهما على </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Engine</span></span><span style="color: #0000ff;" class="mycode_color"> خاص به لتفسير بعض الأوامر ، حيث يمكنك انشاء متغيرات والتأكد من قيمها وخلافه .</span><br />
</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">كما يوجد في الملفات المرفقةبرنامج لمعرفة الملفات التي يحتاجها برنامجك للعمل من برمجة أحد اعضاء منتدى <span style="font-family: Arial;" class="mycode_font">vb4arab</span> تحت اسم ( اعرف الملفات المرفقة ) ولا أعرف اسمه ، أتمنى أن يخبرني إن وصل إلى قراءة هذه السطور أو يخبرني عنه من يعرف . مع جزيل الشكر له وللجميع .</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=6711" target="_blank" title="">Files.zip</a> (الحجم : 68.35 ك ب / التحميلات : 194)
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></div>
<div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
<br />
<br />
<br />
<div style="text-align: right;" class="mycode_align">عمل ( تعليب ! ) </div>
<br />
<div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Package</span></span><span style="color: #ff0000;" class="mycode_color"> لعمل نسخة تنصيب </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Setup</span></span><span style="color: #ff0000;" class="mycode_color"> من البرنامج .</span><br />
</div>
<br />
<br />
<br />
<div style="text-align: right;" class="mycode_align">إذا قمت ببرمجة برنامجك باستخدام فيجوال بيسك ثم قمت بتحويله إلى تطبيق <span style="font-family: Arial;" class="mycode_font">Exe</span> وحاولت تشغيله على جهاز آخر فإنك لن تستطيع ، وإذا كان الجهاز يحتوي على نسخة من ملفات تشغيل الفيجوال بيسك فإنك ستواجه مشاكل فيما إذا كنت قد استخدمت أدوات غير افتراضية ، أو على الأقل ستعاني من نقل قاعدة البيانات مع البرنامج مع الملفات الملحقة كلما قررت تغيير مكان البرنامج .<br />
<br />
أما التعليب - إن صحت الترجمة لكلمة <span style="font-family: Arial;" class="mycode_font">Package</span> - فإنه يمكنك من توفير ملف واحد يحتوي على جميع ملفات برنامجك ، وبمجرد تشغيله قوم تلقائياً بانزال كافة مكونات برنامجك على النظام ، ويضيف لك البرنامج في قائمة البرامج ، كما توفر برامج متقدمة لهذا الغرض توفير اختصار على سطح المكتب وبرمجة متقدمة للتحميل واعادة تشغيل عند الطلب ، وكلمات مرور وتسجيل المنتج .<br />
<br />
لن نتوسع في استخدام برنامج غير متوفر ، بل سنستخدم برنامجاً مرفقاً مع الفيجوال بيسك بصورة افتراضية ، وهو برنامج <span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Package &amp; Deployment Wizerd</span></span>والموجود ضمن قائمة الفيجوال بيسك تحت قسم <span style="font-family: Arial;" class="mycode_font">Microsoft Visual Basic 6.0</span> .<br />
<br />
والآن سنبدأ بالعمل على هذا البرنامج ، وبمجرد تشغيل البرنامج تظهر لنا شاشة تطلب منا في مقدمتها مسار البرنامج الذي نريد عمل <span style="font-family: Arial;" class="mycode_font">Setup</span> له ، وهناك نضغط على <span style="font-family: Arial;" class="mycode_font">Browse</span> ونختار البرنامج الخاص بنا . ثم نقوم بالضغط على <span style="font-family: Arial;" class="mycode_font">Package</span> .<br />
<br />
يقوم البرنامج بفحص النسخة التي وضعناها ، فإذا لم يجد نسخة <span style="font-family: Arial;" class="mycode_font">exe</span> أو إذا وجد تعديلاً في النسخة عن ملف <span style="font-family: Arial;" class="mycode_font">exe</span> معها فإنه يطلب منك ارشاده إلى عمل <span style="font-family: Arial;" class="mycode_font">Compiling</span> من جديد أو الاحتفاظ بنسخة <span style="font-family: Arial;" class="mycode_font">exe</span> الحالية ، أو وضع مسار نسخة <span style="font-family: Arial;" class="mycode_font">exe</span> ترغب في استخدامها ، أما إذا لم تكن هناك فروق فإنه يستمر ، وينتقل للخطوة التالية .<br />
<br />
في الخطوة التالية سوف يسألك فيما إذا كنت ترغب في استخدام خطوات سابقة ، أو الاختيار <span style="font-family: Arial;" class="mycode_font">None</span> ونستفيد من هذه الخاصية في حالة عمل <span style="font-family: Arial;" class="mycode_font">Setup</span> لنفس البرنامج أكثر من مرة ، حيث لا تحتاج في كل مرة إلى اضافة الأدوات من جديد بل استخدم خطوات سابقة وسوف يضيفها لك تلقائياً . مبدئياً سوف نختار <span style="font-family: Arial;" class="mycode_font">None</span> .<br />
<br />
لاحقاً سوف نقوم بتحديد نوع <span style="font-family: Arial;" class="mycode_font">Package</span> الذي نرغب فيه ، وسوف نحتار النوع الأول <span style="font-family: Arial;" class="mycode_font">Standerd Setup Package</span> .<br />
ثم يطلب منك البرنامج المكان الذي تود عمل ملف التنصيب فيه ، ضع أي مسار وقم لاحقاً بنقله كما تحب ، كما تستطيع وضعه على شبكة <span style="font-family: Arial;" class="mycode_font">Network</span> . وفيما إذا كان المسار يحتوي على مجلد غير موجود فسوف يخيرك بين انشاءه ، أو وضع مسار موجود أصلاً .<br />
<br />
بعدها تظهر شاشة المكونات .<br />
في هذه الشاشة سوف يقوم الفيجوال بيسك تلقائياً باضافة الملفات التي يتطلب برنامجك تشغيلها إلى هذه القائمة ، وتستطيع الغاء ما لا تحتاجه منها عن طريق ازالة التحديد ، كما أنه سيكون عليك اضافة العناصر التي تحتاجها وهي ليست موجودة في القائمة ، ويشمل ذلك ما يلي :</div>
<br />
<div style="text-align: right;" class="mycode_align">* ملفات قاعدة البيانات حيث نضغط زر </div>
<br />
<div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Add</span></span><span style="color: #000080;" class="mycode_color"> ثم نختار </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">All Files</span></span><span style="color: #000080;" class="mycode_color"> من أسفل الشاشة ونختار ملف قاعدة البيانات .<br />
* الخطوط غير الافتراضية ، حيث يتم تحميلها في جهاز المستخدم .<br />
* الصور والأصوات وملفات الفيديو التي يحتاجها برنامجك .<br />
* ملفات المساعدة والتعليمات مثل ملف </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Help.rtf</span></span><span style="color: #000080;" class="mycode_color"> مع برنامجنا .<br />
* الأدوات </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">ocx</span></span><span style="color: #000080;" class="mycode_color"> وملفات النظام </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">dll</span></span><span style="color: #000080;" class="mycode_color"> والتي لا توجد في القائمة مثل استخدام أزرار أو قوائم خارجية .<br />
* ملفات الريسحتري </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">reg</span></span><span style="color: #000080;" class="mycode_color"> وغيرها .</span><br />
</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">وبعد اضافة ما نحتاجه وهو في برنامجنا فقط ملفي <span style="font-family: Arial;" class="mycode_font">Help.rtf</span> و <span style="font-family: Arial;" class="mycode_font">db1.mdb</span> نختار الانتقال للخطوة التالية <span style="font-family: Arial;" class="mycode_font">Next</span> .<br />
في الخطوة التالية يطلب منك تحديد طبيعة الملف وهل هو ملف واحد فقط بغض النظر عن حجمه أم مقسم بحجم معين لوضعه على اقراص مرنة <span style="font-family: Arial;" class="mycode_font">Disks</span> مثلاً . وفي الخطوة اللاحقة سوف يطلب اليك تحديد اسم لهذا التنصيب يظهر كعنوان له ، وسنختار "البائع الذكي" .<br />
<br />
والآن ننتقل للخطوة التالية ، حيث سيطلب منك تحديد شكل ظهور البرنامج في قائمة البرامج ، حيث تستطيع اضافة عنصر جديد ، أو حتى مجموعة جديدة ، ولتجربة ذلك نقوم باضافة ملف التعليمات مع ملف البرنامج من خلال الضغط على زر <span style="font-family: Arial;" class="mycode_font">New Item</span> ، ونكتب في الخانة الأولى اسم الملف وليكن "تعليمات البرنامج" ثم نختار الملف ومكان تشغيله من الخانتين اللاحقتين ... كما تستطيع تعديل خصائص أي عنصر من خلال الضغط على زر <span style="font-family: Arial;" class="mycode_font">Propertires</span> .<br />
<br />
في الشاشة التالية يحدد البرنامج أماكن وضع المكونات المحددة على جهاز المستخدم ، فتلاحظ وضع ملفات قاعدة البيانات والتعليمات في مسار البرنامج <span style="font-family: Arial;" class="mycode_font">AppPath</span> ، والخطوط في <span style="font-family: Arial;" class="mycode_font">Fonts</span> ، ومكونات النظام في <span style="font-family: Arial;" class="mycode_font">System</span> ، وتستطيع تغييرها إذا أردت .<br />
<br />
بالضغط على <span style="font-family: Arial;" class="mycode_font">Next</span> سوف يخبرك البرنامج بأن هناك قائمة من المكونات يمكن استخدامها كـ <span style="font-family: Arial;" class="mycode_font">Shared Files</span> وهي ملفات يمكن للبرامج الأخرى استخدامها مثل الخطوط وغيرها ، ونستفيد من ذلك التحديد أنه في حالة الحذف يتم التأكيد على حذف هذه المكونات أكثر من مرة نظراً لاحتمال وجود برامج أخرى تستخدمها . ولعلك لاحظت ذلك في خلال عمليات تشغيلك وحذفك لبرامج سابقة .<br />
<br />
الخطوة الأخيرة هو تحديد اسم لهذه الخطوات التي قمت بها ، ومن خلال هذا الاسم تستطيع تجتنب تكرار كل هذه الخطوات مع كل مرة ، حيث تكون موجودة افتراضياً مع امكانية التعديل فيها بالطبع .<br />
<br />
أخيراً قم بالضغط على <span style="font-family: Arial;" class="mycode_font">Finish</span> وهكذا تكون قد انتهيت من عمل ملف <span style="font-family: Arial;" class="mycode_font">Setup</span> لبرنامجك .</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">في نهاية درسنا عن عمل </div>
<br />
<div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Setup</span></span><span style="color: #0000ff;" class="mycode_color"> للبرنامج سأشير إلى برنامجين هما من أشهر البرامج في مجال عمل </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Setup</span></span><span style="color: #0000ff;" class="mycode_color"> لبرامج الفيجوال بيسك ولغيرها ، هما برنامجا </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Setup Factory</span></span><span style="color: #0000ff;" class="mycode_color"> وبرنامج </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Install Shild</span></span><span style="color: #0000ff;" class="mycode_color"> .<br />
<br />
يحتوي هذان البرنامجان على مزايا اضافية عديدة ، مثل تحديد الشاشات وعددها وأنواعها وتصميمها ، اختيار عمل اختصارات على سطح المكتب وخلافه ، تحكم كامل في الأدوات والملفات المرفقة ، التسجيل في الريجستري ووضع عناوين وازالة مفاتيح وخلافه ، اضافة كلمات مرور وانواع </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">install</span></span><span style="color: #0000ff;" class="mycode_color"> ، اتاحة كتابة تعليمات برمجية بسيطة حيث يحتوي كل منهما على </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Engine</span></span><span style="color: #0000ff;" class="mycode_color"> خاص به لتفسير بعض الأوامر ، حيث يمكنك انشاء متغيرات والتأكد من قيمها وخلافه .</span><br />
</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">كما يوجد في الملفات المرفقةبرنامج لمعرفة الملفات التي يحتاجها برنامجك للعمل من برمجة أحد اعضاء منتدى <span style="font-family: Arial;" class="mycode_font">vb4arab</span> تحت اسم ( اعرف الملفات المرفقة ) ولا أعرف اسمه ، أتمنى أن يخبرني إن وصل إلى قراءة هذه السطور أو يخبرني عنه من يعرف . مع جزيل الشكر له وللجميع .</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=6711" target="_blank" title="">Files.zip</a> (الحجم : 68.35 ك ب / التحميلات : 194)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الثاني والثلاثون - التحويل إلى exe]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5720</link>
			<pubDate>Mon, 15 Oct 2012 05:07:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5720</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">تحويل البرنامج إلى تطبيق </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">exe</span></span><span style="color: #ff0000;" class="mycode_color"> .</span><br />
</div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">إنك كمصمم للبرنامج لن تعطي كل من يريد استخدام برنامجك نسخة من الكود التطبيقي للبرنامج ، بل إنك ستعطيه ملفاً بامتداد <span style="font-family: Arial;" class="mycode_font">exe</span> يكفل له تشغيل البرنامج بمجرد الضغط عليه من الويندوز ، وهو ما سنتعلمه خلال هذا الدرس .<br />
<br />
من قائمة <span style="font-family: Arial;" class="mycode_font">File</span> في الفيجوال بيسك قم باختيار <span style="font-family: Arial;" class="mycode_font">Make Project1.exe</span> ، وهنا سوف تظهر لك شاشة مستكشف ويندوز لتحديد مكان الحفظ ، وأربعة ازرار ما يهمنا منهم هو الزر ( خيارات - <span style="font-family: Arial;" class="mycode_font">Option</span> ) والذي سوف نقوم بالنقر عليه الآن .<br />
<br />
في أعلى الشاشة سوف تظهر لك ثلاثة ارقام <span style="font-family: Arial;" class="mycode_font">Major</span> ، و <span style="font-family: Arial;" class="mycode_font">Minor</span> و <span style="font-family: Arial;" class="mycode_font">Rivision</span> ، وهذه هي الأرقام التي تحدد اصدراك .<br />
في العادة يكون الرقم الأول هو الرقم المحدد للاصدار ككل ، وبتغير الرقم تحدث تغييرات كبيرة في البرنامج مثل الفرق بين <span style="font-family: Arial;" class="mycode_font">Visual Basic 5</span> و <span style="font-family: Arial;" class="mycode_font">Visual Basic 6</span> ، أما الرقم الثاني فهو يكون بعد التعديلات الطفيفية حيث نجد برنامج <span style="font-family: Arial;" class="mycode_font">Winzip 8</span> و <span style="font-family: Arial;" class="mycode_font">Winzip 8.1</span> مع فروق بسيطة .<br />
أما الأخير فهو أسرعهم تغييراً مثل التحدثيات وغير ذلك ، وفي برنامجنا سيكون افتراضياً 1.0.0 فإذا قمنا بتغيير كامل للبرنامج واضافات كبيرة جداً فإننا سنغير الرقم الأول ، أما إذا قمنا باضافة تعدد الشروط للبحث وتقارير جديدة فسنغير الرقم الثاني ، أما إذا تداركنا مشكلة أو اضفنا اضافة بسيطة فسوف نغير الرقم الثالث .<br />
<br />
بجانب هذه الشاشة سوف يطلب منك تحديد اسم المشروع ، واختيار أيقونته ، سوف نكتب ( البائع الذكي ) ونختار الأيقونة الخاصة بنا .<br />
<br />
أسفل الشاشة سوف نحدد بعض معلومات البرنامج مثل اسم الشركة واسم المنتج ووصف المنتج وحقوق الطبع وغيرها .<br />
<br />
بعد أن تكون قد انهيت الخطوات في الدرس السابق ، سوف نقوم باختيار التبويب الثاني من شاشة <span style="font-family: Arial;" class="mycode_font">Option</span> والذي هو تحت مسمى <span style="font-family: Arial;" class="mycode_font">Compile</span> ، وسوف نرى خيارين رئسيين هما : <span style="font-family: Arial;" class="mycode_font">Compile To P_Code</span> و <span style="font-family: Arial;" class="mycode_font">Compile To NativeCode</span> .</div>
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">Compile To P_Code</div>
</span></span></span><div style="text-align: right;" class="mycode_align">إذا قمت باختيار هذا العنصر فإنك تطلب من مترجم فيجوال بيسك خلال ترجمته لاسطر برنامجك بتحويلها إلى <span style="font-family: Arial;" class="mycode_font">P_Code</span> قبل تنفيذها ، ويتميز بأنه أصغر حجماً وأكثر توافقيه مع الأخطاء .</div>
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">Compile To NativeCode</div>
</span></span></span><div style="text-align: right;" class="mycode_align">برغم كبر حجم هذا النوع إلا أنه أسرع بكثير من النوع الأول ، ويحتوي على بعض الخيارات مثل <span style="font-family: Arial;" class="mycode_font">Optimize for ast Code</span> والذي يحاول قد المستطاع تسريع التنفيذ حتى ولو على حساب الحجم ، على عكس اللاحق <span style="font-family: Arial;" class="mycode_font">Optimize for Small Code</span> والذي سيصغر الحجم على حساب السرعة ... أما الخيار <span style="font-family: Arial;" class="mycode_font">No Optimize</span> فلا يقوم بتحديد شيء على حساب الآخر ، كما يمكنك وضع اشارة ( صح ) أما الاختيار <span style="font-family: Arial;" class="mycode_font">Favor Pentium Pro(tm</span>) والذي يفيدك في تسريع العمليات الحسابية إذا كنت تعمل على بنتيوم بور ، أما الاختيار <span style="font-family: Arial;" class="mycode_font">Create Sympolic Debug Info</span> فإنه يعطي الملف فرصة لامكانية التنقيح لاحقاً باستخدام أي من البرامج المعدة لهذا الغرض .</div>
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">Advanced Optimizations</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">:</span></span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">هذا الزر الموجود في أسفل الشاشة يقوم بعرض خيارات متقدمة لعملية <span style="font-family: Arial;" class="mycode_font">Optimization</span> ، ومنها :</div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Assume No Aliasing</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> وهو يقوم بتسريع البرنامج على افتراض عدم وجود عملية استعارة </span><span style="font-family: Arial;" class="mycode_font">Aliasing</span><span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Remove Array Bound Check</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> ويقوم بعدم التحقق من أرقام </span><span style="font-family: Arial;" class="mycode_font">Index</span><span style="font-family: Times New Roman;" class="mycode_font"> للمصفوفة مما يزيد التعامل معها .</span></div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Remove Floating Point Error Checks</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> حيث يزيل التأكد من أنواع الأرقام ذات العلامة العائمة وهي التي تمثل بـ 2*10^5 أو 2*10^-12.</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Allow Unrounded Floating Point Operations</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> وهي تبطئ من سرعة التنفيذ حيث تسمح بالحصول على دقة أكبر لهذا النوع من الأرقام .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Remove Safe Pentium&#153; FDIV Checks</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> ويقوم بازالة التدقيق في المعالجات التي تحتوي على مشكلة </span><span style="font-family: Arial;" class="mycode_font">FDIV</span><span style="font-family: Times New Roman;" class="mycode_font"> .</span><br />
<br />
هل تريد معرفة المزيد عن مشكلة <span style="font-family: Arial;" class="mycode_font">FDIV</span> ، إن هذا الرابط ربما يكون مفيداً لك ، حيث تجد بعض الأسئلة عن الموضوع :</div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align"><a href="http://www.trnicely.net/pentbug/pentbug.html" target="_blank" rel="noopener" class="mycode_url">http://www.trnicely.net/pentbug/pentbug.html</a></div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">اجمالاً في نهاية هذه الخيارات حاول عدم التعرض لها إلا إذا كنت متأكداً من أنك تحتاج إليها ، حتى لا تتسبب بأخطاء في برنامجك .<br />
<br />
لن نعدل في هذه العناصر ، وبعد الانتهاء سوف نغلق الشاشة بالنقر على زر <span style="font-family: Arial;" class="mycode_font">OK</span> ثم نكتب اسم البرنامج ، وننقر على <span style="font-family: Arial;" class="mycode_font">Compile</span> .<br />
سوف يظهر شريط الترجمة ، حيث سيقوم بعدد من المهام منها التأكد من عدم وجود أخطاء أو تعريفات خاطئة في الأوامر ، وبعد الانتهاء يتكون لدينا برنامج <span style="font-family: Arial;" class="mycode_font">exe</span> من البائع الذكي ، قم بوضع قاعدة البيانات ، وملف التعليمات في نفس المسار وقم بتشغيله .<br />
<br />
والآن قم بنقل البرنامج على جهاز لا يحتوي على <span style="font-family: Arial;" class="mycode_font">Visual Basic</span> وسترى أنه لا يعمل لأنه تنقصه بعض الملفات ، إلا أنه سوف يعمل في حالة وجود مكتبات فيجوال بيسك ، ولكي يعمل البرنامج على كل الأجهزة نقوم بعمل <span style="font-family: Arial;" class="mycode_font">Setup</span> للبرنامج ، وهو ما سنتعلمه في الدرس المقبل .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div>
</span>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">تحويل البرنامج إلى تطبيق </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">exe</span></span><span style="color: #ff0000;" class="mycode_color"> .</span><br />
</div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">إنك كمصمم للبرنامج لن تعطي كل من يريد استخدام برنامجك نسخة من الكود التطبيقي للبرنامج ، بل إنك ستعطيه ملفاً بامتداد <span style="font-family: Arial;" class="mycode_font">exe</span> يكفل له تشغيل البرنامج بمجرد الضغط عليه من الويندوز ، وهو ما سنتعلمه خلال هذا الدرس .<br />
<br />
من قائمة <span style="font-family: Arial;" class="mycode_font">File</span> في الفيجوال بيسك قم باختيار <span style="font-family: Arial;" class="mycode_font">Make Project1.exe</span> ، وهنا سوف تظهر لك شاشة مستكشف ويندوز لتحديد مكان الحفظ ، وأربعة ازرار ما يهمنا منهم هو الزر ( خيارات - <span style="font-family: Arial;" class="mycode_font">Option</span> ) والذي سوف نقوم بالنقر عليه الآن .<br />
<br />
في أعلى الشاشة سوف تظهر لك ثلاثة ارقام <span style="font-family: Arial;" class="mycode_font">Major</span> ، و <span style="font-family: Arial;" class="mycode_font">Minor</span> و <span style="font-family: Arial;" class="mycode_font">Rivision</span> ، وهذه هي الأرقام التي تحدد اصدراك .<br />
في العادة يكون الرقم الأول هو الرقم المحدد للاصدار ككل ، وبتغير الرقم تحدث تغييرات كبيرة في البرنامج مثل الفرق بين <span style="font-family: Arial;" class="mycode_font">Visual Basic 5</span> و <span style="font-family: Arial;" class="mycode_font">Visual Basic 6</span> ، أما الرقم الثاني فهو يكون بعد التعديلات الطفيفية حيث نجد برنامج <span style="font-family: Arial;" class="mycode_font">Winzip 8</span> و <span style="font-family: Arial;" class="mycode_font">Winzip 8.1</span> مع فروق بسيطة .<br />
أما الأخير فهو أسرعهم تغييراً مثل التحدثيات وغير ذلك ، وفي برنامجنا سيكون افتراضياً 1.0.0 فإذا قمنا بتغيير كامل للبرنامج واضافات كبيرة جداً فإننا سنغير الرقم الأول ، أما إذا قمنا باضافة تعدد الشروط للبحث وتقارير جديدة فسنغير الرقم الثاني ، أما إذا تداركنا مشكلة أو اضفنا اضافة بسيطة فسوف نغير الرقم الثالث .<br />
<br />
بجانب هذه الشاشة سوف يطلب منك تحديد اسم المشروع ، واختيار أيقونته ، سوف نكتب ( البائع الذكي ) ونختار الأيقونة الخاصة بنا .<br />
<br />
أسفل الشاشة سوف نحدد بعض معلومات البرنامج مثل اسم الشركة واسم المنتج ووصف المنتج وحقوق الطبع وغيرها .<br />
<br />
بعد أن تكون قد انهيت الخطوات في الدرس السابق ، سوف نقوم باختيار التبويب الثاني من شاشة <span style="font-family: Arial;" class="mycode_font">Option</span> والذي هو تحت مسمى <span style="font-family: Arial;" class="mycode_font">Compile</span> ، وسوف نرى خيارين رئسيين هما : <span style="font-family: Arial;" class="mycode_font">Compile To P_Code</span> و <span style="font-family: Arial;" class="mycode_font">Compile To NativeCode</span> .</div>
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">Compile To P_Code</div>
</span></span></span><div style="text-align: right;" class="mycode_align">إذا قمت باختيار هذا العنصر فإنك تطلب من مترجم فيجوال بيسك خلال ترجمته لاسطر برنامجك بتحويلها إلى <span style="font-family: Arial;" class="mycode_font">P_Code</span> قبل تنفيذها ، ويتميز بأنه أصغر حجماً وأكثر توافقيه مع الأخطاء .</div>
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">Compile To NativeCode</div>
</span></span></span><div style="text-align: right;" class="mycode_align">برغم كبر حجم هذا النوع إلا أنه أسرع بكثير من النوع الأول ، ويحتوي على بعض الخيارات مثل <span style="font-family: Arial;" class="mycode_font">Optimize for ast Code</span> والذي يحاول قد المستطاع تسريع التنفيذ حتى ولو على حساب الحجم ، على عكس اللاحق <span style="font-family: Arial;" class="mycode_font">Optimize for Small Code</span> والذي سيصغر الحجم على حساب السرعة ... أما الخيار <span style="font-family: Arial;" class="mycode_font">No Optimize</span> فلا يقوم بتحديد شيء على حساب الآخر ، كما يمكنك وضع اشارة ( صح ) أما الاختيار <span style="font-family: Arial;" class="mycode_font">Favor Pentium Pro(tm</span>) والذي يفيدك في تسريع العمليات الحسابية إذا كنت تعمل على بنتيوم بور ، أما الاختيار <span style="font-family: Arial;" class="mycode_font">Create Sympolic Debug Info</span> فإنه يعطي الملف فرصة لامكانية التنقيح لاحقاً باستخدام أي من البرامج المعدة لهذا الغرض .</div>
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">Advanced Optimizations</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">:</span></span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">هذا الزر الموجود في أسفل الشاشة يقوم بعرض خيارات متقدمة لعملية <span style="font-family: Arial;" class="mycode_font">Optimization</span> ، ومنها :</div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Assume No Aliasing</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> وهو يقوم بتسريع البرنامج على افتراض عدم وجود عملية استعارة </span><span style="font-family: Arial;" class="mycode_font">Aliasing</span><span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Remove Array Bound Check</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> ويقوم بعدم التحقق من أرقام </span><span style="font-family: Arial;" class="mycode_font">Index</span><span style="font-family: Times New Roman;" class="mycode_font"> للمصفوفة مما يزيد التعامل معها .</span></div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Remove Floating Point Error Checks</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> حيث يزيل التأكد من أنواع الأرقام ذات العلامة العائمة وهي التي تمثل بـ 2*10^5 أو 2*10^-12.</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Allow Unrounded Floating Point Operations</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> وهي تبطئ من سرعة التنفيذ حيث تسمح بالحصول على دقة أكبر لهذا النوع من الأرقام .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Remove Safe Pentium&#153; FDIV Checks</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">:</span> ويقوم بازالة التدقيق في المعالجات التي تحتوي على مشكلة </span><span style="font-family: Arial;" class="mycode_font">FDIV</span><span style="font-family: Times New Roman;" class="mycode_font"> .</span><br />
<br />
هل تريد معرفة المزيد عن مشكلة <span style="font-family: Arial;" class="mycode_font">FDIV</span> ، إن هذا الرابط ربما يكون مفيداً لك ، حيث تجد بعض الأسئلة عن الموضوع :</div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align"><a href="http://www.trnicely.net/pentbug/pentbug.html" target="_blank" rel="noopener" class="mycode_url">http://www.trnicely.net/pentbug/pentbug.html</a></div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">اجمالاً في نهاية هذه الخيارات حاول عدم التعرض لها إلا إذا كنت متأكداً من أنك تحتاج إليها ، حتى لا تتسبب بأخطاء في برنامجك .<br />
<br />
لن نعدل في هذه العناصر ، وبعد الانتهاء سوف نغلق الشاشة بالنقر على زر <span style="font-family: Arial;" class="mycode_font">OK</span> ثم نكتب اسم البرنامج ، وننقر على <span style="font-family: Arial;" class="mycode_font">Compile</span> .<br />
سوف يظهر شريط الترجمة ، حيث سيقوم بعدد من المهام منها التأكد من عدم وجود أخطاء أو تعريفات خاطئة في الأوامر ، وبعد الانتهاء يتكون لدينا برنامج <span style="font-family: Arial;" class="mycode_font">exe</span> من البائع الذكي ، قم بوضع قاعدة البيانات ، وملف التعليمات في نفس المسار وقم بتشغيله .<br />
<br />
والآن قم بنقل البرنامج على جهاز لا يحتوي على <span style="font-family: Arial;" class="mycode_font">Visual Basic</span> وسترى أنه لا يعمل لأنه تنقصه بعض الملفات ، إلا أنه سوف يعمل في حالة وجود مكتبات فيجوال بيسك ، ولكي يعمل البرنامج على كل الأجهزة نقوم بعمل <span style="font-family: Arial;" class="mycode_font">Setup</span> للبرنامج ، وهو ما سنتعلمه في الدرس المقبل .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div>
</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ...]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5719</link>
			<pubDate>Mon, 15 Oct 2012 05:01:48 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5719</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="color: #333333;" class="mycode_color"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></span></div>
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span></span><br />
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span></span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">نقاط سريعة لم يتم تطبقها في البرنامج - البحث بأكثر من معامل - .</span></span><br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">لو نظرت أخي الكريم إلى شاشة البحث تجد أننا نبحث بمعامل واحد فقط ، وهذا وإن كان جيداً لسوبر ماركت متوسط كما أسلفنا ، إلا أننا وفي حالة التعامل مع قاعدة بيانات ضخمة لمؤسسة أو منفذ بيع كبير فإننا نحتاج للبحث بأكثر من خاصية ، فمثلاً البضائع التي كميتها &lt; 10 ومن مؤسسة معينة عند وصول المورد الخاص بها على سبيل المثال .</span><br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">لعمل ذلك هناك أكثر من طريقة ، منها ما يلي :</span><br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">نضع بالجزء العلوي من شاشة البحث والخاص بالتحكم في البحث أزرار ( اضافة - انهاء ) .</span><br />
<span style="font-family: Times New Roman;" class="mycode_font">في هذه الشاشة توجد مربعات التحرير والسرد الموجود في الشاشة العادية .</span><br />
<span style="font-family: Times New Roman;" class="mycode_font">إلا أنه عند النقر على زر اضافة فإنني اضع هذه الشروط في ثلاثة متغيرات على شكل مصفوفة a(x),b(x),c(x)</span><br />
<span style="font-family: Times New Roman;" class="mycode_font">وقيمة X تبدأ بـ 0 ، ونحدثها مع كل عملية بحث بحيث تساوي x + 1</span><br />
<span style="font-family: Times New Roman;" class="mycode_font">ونعرفها في قسم التصريحات Genral في الفورم :</span></div>
</span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim a(),b(),c<br />
()<br />
 <br />
Dim X</code></div></div></span><br />
</span></span></span><br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">وفي Form_Load :</span></div>
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>X=0</code></div></div></span><br />
</span></span></span><br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">فمثلاً يكون كود زر الاضافة :</span></div>
</span></span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>a(x) = Combo1.Text<br />
 <br />
If a(x) = "اسم البضاعة" Then a(x) = "product.name"<br />
 <br />
'<br />
 <br />
'<br />
 <br />
'وهكذا لتحويل النص المعروض إلى اسم الحقل في قاعدة البيانات . <br />
<br />
<br />
b(x) = Combo2.Text<br />
<br />
<br />
<br />
<br />
c(x) = Text1.Text<br />
<br />
<br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
X=X+1</code></div></div></span><br />
</span></span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">وهكذا حتى ينتهي المستخدم من اضافة معلوماته ، وعند الضغط على زر انهاء نضيف جملة Sql من المعلومات التي وضعها المستخدم ، وقد تكون بالشكل التالي :</span></div>
</span></span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number<br />
 <br />
 <br />
"<br />
 <br />
For i = 0 To X-1<br />
 <br />
sql = sql &amp; " and " &amp; a(x) &amp; b(x) &amp; c(x<br />
 <br />
 <br />
 <br />
 <br />
)<br />
 <br />
 <br />
Next i</code></div></div></span><br />
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="font-size: 3pt;" class="mycode_size">وهكذا يتم عرض جميع نتائج البحث المطلوبة كما حددها هو .</span></span><br />
<br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">تستطيع لاحقاً عرض المعاملات التي بحث عنها في قائمة لمزيد من الاحترافية ، والموضوع به الكثير من النقاط التي قد تكون علامات ايجابية في برنامجك .</span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">كتابة تعليمات البرنامج .</span></span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">إننا دائماً بحاجة إلى كتابة تعليمات برامجنا لمنح الفرصة لكافة الأشخاص لاستخدام برامجنا بكفاءة كاملة وفاعلية .</span><br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">نحتاج إلى أن نشرح في التعليمات كافة النقاط المتعلقة بالبرنامج ، فنشرح له مثلاً قوائم البرنامج والمهام الأساسية فيه .</span></div>
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">وسنشرح له أيضاً سير البرنامج ، هذا كله بعد موجز تفصيلي نشرح فيه فائدة البرنامج .</span></div>
</span></span></span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">إن قيامك بكتابة التعليمات أيضاً يعني اعطاء بعض التلميحات ، فعلى سبيل المثال في برنامجنا سيكون من الجيد تعليمه كيفية استخدام البحث لعرض البضائع التي لم تتبق منها كمية كافية .</span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">أيضاً اشرح له بعض المشاكل التي قد تحدث وكيف يتعامل معها ، وأخيراً اضف إليه معلومات عن كيفية الاتصال بك وعرض مشاكله أو اسداء الاقتراحات .</span><br />
<br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">لا تنس في حال برمجتك لبرامج معينة أن تعرض امكانيات النظام التي يمكنك التعامل معها ، ومكونات الجهاز كالحد الأدنى من سرعة المعالج وذاكرة الرام .</span><br />
<br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">وملف الوورد مرفق وهو عبارة عن تعليمات الملف الخاص بنا ، وتجده مثلاً في المرفقات .</span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">ولا يشترط أسلوب كتابة التعليمات على الوورد ، بل قد نستطيع استخدام برامج خاصة بكتابة ملفات المساعدة يمكنها أن تساعدنا كثيراً . ويمكن العثور عليها بمجرد البحث .</span><br />
<br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">يتبع ...</span></span></div>
</span></span></span><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=3277" target="_blank" title="">Help.zip</a> (الحجم : 6.2 ك ب / التحميلات : 211)
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="color: #333333;" class="mycode_color"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></span></div>
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span></span><br />
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span></span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">نقاط سريعة لم يتم تطبقها في البرنامج - البحث بأكثر من معامل - .</span></span><br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">لو نظرت أخي الكريم إلى شاشة البحث تجد أننا نبحث بمعامل واحد فقط ، وهذا وإن كان جيداً لسوبر ماركت متوسط كما أسلفنا ، إلا أننا وفي حالة التعامل مع قاعدة بيانات ضخمة لمؤسسة أو منفذ بيع كبير فإننا نحتاج للبحث بأكثر من خاصية ، فمثلاً البضائع التي كميتها &lt; 10 ومن مؤسسة معينة عند وصول المورد الخاص بها على سبيل المثال .</span><br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">لعمل ذلك هناك أكثر من طريقة ، منها ما يلي :</span><br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">نضع بالجزء العلوي من شاشة البحث والخاص بالتحكم في البحث أزرار ( اضافة - انهاء ) .</span><br />
<span style="font-family: Times New Roman;" class="mycode_font">في هذه الشاشة توجد مربعات التحرير والسرد الموجود في الشاشة العادية .</span><br />
<span style="font-family: Times New Roman;" class="mycode_font">إلا أنه عند النقر على زر اضافة فإنني اضع هذه الشروط في ثلاثة متغيرات على شكل مصفوفة a(x),b(x),c(x)</span><br />
<span style="font-family: Times New Roman;" class="mycode_font">وقيمة X تبدأ بـ 0 ، ونحدثها مع كل عملية بحث بحيث تساوي x + 1</span><br />
<span style="font-family: Times New Roman;" class="mycode_font">ونعرفها في قسم التصريحات Genral في الفورم :</span></div>
</span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim a(),b(),c<br />
()<br />
 <br />
Dim X</code></div></div></span><br />
</span></span></span><br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">وفي Form_Load :</span></div>
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>X=0</code></div></div></span><br />
</span></span></span><br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">فمثلاً يكون كود زر الاضافة :</span></div>
</span></span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>a(x) = Combo1.Text<br />
 <br />
If a(x) = "اسم البضاعة" Then a(x) = "product.name"<br />
 <br />
'<br />
 <br />
'<br />
 <br />
'وهكذا لتحويل النص المعروض إلى اسم الحقل في قاعدة البيانات . <br />
<br />
<br />
b(x) = Combo2.Text<br />
<br />
<br />
<br />
<br />
c(x) = Text1.Text<br />
<br />
<br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
 <br />
X=X+1</code></div></div></span><br />
</span></span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">وهكذا حتى ينتهي المستخدم من اضافة معلوماته ، وعند الضغط على زر انهاء نضيف جملة Sql من المعلومات التي وضعها المستخدم ، وقد تكون بالشكل التالي :</span></div>
</span></span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number<br />
 <br />
 <br />
"<br />
 <br />
For i = 0 To X-1<br />
 <br />
sql = sql &amp; " and " &amp; a(x) &amp; b(x) &amp; c(x<br />
 <br />
 <br />
 <br />
 <br />
)<br />
 <br />
 <br />
Next i</code></div></div></span><br />
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="font-size: 3pt;" class="mycode_size">وهكذا يتم عرض جميع نتائج البحث المطلوبة كما حددها هو .</span></span><br />
<br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">تستطيع لاحقاً عرض المعاملات التي بحث عنها في قائمة لمزيد من الاحترافية ، والموضوع به الكثير من النقاط التي قد تكون علامات ايجابية في برنامجك .</span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">كتابة تعليمات البرنامج .</span></span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">إننا دائماً بحاجة إلى كتابة تعليمات برامجنا لمنح الفرصة لكافة الأشخاص لاستخدام برامجنا بكفاءة كاملة وفاعلية .</span><br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">نحتاج إلى أن نشرح في التعليمات كافة النقاط المتعلقة بالبرنامج ، فنشرح له مثلاً قوائم البرنامج والمهام الأساسية فيه .</span></div>
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">وسنشرح له أيضاً سير البرنامج ، هذا كله بعد موجز تفصيلي نشرح فيه فائدة البرنامج .</span></div>
</span></span></span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">إن قيامك بكتابة التعليمات أيضاً يعني اعطاء بعض التلميحات ، فعلى سبيل المثال في برنامجنا سيكون من الجيد تعليمه كيفية استخدام البحث لعرض البضائع التي لم تتبق منها كمية كافية .</span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">أيضاً اشرح له بعض المشاكل التي قد تحدث وكيف يتعامل معها ، وأخيراً اضف إليه معلومات عن كيفية الاتصال بك وعرض مشاكله أو اسداء الاقتراحات .</span><br />
<br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">لا تنس في حال برمجتك لبرامج معينة أن تعرض امكانيات النظام التي يمكنك التعامل معها ، ومكونات الجهاز كالحد الأدنى من سرعة المعالج وذاكرة الرام .</span><br />
<br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">وملف الوورد مرفق وهو عبارة عن تعليمات الملف الخاص بنا ، وتجده مثلاً في المرفقات .</span><br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font">ولا يشترط أسلوب كتابة التعليمات على الوورد ، بل قد نستطيع استخدام برامج خاصة بكتابة ملفات المساعدة يمكنها أن تساعدنا كثيراً . ويمكن العثور عليها بمجرد البحث .</span><br />
<br />
<br />
<br />
<br />
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">يتبع ...</span></span></div>
</span></span></span><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=3277" target="_blank" title="">Help.zip</a> (الحجم : 6.2 ك ب / التحميلات : 211)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5718</link>
			<pubDate>Mon, 15 Oct 2012 04:59:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5718</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">عمل شريط الأدوات .</div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">سنقوم بعمل شريط أدوات لبرنامجنا خلال هذا الدرس .. ولهذا الغرض سوف نستخدم أداتين :</div>
<span style="color: #800000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">* أداة </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Toolbar</span></span><span style="color: #800000;" class="mycode_color"> : لعرض الشريط والتحكم فيه .<br />
* أداة </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">ImageList</span></span><span style="color: #800000;" class="mycode_color"> : نستخدم هذه الأداة لعرض الصور في الشريط ، وهذه الأداة تستخدم مع أكثر من أداة أخرى لعرض الصور بداخلها .</span><br />
</div>
<span style="color: #800000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">والآن نقوم بتحديد المهام التي سنضع لها رمزا في شريط الأدوات لكي نبدأ في البحث عن أيقونات مناسبة لها ، وهي :</div>
<span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">* عرض .<br />
* تقرير البضائع .<br />
* التقرير اليومي .<br />
* شراء .<br />
* بيع .<br />
* بحث .<br />
* آلة حاسبة .<br />
* نسخ .<br />
* كلمة السر .<br />
* حول .<br />
* خروج .</div>
<br />
</span><div style="text-align: right;" class="mycode_align">وبعد البحث نقوم بوضع الأيقونات في مسار البرنامج تمهيداً لاستخدامها .<br />
<br />
يأتي الآن دور استخدام أداة <span style="font-family: Arial;" class="mycode_font">Imagelist</span> ، لذا قم بتحديدها ، واضغط على <span style="font-family: Arial;" class="mycode_font">Custom</span> من خصائصها ، واختر التبويب <span style="font-family: Arial;" class="mycode_font">Image</span> ، والآن قم بشكل متكرر بما يلي :<br />
* اضغط <span style="font-family: Arial;" class="mycode_font">Insert Picture</span> .<br />
* اختر الصورة المطلوبة .<br />
<br />
وهكذا حتى تنتهي من الصور ... وهكذا انتهى دور هذه الاداة .<br />
<br />
الآن حدد الأداة الثانية <span style="font-family: Arial;" class="mycode_font">Toolbar</span> ، واختر <span style="font-family: Arial;" class="mycode_font">Custom</span> .<br />
ستظهر لك شاشة الخصائص ، في الشاشة الأولى نستطيع التحكم بما يلي :</div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">* </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Image List</span></span><span style="color: #0000ff;" class="mycode_color"> : منها نستطيع تحديد مصدر الصور وهي أداتنا </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Imagelist1</span></span><span style="color: #0000ff;" class="mycode_color"> .<br />
* </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Appearance</span></span><span style="color: #0000ff;" class="mycode_color"> و </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Style</span></span><span style="color: #0000ff;" class="mycode_color"> : تحدد المظهر من ثلاثية الأبعاد وغيرها .<br />
* </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">TextAligment</span></span><span style="color: #0000ff;" class="mycode_color"> : اتجاه النص مع الصورة .</span><br />
</div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">وفي التبويب الثاني <span style="font-family: Arial;" class="mycode_font">Buttons</span> نحدد ما يلي :<br />
نختار <span style="font-family: Arial;" class="mycode_font">Inseret Button</span> ، ومن خاصية <span style="font-family: Arial;" class="mycode_font">Caption</span> نحدد النص الذي سيظهر معها . ومن <span style="font-family: Arial;" class="mycode_font">ToolTipText</span> نختار النص الذي يظهر عند مرور الماوس .<br />
أخيراً خاصية <span style="font-family: Arial;" class="mycode_font">Style</span> تحدد شكل الزر .<br />
فمثلاً الافتراضي 0 زر عادي لكن 1 مثلاً يكون على شكل مربع اختيار ، أما 2 فهو زر يظهر قائمة ، و 3 هو خط <span style="font-family: Arial;" class="mycode_font">Separator</span> نضعه عادة بين كل زرين .<br />
أيضاً خاصية <span style="font-family: Arial;" class="mycode_font">Image</span> تحدد رقم الصورة التي تظهر مع كل زر ، ونعرف الرقم من أداتنا السابقة <span style="font-family: Arial;" class="mycode_font">ImageList</span> .<br />
<br />
بهذا الشكل نقوم بضبط تصميم شريط الأدوات ، ويتبقى علينا الكود .<br />
<br />
أما عن برمجة شريط الأدوات فيظهر الكود في البداية بالشكل التالي : <br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)</code></div></div>حيث يحتوي المتغير <span style="font-family: Arial;" class="mycode_font">Button</span> على النص الموجود في الزر المضغوط .<br />
<br />
لذلك سوف نستخدم جملة <span style="font-family: Arial;" class="mycode_font">Select</span> بالشكل التالي : <br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Select Case Button<br />
Case "خروج"</code></div></div>وبهذا الشكل ، ومنعاً لتكرار الأكواد في بعض الحالات مثل تغيير كلمة السر قمت بانشاء حدث <span style="font-family: Arial;" class="mycode_font">Chng_pass</span> ووضعت فيه كود تغيير كلمة السر وقمت باستدعاء الحدث مباشرة سواء من القائمة أو من شريط الأدوات .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">اجمالي الكود سوف يكون بالشكل التالي : </div>
</span><br />
<br />
<div style="text-align: right;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)<br />
Select Case Button<br />
Case "خروج"<br />
Dim sure<br />
sure = MsgBox("هل تريد بالتأكيد انهاء البرنامج ؟", vbExclamation + vbYesNo + arabic, "تأكيد الخروج")<br />
If sure = vbYes Then End<br />
Case "حول"<br />
AboutMe.Show 1<br />
Case "كلمة السر"<br />
Call Chng_pass<br />
Case "نسخ"<br />
Copy_Me<br />
Case "آلة حاسبة"<br />
Frm_Calc.Width = 3105<br />
Frm_Calc.Height = 2640<br />
Frm_Calc.Top = 0<br />
Frm_Calc.Left = 0<br />
Frm_Calc.Show<br />
Case "بحث"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
Frm_Find.Show<br />
Case "بيع"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Sel_Bay.Lbl_name.Caption = "اضافة عملية بيع"<br />
Frm_Sel_Bay.Refresh_Me<br />
Frm_Sel_Bay.Show 1<br />
Case "شراء"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Sel_Bay.Lbl_name.Caption = "اضافة عملية شراء"<br />
Frm_Sel_Bay.Refresh_Me<br />
Frm_Sel_Bay.Show 1<br />
Case "تقرير يومي"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرض تقارير عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Unload Frm_Report4<br />
Frm_Report4.Show<br />
Case "تقرير بضائع"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Report1.Show<br />
Case "عرض"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Show.Show<br />
End Select<br />
End Sub</code></div></div><span style="color: #ff0000;" class="mycode_color">*** بنفس الطريقة في شريط الحالة فإن بامكاننا استخدام الخاصية </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Index</span></span><span style="color: #ff0000;" class="mycode_color"> بدلاً من القيمة المعروضة على الشريط .</span><br />
</div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">بهذا الدرس نكون قد اتممنا بحمد الله البرنامج ، ما تبقى لنا الآن هو اعداد البرنامج وتجهيزه للعمل . وحتى الدرس التالي فهذه هي آخر نسخة من البرنامج بها كل ما تم من عمليات منذ بدء البرنامج :<br />
<br />
<a href="http://www.4shared.com/file/19199892/8253b2bb/Prog_Final.html" target="_blank" rel="noopener" class="mycode_url">http://www.4shared.com/file/19199892...rog_Final.html</a></div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #ffff00;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #ff0000;" class="mycode_color"><br />
<br />
*** كما اعتذر فمحتويات </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Frm_Edit_SP</span></span><span style="color: #ff0000;" class="mycode_color"> لم تكن موجودة قبل هذا الملف وقد سقطت مني سهواً ، عموماً قد تم شرح محتواها في الدرس 12 من هذه الدورة ، ولكنها لم تضف واضيفت الآن .</span><br />
</div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div>
</span>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">عمل شريط الأدوات .</div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">سنقوم بعمل شريط أدوات لبرنامجنا خلال هذا الدرس .. ولهذا الغرض سوف نستخدم أداتين :</div>
<span style="color: #800000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">* أداة </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Toolbar</span></span><span style="color: #800000;" class="mycode_color"> : لعرض الشريط والتحكم فيه .<br />
* أداة </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">ImageList</span></span><span style="color: #800000;" class="mycode_color"> : نستخدم هذه الأداة لعرض الصور في الشريط ، وهذه الأداة تستخدم مع أكثر من أداة أخرى لعرض الصور بداخلها .</span><br />
</div>
<span style="color: #800000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">والآن نقوم بتحديد المهام التي سنضع لها رمزا في شريط الأدوات لكي نبدأ في البحث عن أيقونات مناسبة لها ، وهي :</div>
<span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">* عرض .<br />
* تقرير البضائع .<br />
* التقرير اليومي .<br />
* شراء .<br />
* بيع .<br />
* بحث .<br />
* آلة حاسبة .<br />
* نسخ .<br />
* كلمة السر .<br />
* حول .<br />
* خروج .</div>
<br />
</span><div style="text-align: right;" class="mycode_align">وبعد البحث نقوم بوضع الأيقونات في مسار البرنامج تمهيداً لاستخدامها .<br />
<br />
يأتي الآن دور استخدام أداة <span style="font-family: Arial;" class="mycode_font">Imagelist</span> ، لذا قم بتحديدها ، واضغط على <span style="font-family: Arial;" class="mycode_font">Custom</span> من خصائصها ، واختر التبويب <span style="font-family: Arial;" class="mycode_font">Image</span> ، والآن قم بشكل متكرر بما يلي :<br />
* اضغط <span style="font-family: Arial;" class="mycode_font">Insert Picture</span> .<br />
* اختر الصورة المطلوبة .<br />
<br />
وهكذا حتى تنتهي من الصور ... وهكذا انتهى دور هذه الاداة .<br />
<br />
الآن حدد الأداة الثانية <span style="font-family: Arial;" class="mycode_font">Toolbar</span> ، واختر <span style="font-family: Arial;" class="mycode_font">Custom</span> .<br />
ستظهر لك شاشة الخصائص ، في الشاشة الأولى نستطيع التحكم بما يلي :</div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">* </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Image List</span></span><span style="color: #0000ff;" class="mycode_color"> : منها نستطيع تحديد مصدر الصور وهي أداتنا </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Imagelist1</span></span><span style="color: #0000ff;" class="mycode_color"> .<br />
* </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Appearance</span></span><span style="color: #0000ff;" class="mycode_color"> و </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Style</span></span><span style="color: #0000ff;" class="mycode_color"> : تحدد المظهر من ثلاثية الأبعاد وغيرها .<br />
* </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">TextAligment</span></span><span style="color: #0000ff;" class="mycode_color"> : اتجاه النص مع الصورة .</span><br />
</div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">وفي التبويب الثاني <span style="font-family: Arial;" class="mycode_font">Buttons</span> نحدد ما يلي :<br />
نختار <span style="font-family: Arial;" class="mycode_font">Inseret Button</span> ، ومن خاصية <span style="font-family: Arial;" class="mycode_font">Caption</span> نحدد النص الذي سيظهر معها . ومن <span style="font-family: Arial;" class="mycode_font">ToolTipText</span> نختار النص الذي يظهر عند مرور الماوس .<br />
أخيراً خاصية <span style="font-family: Arial;" class="mycode_font">Style</span> تحدد شكل الزر .<br />
فمثلاً الافتراضي 0 زر عادي لكن 1 مثلاً يكون على شكل مربع اختيار ، أما 2 فهو زر يظهر قائمة ، و 3 هو خط <span style="font-family: Arial;" class="mycode_font">Separator</span> نضعه عادة بين كل زرين .<br />
أيضاً خاصية <span style="font-family: Arial;" class="mycode_font">Image</span> تحدد رقم الصورة التي تظهر مع كل زر ، ونعرف الرقم من أداتنا السابقة <span style="font-family: Arial;" class="mycode_font">ImageList</span> .<br />
<br />
بهذا الشكل نقوم بضبط تصميم شريط الأدوات ، ويتبقى علينا الكود .<br />
<br />
أما عن برمجة شريط الأدوات فيظهر الكود في البداية بالشكل التالي : <br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)</code></div></div>حيث يحتوي المتغير <span style="font-family: Arial;" class="mycode_font">Button</span> على النص الموجود في الزر المضغوط .<br />
<br />
لذلك سوف نستخدم جملة <span style="font-family: Arial;" class="mycode_font">Select</span> بالشكل التالي : <br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Select Case Button<br />
Case "خروج"</code></div></div>وبهذا الشكل ، ومنعاً لتكرار الأكواد في بعض الحالات مثل تغيير كلمة السر قمت بانشاء حدث <span style="font-family: Arial;" class="mycode_font">Chng_pass</span> ووضعت فيه كود تغيير كلمة السر وقمت باستدعاء الحدث مباشرة سواء من القائمة أو من شريط الأدوات .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">اجمالي الكود سوف يكون بالشكل التالي : </div>
</span><br />
<br />
<div style="text-align: right;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)<br />
Select Case Button<br />
Case "خروج"<br />
Dim sure<br />
sure = MsgBox("هل تريد بالتأكيد انهاء البرنامج ؟", vbExclamation + vbYesNo + arabic, "تأكيد الخروج")<br />
If sure = vbYes Then End<br />
Case "حول"<br />
AboutMe.Show 1<br />
Case "كلمة السر"<br />
Call Chng_pass<br />
Case "نسخ"<br />
Copy_Me<br />
Case "آلة حاسبة"<br />
Frm_Calc.Width = 3105<br />
Frm_Calc.Height = 2640<br />
Frm_Calc.Top = 0<br />
Frm_Calc.Left = 0<br />
Frm_Calc.Show<br />
Case "بحث"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
Frm_Find.Show<br />
Case "بيع"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Sel_Bay.Lbl_name.Caption = "اضافة عملية بيع"<br />
Frm_Sel_Bay.Refresh_Me<br />
Frm_Sel_Bay.Show 1<br />
Case "شراء"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Sel_Bay.Lbl_name.Caption = "اضافة عملية شراء"<br />
Frm_Sel_Bay.Refresh_Me<br />
Frm_Sel_Bay.Show 1<br />
Case "تقرير يومي"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرض تقارير عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Unload Frm_Report4<br />
Frm_Report4.Show<br />
Case "تقرير بضائع"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Report1.Show<br />
Case "عرض"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرضها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Show.Show<br />
End Select<br />
End Sub</code></div></div><span style="color: #ff0000;" class="mycode_color">*** بنفس الطريقة في شريط الحالة فإن بامكاننا استخدام الخاصية </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Index</span></span><span style="color: #ff0000;" class="mycode_color"> بدلاً من القيمة المعروضة على الشريط .</span><br />
</div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">بهذا الدرس نكون قد اتممنا بحمد الله البرنامج ، ما تبقى لنا الآن هو اعداد البرنامج وتجهيزه للعمل . وحتى الدرس التالي فهذه هي آخر نسخة من البرنامج بها كل ما تم من عمليات منذ بدء البرنامج :<br />
<br />
<a href="http://www.4shared.com/file/19199892/8253b2bb/Prog_Final.html" target="_blank" rel="noopener" class="mycode_url">http://www.4shared.com/file/19199892...rog_Final.html</a></div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #ffff00;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #ff0000;" class="mycode_color"><br />
<br />
*** كما اعتذر فمحتويات </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Frm_Edit_SP</span></span><span style="color: #ff0000;" class="mycode_color"> لم تكن موجودة قبل هذا الملف وقد سقطت مني سهواً ، عموماً قد تم شرح محتواها في الدرس 12 من هذه الدورة ، ولكنها لم تضف واضيفت الآن .</span><br />
</div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div>
</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5717</link>
			<pubDate>Mon, 15 Oct 2012 04:57:25 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5717</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<div style="text-align: right;" class="mycode_align">سوف نحاول من خلال الدروس القادمة انهاء البرنامج واعداده للنشر ، وسنبدأ باضافة اللمسات الأخيرة على البرنامج .</div>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">التعامل مع شريط الحالة</div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">سنعود الآن مجدداً إلى الفورم الرئيسي ، وسنقوم باضافة شريط الحالة <span style="font-family: Arial;" class="mycode_font">StatusBar</span> ووضع بعض المهام الرئيسية فيه .<br />
من شريط أدوات التحكم قم باضافة <span style="font-family: Arial;" class="mycode_font">StatusBar</span> وستجده تلقائياً يظهر في أسفل الفورم ، من ضمن الخصائص داخل هذه الأداة اختر <span style="font-family: Arial;" class="mycode_font">Custem</span> واختر التبويب الثاني <span style="font-family: Arial;" class="mycode_font">Panels</span> .<br />
تجد زرين <span style="font-family: Arial;" class="mycode_font">Insert Panel</span> و <span style="font-family: Arial;" class="mycode_font">Remove Panel</span> لاضافة وحذف أجزاء من هذا الشريط .<br />
<br />
أيضاً تجد الخصائص التالية لكل جزء من هذا الشريط :</div>
<br />
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Text</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: لتحديد النص الذي يظهر في هذا الجزء .</span></span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Alignment</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: لتحديد محاذاة النص داخل هذا الجزء .</span></span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Style</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #008000;" class="mycode_color">: افتراضياً على </span></span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">text</span></span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #008000;" class="mycode_color"> حيث يوضع النص المحدد بالخاصية </span></span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Text</span></span><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font"> ، لكن يمكن اختيار عرض التاريخ أو الوقت الحالي وغيرها .</span></span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Beval</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: لتحديد بروز وغطس كل جزء من الشريط .</span></span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">AutoSize</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: يقسم الحجم افتراضياً بين جميع اجزاء الشريط بالتساوي ، ولكن ولأن بعض الاجزاء تكون كبيرة نضبط هذه الخاصية لها بحيث تتناسب مع حجم النص .</span><br />
</span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">سنضيف العناصر التالية داخل شريط الحالة :</div>
<span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">* تحديث الشريط :بعض المعلومات في هذا الشريط تحتاج إلى تحديث مثل عدد البضائع وغيرها .<br />
سيكون هذا الجزء بارزاً على هيئة الزر .<br />
* الوقت الحالي : وسنضبطه من خلال خاصية </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Style</span></span><span style="color: #000080;" class="mycode_color"> .<br />
* عدد البضائع .<br />
* عدد البضائع غير المتوفرة .<br />
وسنضبط قيمهما وقت التصميم ، وهما المعنيان بزر التحديث ، وقم بوضع قيم في خاصية </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Key</span></span><span style="color: #000080;" class="mycode_color"> ليمكنك ضبطها لاحقاً .<br />
* تشغيل الآلة الحاسبة .<br />
* تشغيل التقرير اليومي .<br />
* وأخيراً البريد الالكتروني ( راسلنا ) .</span></div>
<span style="color: #000080;" class="mycode_color"><br />
<br />
</span><br />
<div style="text-align: right;" class="mycode_align">بعد ذلك سنبدأ في البرمجة ، ونقوم بذلك عبر اختبار النص المضغوط ، ولأن بعض النصوص متغيرة فلن نستطيع اختبار كامل النص ، لذا سنقتصر على اختبار أول خمسة أحرف فقط ، وبناء عليه ننفذ بعض الأوامر التي تعلمناها سابقاً :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub StatusBar1_PanelClick(ByVal Panel As MSComctlLib.Panel)<br />
Select Case Left(Panel, 5)<br />
Case "تحديث"<br />
Refresh_St<br />
Case "عرض ا"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرض تقارير عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
Unload Frm_Report4<br />
Frm_Report4.Show<br />
Case "تشغيل"<br />
Frm_Calc.Width = 3105<br />
Frm_Calc.Height = 2640<br />
Frm_Calc.Top = 0<br />
Frm_Calc.Left = 0<br />
Frm_Calc.Show<br />
Case "لديك "<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Find.Show<br />
Frm_Find.Text1.Text = 0<br />
Frm_Find.Combo1.ListIndex = 3<br />
Frm_Find.Combo2.ListIndex = 2<br />
Frm_Find.Command2.Value = True<br />
Case "Hamma"<br />
Shell "explorer mailto:Hammada2091@Hotmail.com"<br />
End Select<br />
End Sub</code></div></div>أما في أمر التحديث :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Refresh_St()<br />
SQL = "select count(*) as cnt from tb_product"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
StatusBar1.Panels(3).Text = "عدد البضائع " &amp; T4!cnt &amp; " بضاعة"<br />
T4.Close<br />
SQL = "select count(*) as cnt from tb_product where count=0"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
StatusBar1.Panels(4).Text = "لديك " &amp; T4!cnt &amp; " بضاعة غير متوفرة"<br />
T4.Close<br />
End Sub</code></div></div></div>
<br />
<br />
<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">*** ملاحظة : نستطيع بنفس الطريقة الاعتماد على خاصية </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Index</span></span><span style="color: #ff0000;" class="mycode_color"> كبديل لقراءة النص المعروض بالشكل التالي :</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Select Case Panel.Index</code></div></div>ونعيد نفس الأكواد السابقة ، وهذه هي الطريقة الأمثل لهذه العملية .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div>
</span>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<div style="text-align: right;" class="mycode_align">سوف نحاول من خلال الدروس القادمة انهاء البرنامج واعداده للنشر ، وسنبدأ باضافة اللمسات الأخيرة على البرنامج .</div>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">التعامل مع شريط الحالة</div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">سنعود الآن مجدداً إلى الفورم الرئيسي ، وسنقوم باضافة شريط الحالة <span style="font-family: Arial;" class="mycode_font">StatusBar</span> ووضع بعض المهام الرئيسية فيه .<br />
من شريط أدوات التحكم قم باضافة <span style="font-family: Arial;" class="mycode_font">StatusBar</span> وستجده تلقائياً يظهر في أسفل الفورم ، من ضمن الخصائص داخل هذه الأداة اختر <span style="font-family: Arial;" class="mycode_font">Custem</span> واختر التبويب الثاني <span style="font-family: Arial;" class="mycode_font">Panels</span> .<br />
تجد زرين <span style="font-family: Arial;" class="mycode_font">Insert Panel</span> و <span style="font-family: Arial;" class="mycode_font">Remove Panel</span> لاضافة وحذف أجزاء من هذا الشريط .<br />
<br />
أيضاً تجد الخصائص التالية لكل جزء من هذا الشريط :</div>
<br />
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Text</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: لتحديد النص الذي يظهر في هذا الجزء .</span></span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Alignment</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: لتحديد محاذاة النص داخل هذا الجزء .</span></span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Style</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #008000;" class="mycode_color">: افتراضياً على </span></span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">text</span></span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #008000;" class="mycode_color"> حيث يوضع النص المحدد بالخاصية </span></span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Text</span></span><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font"> ، لكن يمكن اختيار عرض التاريخ أو الوقت الحالي وغيرها .</span></span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Beval</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: لتحديد بروز وغطس كل جزء من الشريط .</span></span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">AutoSize</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #008000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: يقسم الحجم افتراضياً بين جميع اجزاء الشريط بالتساوي ، ولكن ولأن بعض الاجزاء تكون كبيرة نضبط هذه الخاصية لها بحيث تتناسب مع حجم النص .</span><br />
</span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">سنضيف العناصر التالية داخل شريط الحالة :</div>
<span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">* تحديث الشريط :بعض المعلومات في هذا الشريط تحتاج إلى تحديث مثل عدد البضائع وغيرها .<br />
سيكون هذا الجزء بارزاً على هيئة الزر .<br />
* الوقت الحالي : وسنضبطه من خلال خاصية </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Style</span></span><span style="color: #000080;" class="mycode_color"> .<br />
* عدد البضائع .<br />
* عدد البضائع غير المتوفرة .<br />
وسنضبط قيمهما وقت التصميم ، وهما المعنيان بزر التحديث ، وقم بوضع قيم في خاصية </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Key</span></span><span style="color: #000080;" class="mycode_color"> ليمكنك ضبطها لاحقاً .<br />
* تشغيل الآلة الحاسبة .<br />
* تشغيل التقرير اليومي .<br />
* وأخيراً البريد الالكتروني ( راسلنا ) .</span></div>
<span style="color: #000080;" class="mycode_color"><br />
<br />
</span><br />
<div style="text-align: right;" class="mycode_align">بعد ذلك سنبدأ في البرمجة ، ونقوم بذلك عبر اختبار النص المضغوط ، ولأن بعض النصوص متغيرة فلن نستطيع اختبار كامل النص ، لذا سنقتصر على اختبار أول خمسة أحرف فقط ، وبناء عليه ننفذ بعض الأوامر التي تعلمناها سابقاً :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub StatusBar1_PanelClick(ByVal Panel As MSComctlLib.Panel)<br />
Select Case Left(Panel, 5)<br />
Case "تحديث"<br />
Refresh_St<br />
Case "عرض ا"<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع لعرض تقارير عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
Unload Frm_Report4<br />
Frm_Report4.Show<br />
Case "تشغيل"<br />
Frm_Calc.Width = 3105<br />
Frm_Calc.Height = 2640<br />
Frm_Calc.Top = 0<br />
Frm_Calc.Left = 0<br />
Frm_Calc.Show<br />
Case "لديك "<br />
If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Find.Show<br />
Frm_Find.Text1.Text = 0<br />
Frm_Find.Combo1.ListIndex = 3<br />
Frm_Find.Combo2.ListIndex = 2<br />
Frm_Find.Command2.Value = True<br />
Case "Hamma"<br />
Shell "explorer mailto:Hammada2091@Hotmail.com"<br />
End Select<br />
End Sub</code></div></div>أما في أمر التحديث :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Refresh_St()<br />
SQL = "select count(*) as cnt from tb_product"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
StatusBar1.Panels(3).Text = "عدد البضائع " &amp; T4!cnt &amp; " بضاعة"<br />
T4.Close<br />
SQL = "select count(*) as cnt from tb_product where count=0"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
StatusBar1.Panels(4).Text = "لديك " &amp; T4!cnt &amp; " بضاعة غير متوفرة"<br />
T4.Close<br />
End Sub</code></div></div></div>
<br />
<br />
<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">*** ملاحظة : نستطيع بنفس الطريقة الاعتماد على خاصية </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Index</span></span><span style="color: #ff0000;" class="mycode_color"> كبديل لقراءة النص المعروض بالشكل التالي :</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Select Case Panel.Index</code></div></div>ونعيد نفس الأكواد السابقة ، وهذه هي الطريقة الأمثل لهذه العملية .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</div>
</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الثامن والعشرون -الطباعة في البرنامج .]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5716</link>
			<pubDate>Mon, 15 Oct 2012 04:51:46 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5716</guid>
			<description><![CDATA[<span style="color: #0000ff;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size">[b]<span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
<br />
[/b]</span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align">في هذا الدرس الأخير من هذا القسم سوف نتطرق لطباعة بعض التقارير ونتائج البحث .</div>
</span></span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">تقرير البضائع .</div>
</span><br />
<div style="text-align: right;" class="mycode_align">سوف نصمم هذا التقرير ليعرض العمليات التي جرت على كل بضاعة ، وتنقسم إلى قسمين لا فرق بينهم سوى في خاصية <span style="font-family: Arial;" class="mycode_font">Kind</span> التي تحدد إما مبيعات أو مشتروات .<br />
لذا سوف نضع الزرين في <span style="font-family: Arial;" class="mycode_font">Frm_Report1</span> ، وسوف نرى الفرق الوحيد بينهم .<br />
<br />
والآن لنر عناصر التصميم ، فهو مثل التقرير السابق تماماً ، ما عدا أن الحقول سوف تكون :<br />
رقم - تاريخ - كمية - سعر .<br />
وسوف تكون مصادرها من قاعدة البيانات :</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Number - Date - Count - Price</div>
</span><br />
<div style="text-align: right;" class="mycode_align">سوف نضيف مربعات عناوين <span style="font-family: Arial;" class="mycode_font">RptLabel</span> من <span style="font-family: Arial;" class="mycode_font">l1</span> وحتى <span style="font-family: Arial;" class="mycode_font">l5</span> لنعرض فيهم معلومات هذه البضاعة .<br />
هكذا نكون قد انهينا التصميم ، وبعد رسم زري الطباعة للمبيعات والمشتريات تحت اسم <span style="font-family: Arial;" class="mycode_font">Command3(0</span>) للمبيعات و <span style="font-family: Arial;" class="mycode_font">Command3(1</span>) للمشتريات ، فسوف نبدا الكود بالطريقة المعتادة بالشكل التالي :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Dim cn As ADODB.Connection<br />
Dim Rs As ADODB.Recordset<br />
Set cn = New ADODB.Connection<br />
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" &amp; "Data Source=" &amp; Folder &amp; "db1.mdb;" &amp; "Jet OLEDB<img src="http://www.vb4arab.com/vb/images/smilies/biggrin.gif" loading="lazy"  alt="[صورة مرفقة: biggrin.gif]" class="mycode_img" />atabase Password=" &amp; PassWord<br />
Set Rs = New ADODB.Recordset</div>
</span><br />
<br />
<div style="text-align: right;" class="mycode_align">نقطة الاختلاف هي تحديد مصدر البيانات ، وحيث أن <span style="font-family: Arial;" class="mycode_font">Index</span> يمثل لنا 0 أو 1 مثل تلك التي تمثلها الخاصية <span style="font-family: Arial;" class="mycode_font">Kind</span> في قاعدة البيانات للمبيعات والمشتريات ، فإننا نستطيع كتابة الكود التالي :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Set Rs = cn.Execute(sql_now &amp; " and kind=" &amp; Index</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span></div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Set DataReport2.DataSource = Rs</div>
</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">ولكن من هي</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">sql_now</span></span><span style="color: #ff0000;" class="mycode_color"> ؟</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">لأننا لن نستطيع لاحقاً أن نعرف العملية الحالية لأن المستخدم قد يغير التاريخ دون ضغط زر ( تنفيذ ) مما يؤدي لحدوث خطأ ، من أجل ذلك سنعرف هذا المتغير في قسم التصاريخ <span style="font-family: Arial;" class="mycode_font">Genral</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Dim sql_now</div>
</span><br />
<br />
<div style="text-align: right;" class="mycode_align">وفي الجزء الأول من كود التنفيذ سنغير الشكل ليصبح كالتالي :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">If Option1.Value = True Then</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">sql = "select * from tb_sel_bay where product=" &amp; num &amp; " and kind=" &amp; i</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">sql_now = "select * from tb_sel_bay where product=" &amp; num<br />
Else</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">sql = "select * from tb_sel_bay where product=" &amp; num &amp; " and kind=" &amp; i &amp; " and date between#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "# and #" &amp; Format(MaskEdBox2.Text, "MM/DD/YYYY</span>") &amp; "#"<br />
<span style="font-family: Arial;" class="mycode_font">sql_now = "select * from tb_sel_bay where product=" &amp; num &amp; " and date between#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "# and #" &amp; Format(MaskEdBox2.Text, "MM/DD/YYYY</span>") &amp; "#"</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">End If</div>
</span><br />
<br />
<div style="text-align: right;" class="mycode_align">وهذا ما يجعل <span style="font-family: Arial;" class="mycode_font">sql_now</span> يحتوي على الوضع الحالي دون تفريق بين المبيعات والمشتريات ، وهذا ما سنقوم بعمله في كود الطباعة .<br />
<br />
نعود لمواصلة الكود ، وسننقل البيانات نقلاً طبيعياً كالتالي ، ثم نقوم باظهار التقرير بصورة طبيعية ، وقد شرحت معظم هذه الطرق في التقرير السابق :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataReport2.Sections("Section2").Controls("l1").Ca ption = Lbl_name<br />
DataReport2.Sections("Section2").Controls("l2").Ca ption = lbl_cate<br />
DataReport2.Sections("Section2").Controls("l3").Ca ption = lbl_fact<br />
DataReport2.Sections("Section2").Controls("l4").Ca ption = lbl_prc<br />
DataReport2.Sections("Section2").Controls("l5").Ca ption = lbl_cnt<br />
Select Case Index<br />
Case 0</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">DataReport2.Sections("Section2").Controls("label1" ).Caption</span> = "تقرير باجمالي مبيعات بضاعة"</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Case 1</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">DataReport2.Sections("Section2").Controls("label1" ).Caption</span> = "تقرير باجمالي مشتريات بضاعة"</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">End Select<br />
DataReport2.Sections("Section2").Controls("label3" ).Caption = Info(2</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span></div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataReport2.Sections("Section2").Controls("label4" ).Caption</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">= "هاتف : " &amp; </span><span style="font-family: Arial;" class="mycode_font">Info(3</span><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataReport2.Show</div>
</span><br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Set cn = Nothing<br />
Set Rs = Nothing</div>
</span></span>]]></description>
			<content:encoded><![CDATA[<span style="color: #0000ff;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size">[b]<span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
<br />
[/b]</span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align">في هذا الدرس الأخير من هذا القسم سوف نتطرق لطباعة بعض التقارير ونتائج البحث .</div>
</span></span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">تقرير البضائع .</div>
</span><br />
<div style="text-align: right;" class="mycode_align">سوف نصمم هذا التقرير ليعرض العمليات التي جرت على كل بضاعة ، وتنقسم إلى قسمين لا فرق بينهم سوى في خاصية <span style="font-family: Arial;" class="mycode_font">Kind</span> التي تحدد إما مبيعات أو مشتروات .<br />
لذا سوف نضع الزرين في <span style="font-family: Arial;" class="mycode_font">Frm_Report1</span> ، وسوف نرى الفرق الوحيد بينهم .<br />
<br />
والآن لنر عناصر التصميم ، فهو مثل التقرير السابق تماماً ، ما عدا أن الحقول سوف تكون :<br />
رقم - تاريخ - كمية - سعر .<br />
وسوف تكون مصادرها من قاعدة البيانات :</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Number - Date - Count - Price</div>
</span><br />
<div style="text-align: right;" class="mycode_align">سوف نضيف مربعات عناوين <span style="font-family: Arial;" class="mycode_font">RptLabel</span> من <span style="font-family: Arial;" class="mycode_font">l1</span> وحتى <span style="font-family: Arial;" class="mycode_font">l5</span> لنعرض فيهم معلومات هذه البضاعة .<br />
هكذا نكون قد انهينا التصميم ، وبعد رسم زري الطباعة للمبيعات والمشتريات تحت اسم <span style="font-family: Arial;" class="mycode_font">Command3(0</span>) للمبيعات و <span style="font-family: Arial;" class="mycode_font">Command3(1</span>) للمشتريات ، فسوف نبدا الكود بالطريقة المعتادة بالشكل التالي :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Dim cn As ADODB.Connection<br />
Dim Rs As ADODB.Recordset<br />
Set cn = New ADODB.Connection<br />
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" &amp; "Data Source=" &amp; Folder &amp; "db1.mdb;" &amp; "Jet OLEDB<img src="http://www.vb4arab.com/vb/images/smilies/biggrin.gif" loading="lazy"  alt="[صورة مرفقة: biggrin.gif]" class="mycode_img" />atabase Password=" &amp; PassWord<br />
Set Rs = New ADODB.Recordset</div>
</span><br />
<br />
<div style="text-align: right;" class="mycode_align">نقطة الاختلاف هي تحديد مصدر البيانات ، وحيث أن <span style="font-family: Arial;" class="mycode_font">Index</span> يمثل لنا 0 أو 1 مثل تلك التي تمثلها الخاصية <span style="font-family: Arial;" class="mycode_font">Kind</span> في قاعدة البيانات للمبيعات والمشتريات ، فإننا نستطيع كتابة الكود التالي :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Set Rs = cn.Execute(sql_now &amp; " and kind=" &amp; Index</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span></div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Set DataReport2.DataSource = Rs</div>
</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">ولكن من هي</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">sql_now</span></span><span style="color: #ff0000;" class="mycode_color"> ؟</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">لأننا لن نستطيع لاحقاً أن نعرف العملية الحالية لأن المستخدم قد يغير التاريخ دون ضغط زر ( تنفيذ ) مما يؤدي لحدوث خطأ ، من أجل ذلك سنعرف هذا المتغير في قسم التصاريخ <span style="font-family: Arial;" class="mycode_font">Genral</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Dim sql_now</div>
</span><br />
<br />
<div style="text-align: right;" class="mycode_align">وفي الجزء الأول من كود التنفيذ سنغير الشكل ليصبح كالتالي :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">If Option1.Value = True Then</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">sql = "select * from tb_sel_bay where product=" &amp; num &amp; " and kind=" &amp; i</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">sql_now = "select * from tb_sel_bay where product=" &amp; num<br />
Else</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">sql = "select * from tb_sel_bay where product=" &amp; num &amp; " and kind=" &amp; i &amp; " and date between#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "# and #" &amp; Format(MaskEdBox2.Text, "MM/DD/YYYY</span>") &amp; "#"<br />
<span style="font-family: Arial;" class="mycode_font">sql_now = "select * from tb_sel_bay where product=" &amp; num &amp; " and date between#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "# and #" &amp; Format(MaskEdBox2.Text, "MM/DD/YYYY</span>") &amp; "#"</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">End If</div>
</span><br />
<br />
<div style="text-align: right;" class="mycode_align">وهذا ما يجعل <span style="font-family: Arial;" class="mycode_font">sql_now</span> يحتوي على الوضع الحالي دون تفريق بين المبيعات والمشتريات ، وهذا ما سنقوم بعمله في كود الطباعة .<br />
<br />
نعود لمواصلة الكود ، وسننقل البيانات نقلاً طبيعياً كالتالي ، ثم نقوم باظهار التقرير بصورة طبيعية ، وقد شرحت معظم هذه الطرق في التقرير السابق :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataReport2.Sections("Section2").Controls("l1").Ca ption = Lbl_name<br />
DataReport2.Sections("Section2").Controls("l2").Ca ption = lbl_cate<br />
DataReport2.Sections("Section2").Controls("l3").Ca ption = lbl_fact<br />
DataReport2.Sections("Section2").Controls("l4").Ca ption = lbl_prc<br />
DataReport2.Sections("Section2").Controls("l5").Ca ption = lbl_cnt<br />
Select Case Index<br />
Case 0</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">DataReport2.Sections("Section2").Controls("label1" ).Caption</span> = "تقرير باجمالي مبيعات بضاعة"</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Case 1</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font">DataReport2.Sections("Section2").Controls("label1" ).Caption</span> = "تقرير باجمالي مشتريات بضاعة"</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">End Select<br />
DataReport2.Sections("Section2").Controls("label3" ).Caption = Info(2</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span></div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataReport2.Sections("Section2").Controls("label4" ).Caption</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">= "هاتف : " &amp; </span><span style="font-family: Arial;" class="mycode_font">Info(3</span><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataReport2.Show</div>
</span><br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Set cn = Nothing<br />
Set Rs = Nothing</div>
</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5715</link>
			<pubDate>Mon, 15 Oct 2012 04:40:53 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5715</guid>
			<description><![CDATA[<span style="color: #0000ff;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size">[b]<span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span><br />
</div>
<div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
[/b]</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">ما هي الداتا ريبورت</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">DataReport</span></span><span style="color: #ff0000;" class="mycode_color"> ؟</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">هي إحدى نماذج العرض المرفقة افترضياً مع الفيجوال بيسك ، وهي مصممة لطباعة التقارير والجداول من قواعد البيانات ، وهي تستقبل جملة استعلام أو اسم جدول لكي تقوم بطباعته . وهناك نماذج أو أدوات أخرى في هذا المجال من أشهرها الكريستال ريبورت وهو أكثر احترافية من الداتا ريبورت ولكنه ليس موجود افتراضياً مع مكتبات فيجوال بيسك ، إذا كنت مهتماً بمعرفة المزيد عن الكريستال ريبورت فيمكنك استخدام هذا الرابط :</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">link</div>
</span><br />
<div style="text-align: right;" class="mycode_align">وسوف نتعرف في هذه الدروس على كيفية التعامل مع <span style="font-family: Arial;" class="mycode_font">DataReport</span> .</div>
<br />
<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">لنضيف</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">DataRreport</span></span><span style="color: #ff0000;" class="mycode_color"> فإننا ومن خلال النقر بزر الماوس الايمن على الفورم سوف تظهر لنا </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Add</span></span><span style="color: #ff0000;" class="mycode_color"> ، ونختار منها </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">DataReport</span></span><span style="color: #ff0000;" class="mycode_color"> .</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">نلاحظ أن الصفحة التي ظهرت لنا مقسمة إلى خمسة اقسام :</div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Report Header</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: البيانات التي تظهر فقط مع أول صفحة في التقرير .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Page Header</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: البيانات التي تظهر على رأس كل صفحة .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Detailes</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: محتويات التقرير ، ويمكن ان تعرض على اكثر من صفحة .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Page Footer</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: ما يظهر مع كل آخر صفحة .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Report Footer</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: بيانات تظهر في آخر صفحة في التقرير فقط .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">
والآن سوف تجد على يمين الشاشة مربع أدوات تحكم <span style="font-family: Arial;" class="mycode_font">Control Box</span> غير المعتاد في شاشات فيجوال بيسك التقليدية تحت تبويب <span style="font-family: Arial;" class="mycode_font">Tab</span> باسم<span style="font-family: Arial;" class="mycode_font">DataReport</span> ، وتحتوي على الأدوات التالية - من اليسار - :</div>
<span style="color: #008080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Pointer</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: وهو مؤشر السهم المعروف في الفيجوال بيسك . ويستخدم للتحديد وغيره مما لا يلزمنا شرحه .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptLabel</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: هو مجرد أداة لعرض النصوص التي لا تعتمد على قاعدة البيانات ، يمكن تغيير محتواها فقط بواسطة الكود قبل العرض مثلاً ، وتستخدم لوضع العنوان مثلاً وما شابه .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptText</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: هذا النوع مخصص للارتباط بحقل معين في قاعدة البيانات ، ويستخدم لوضع بيانات العملاء على سبيل المثال ، وسوف نتعرف لاحقاً على كيفية القيام بذلك .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptImage</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">: لوضع صورة في التقرير . يمكن ضبطها أيضاً وقت التصميم باستخدام </span></span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">LoadPicture</span></span><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font"> المعروفة .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptLine</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: خط لتنسيق طباعة التقرير .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptShape</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">: أيضاً مثل ال </span></span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Line</span></span><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font"> السابق .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptFunction</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: تستخدم لعرض بعض العمليات التي قد نحتاج إليها لاحقاً ، وسنرى أمثلة عن ذلك لاحقاً .</span></span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">
وللبدء في التعامل مع البيانات من خلال زر عرض التقرير .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">أولاً : للتحكم في الخصائص الثابتة .</div>
</span><div style="text-align: right;" class="mycode_align">مثل بيانات <span style="font-family: Arial;" class="mycode_font">Rptlable</span> ، الألوان وغير ذلك .<br />
قم أولاً بوصف اسم <span style="font-family: Arial;" class="mycode_font">DataReport</span> ، ثم اسم القسم ، ثم اسم الاداة بالشكل التالي :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataReport2.Sections("Section2").Controls("l1").Ca ption = Lbl_name</div>
</span><br />
<div style="text-align: right;" class="mycode_align">ويمكن بنفس الطريقة التحكم بالالوان وما شابه ذلك .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">القسم الثاني : كيفية ربط ال</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">RptTextBox</span></span><span style="color: #0000ff;" class="mycode_color"> بقاعدة البيانات .</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">خلال مرحلة التصميم احرص على ضبط الخواص التالية :</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataMember</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">و </span><span style="font-family: Arial;" class="mycode_font">DataFields</span><span style="font-family: Times New Roman;" class="mycode_font"> لتحديد اسم قاعدة البيانات ( كائن قاعدة البيانات أو اداتها ) ، و اسم الحقل المطلوب عرضه في هذا المكان .</span><br />
ويمكن ضبطهما وقت التصميم أو التنفيذ ، ففي وقت التصميم وفي حقل <span style="font-family: Arial;" class="mycode_font">DataFields</span> يمكنك كتابة اسم الحقل مثل <span style="font-family: Arial;" class="mycode_font">fullname</span> ، في حين قم مثلاً بتنفيذ أمر تحديد مصدر البيانات وقت التنفيذ بالشكل التالي :</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Set DataReport1.DataSource = Rs</div>
</span><div style="text-align: right;" class="mycode_align">وهذا ما سنقوم بتوضيحه عند البدء في العمل مع الداتا ريبورت في برنامجنا .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">القسم الثالث : كيفية استخدام</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">RptLable</span></span><span style="color: #0000ff;" class="mycode_color"> لعرض بعض العمليات .</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">يتم ذلك بوضع القيمة المناسبة في خاصية <span style="font-family: Arial;" class="mycode_font">Caption</span> لهذه الأداة ، فمثلاً لو قمنا بكتابة %<span style="font-family: Arial;" class="mycode_font">D</span> فإن ذلك يعطينا تاريخ اليوم ، %<span style="font-family: Arial;" class="mycode_font">T</span> تعطينا الوقت ، %<span style="font-family: Arial;" class="mycode_font">P</span> تعطينا عدد الصفحات الاجمالي ، أما %<span style="font-family: Arial;" class="mycode_font">p</span> فتعطينا رقم الصفحة الحالية .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">القسم الرابع : كيفية استخدام</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">RptFunction</span></span></div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">من خلال الخاصية <span style="font-family: Arial;" class="mycode_font">FucntionType</span> نختار طبيعة العملية التي نود القيام بها ، وذلك بعض ضبط خصائص قاعدة البيانات الخاصة بها كما اسلفنا في <span style="font-family: Arial;" class="mycode_font">RptText</span> ، ولن نستخدم هذه الاداة في برنامجنا .</div>
</span>]]></description>
			<content:encoded><![CDATA[<span style="color: #0000ff;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size">[b]<span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span><br />
</div>
<div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
[/b]</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">ما هي الداتا ريبورت</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">DataReport</span></span><span style="color: #ff0000;" class="mycode_color"> ؟</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">هي إحدى نماذج العرض المرفقة افترضياً مع الفيجوال بيسك ، وهي مصممة لطباعة التقارير والجداول من قواعد البيانات ، وهي تستقبل جملة استعلام أو اسم جدول لكي تقوم بطباعته . وهناك نماذج أو أدوات أخرى في هذا المجال من أشهرها الكريستال ريبورت وهو أكثر احترافية من الداتا ريبورت ولكنه ليس موجود افتراضياً مع مكتبات فيجوال بيسك ، إذا كنت مهتماً بمعرفة المزيد عن الكريستال ريبورت فيمكنك استخدام هذا الرابط :</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">link</div>
</span><br />
<div style="text-align: right;" class="mycode_align">وسوف نتعرف في هذه الدروس على كيفية التعامل مع <span style="font-family: Arial;" class="mycode_font">DataReport</span> .</div>
<br />
<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">لنضيف</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">DataRreport</span></span><span style="color: #ff0000;" class="mycode_color"> فإننا ومن خلال النقر بزر الماوس الايمن على الفورم سوف تظهر لنا </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Add</span></span><span style="color: #ff0000;" class="mycode_color"> ، ونختار منها </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">DataReport</span></span><span style="color: #ff0000;" class="mycode_color"> .</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">نلاحظ أن الصفحة التي ظهرت لنا مقسمة إلى خمسة اقسام :</div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Report Header</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: البيانات التي تظهر فقط مع أول صفحة في التقرير .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Page Header</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: البيانات التي تظهر على رأس كل صفحة .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Detailes</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: محتويات التقرير ، ويمكن ان تعرض على اكثر من صفحة .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Page Footer</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: ما يظهر مع كل آخر صفحة .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Report Footer</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #800080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: بيانات تظهر في آخر صفحة في التقرير فقط .</span></span></div>
<span style="color: #800080;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">
والآن سوف تجد على يمين الشاشة مربع أدوات تحكم <span style="font-family: Arial;" class="mycode_font">Control Box</span> غير المعتاد في شاشات فيجوال بيسك التقليدية تحت تبويب <span style="font-family: Arial;" class="mycode_font">Tab</span> باسم<span style="font-family: Arial;" class="mycode_font">DataReport</span> ، وتحتوي على الأدوات التالية - من اليسار - :</div>
<span style="color: #008080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Pointer</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: وهو مؤشر السهم المعروف في الفيجوال بيسك . ويستخدم للتحديد وغيره مما لا يلزمنا شرحه .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptLabel</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: هو مجرد أداة لعرض النصوص التي لا تعتمد على قاعدة البيانات ، يمكن تغيير محتواها فقط بواسطة الكود قبل العرض مثلاً ، وتستخدم لوضع العنوان مثلاً وما شابه .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptText</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: هذا النوع مخصص للارتباط بحقل معين في قاعدة البيانات ، ويستخدم لوضع بيانات العملاء على سبيل المثال ، وسوف نتعرف لاحقاً على كيفية القيام بذلك .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptImage</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">: لوضع صورة في التقرير . يمكن ضبطها أيضاً وقت التصميم باستخدام </span></span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">LoadPicture</span></span><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font"> المعروفة .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptLine</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: خط لتنسيق طباعة التقرير .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptShape</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">: أيضاً مثل ال </span></span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Line</span></span><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font"> السابق .</span><br />
</span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">RptFunction</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">: تستخدم لعرض بعض العمليات التي قد نحتاج إليها لاحقاً ، وسنرى أمثلة عن ذلك لاحقاً .</span></span></div>
<span style="color: #000080;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">
وللبدء في التعامل مع البيانات من خلال زر عرض التقرير .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">أولاً : للتحكم في الخصائص الثابتة .</div>
</span><div style="text-align: right;" class="mycode_align">مثل بيانات <span style="font-family: Arial;" class="mycode_font">Rptlable</span> ، الألوان وغير ذلك .<br />
قم أولاً بوصف اسم <span style="font-family: Arial;" class="mycode_font">DataReport</span> ، ثم اسم القسم ، ثم اسم الاداة بالشكل التالي :</div>
<br />
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataReport2.Sections("Section2").Controls("l1").Ca ption = Lbl_name</div>
</span><br />
<div style="text-align: right;" class="mycode_align">ويمكن بنفس الطريقة التحكم بالالوان وما شابه ذلك .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">القسم الثاني : كيفية ربط ال</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">RptTextBox</span></span><span style="color: #0000ff;" class="mycode_color"> بقاعدة البيانات .</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">خلال مرحلة التصميم احرص على ضبط الخواص التالية :</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">DataMember</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">و </span><span style="font-family: Arial;" class="mycode_font">DataFields</span><span style="font-family: Times New Roman;" class="mycode_font"> لتحديد اسم قاعدة البيانات ( كائن قاعدة البيانات أو اداتها ) ، و اسم الحقل المطلوب عرضه في هذا المكان .</span><br />
ويمكن ضبطهما وقت التصميم أو التنفيذ ، ففي وقت التصميم وفي حقل <span style="font-family: Arial;" class="mycode_font">DataFields</span> يمكنك كتابة اسم الحقل مثل <span style="font-family: Arial;" class="mycode_font">fullname</span> ، في حين قم مثلاً بتنفيذ أمر تحديد مصدر البيانات وقت التنفيذ بالشكل التالي :</div>
<span style="font-family: Arial;" class="mycode_font"><div style="text-align: right;" class="mycode_align">Set DataReport1.DataSource = Rs</div>
</span><div style="text-align: right;" class="mycode_align">وهذا ما سنقوم بتوضيحه عند البدء في العمل مع الداتا ريبورت في برنامجنا .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">القسم الثالث : كيفية استخدام</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">RptLable</span></span><span style="color: #0000ff;" class="mycode_color"> لعرض بعض العمليات .</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">يتم ذلك بوضع القيمة المناسبة في خاصية <span style="font-family: Arial;" class="mycode_font">Caption</span> لهذه الأداة ، فمثلاً لو قمنا بكتابة %<span style="font-family: Arial;" class="mycode_font">D</span> فإن ذلك يعطينا تاريخ اليوم ، %<span style="font-family: Arial;" class="mycode_font">T</span> تعطينا الوقت ، %<span style="font-family: Arial;" class="mycode_font">P</span> تعطينا عدد الصفحات الاجمالي ، أما %<span style="font-family: Arial;" class="mycode_font">p</span> فتعطينا رقم الصفحة الحالية .</div>
<br />
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">القسم الرابع : كيفية استخدام</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">RptFunction</span></span></div>
<span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">من خلال الخاصية <span style="font-family: Arial;" class="mycode_font">FucntionType</span> نختار طبيعة العملية التي نود القيام بها ، وذلك بعض ضبط خصائص قاعدة البيانات الخاصة بها كما اسلفنا في <span style="font-family: Arial;" class="mycode_font">RptText</span> ، ولن نستخدم هذه الاداة في برنامجنا .</div>
</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5714</link>
			<pubDate>Mon, 15 Oct 2012 04:38:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5714</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span><br />
<span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">التقارير اليومية .</span></span><br />
<br />
<br />
في هذا الدرس سوف نتعرف على كيفية عمل نموذج مبسط للتقارير اليومية .</div>
<br />
<br />
<span style="color: #800000;" class="mycode_color">ما نحتاج إليه في هذه الشاشة هو أداة <br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">MaskEdBox1</span></span><span style="color: #800000;" class="mycode_color"> للتاريخ ، والذي سيكون افتراضياً تاريخ اليوم .</span><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">نحتاج أيضاً إلى زر للتنفيذ ، وإلى جدولين لعرض المبيعات والمشتريات ، وزر لاغلاق الفورم .</span><br />
<span style="color: #800000;" class="mycode_color">أيضاً نحتاج إلى خمسة </span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Labels</span></span><span style="color: #800000;" class="mycode_color"> على النحو التالي :</span><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">اليوم من الأسبوع : عدد عمليات المبيعات - عدد عمليات المشتريات - اجمالي سعر المبيعات - اجمالي سعر المشتريات .</span><br />
<br />
<br />
وأخيراً نضبط خصائص الفورم ، فنجعل <span style="font-family: Arial;" class="mycode_font">MDIChild=True</span> ونزيل عناصر التحكم من أعلى الفورم .<br />
والآن نبدا في كتابة أكواد هذا الفورم .<br />
<br />
<span style="color: #0000ff;" class="mycode_color">فأولاً نضبط احداثيات الفورم كما اعتدنا مع كل فورم من هذا النوع :</span></div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Me.Width = 4800<br />
Me.Height = 4905<br />
Me.Left = ((MDIForm1.Width - Me.Width) / 2)<br />
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40<br />
Me.Show[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">ثم نضبط تاريخ اليوم ونضعه في الأداة :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Dim Myday, Mymonth, Myyear<br />
Myday = Day(Now)<br />
If Len(Myday) = 1 Then Myday = 0 &amp; Myday<br />
Mymonth = Month(Now)<br />
If Len(Mymonth) = 1 Then Mymonth = 0 &amp; Mymonth<br />
Myyear = Year(Now)<br />
MaskEdBox1.Text = Myday &amp; "/" &amp; Mymonth &amp; "/" &amp; Myyear[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">وأخيراً نقوم بالضغط على الزر الخاص بالتنفيذ ليكون افتراضياً تاريخ اليوم :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Command2.Value = True[/align]</code></div></div><div style="text-align: right;" class="mycode_align">والآن سنقوم بعمل دالة <span style="font-family: Arial;" class="mycode_font">Function</span> نقوم بتمرير رقم اليوم لها وتعطينا اسم اليوم ، ونستخدم في ذلك الدالة <span style="font-family: Arial;" class="mycode_font">WeekDay</span> ، ونبدأ أولاً بتكوين الدالة :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Function dayname(x As Date) As String<br />
<br />
End Function[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">والآن أصبح لدينا التاريخ في متغير <span style="font-family: Arial;" class="mycode_font">x</span> وسنستخدم معه الدالة <span style="font-family: Arial;" class="mycode_font">WeekDay</span> والتي نمرر لها بارميترين ( التاريخ ، ويوم بداية الأسبوع ) وتعيد رقم اليوم من الأسبوع :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]x = Weekday(x, vbSaturday)[/align]</code></div></div><div style="text-align: right;" class="mycode_align">والآن سنحول هذا الرقم إلى نص بالشكل التالي :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Select Case x<br />
Case 1<br />
dayname = "السبت"<br />
Case 2<br />
dayname = "الأحد"<br />
Case 3<br />
dayname = "الاثنين"<br />
Case 4<br />
dayname = "الثلاثاء"<br />
Case 5<br />
dayname = "الأربعاء"<br />
Case 6<br />
dayname = "الخميس"<br />
Case 7<br />
daynmae = "الجمعة"<br />
End Select[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color">والآن نبدأ في تكوين زر </span></span></div>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color"><br />
</span></span></div>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Command2</span></span><span style="color: #008000;" class="mycode_color"> والخاص بـ ( نفذ ) .</span></div>
</span><div style="text-align: right;" class="mycode_align">
<div style="text-align: right;" class="mycode_align">نعرف أولاً أربع متغيرات لنخزن فيها معلومات ال <span style="font-family: Arial;" class="mycode_font">Labels</span> وذلك في قسم التصاريح <span style="font-family: Arial;" class="mycode_font">Genral</span> :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Dim a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">وفي بداية أوامر هذا الزر نقوم بتصفيرها كلها :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]a1 = 0: a2 = 0: a3 = 0: a4 = 0[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">ونستدعي الدالة التي قمنا بعملها ونضعها في مكانها المخصص :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]x = dayname(MaskEdBox1.Text)<br />
Lbl_day.Caption = "اليوم من الأسبوع : " &amp; x[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بعد ذلك نقوم بالاستعلام عن عمليات اليوم ، البيع ثم الشراء ، ونضع القيم المستقاه بواسطة دوال الاستعلام في المتغيرات التي قمنا بتعريفها :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select sum(price) as prc,count(*) as cnt from tb_sel_bay where kind=0 and date=#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "#"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
If T4!cnt &lt;&gt; 0 Then<br />
a1 = T4!cnt<br />
a2 = T4!prc<br />
End If<br />
T4.Close<br />
<br />
SQL = "select sum(price) as prc,count(*) as cnt from tb_sel_bay where kind=1 and date=#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "#"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
<br />
If T4!cnt &lt;&gt; 0 Then<br />
a3 = T4!cnt<br />
a4 = T4!prc<br />
End If<br />
T4.Close<br />
lbl_cnt1.Caption = "عدد مبيعات اليوم : " &amp; a1<br />
lbl_prc1.Caption = "اجمالي سعر المبيعات : " &amp; a2<br />
lbl_cnt2.Caption = "عدد مشتريات اليوم : " &amp; a3<br />
lbl_prc2.Caption = "اجمالي سعر المشتريات : " &amp; a4[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">والآن نقوم ببناء الجدولين ، ولاحظ أنه يمكننا الاستفادة من خاصية </span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Index</span></span><span style="color: #0000ff;" class="mycode_color"> كما في الشاشات السابقة :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Flex1<br />
Flex2[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #ff0000;" class="mycode_color">واللذان قمنا بعملهما سابقاً بالشكل التالي :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Flex1()<br />
MSFlexGrid1.Clear<br />
MSFlexGrid1.Cols = 5<br />
MSFlexGrid1.Rows = a1 + 1<br />
<br />
MSFlexGrid1.Row = 0<br />
MSFlexGrid1.Col = 0<br />
MSFlexGrid1.Text = "ت"<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = "رقم"<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = "البضاعة"<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = "الكمية"<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = "السعر"<br />
<br />
MSFlexGrid1.ColAlignment(0) = 5<br />
MSFlexGrid1.ColAlignment(1) = 5<br />
MSFlexGrid1.ColAlignment(2) = 5<br />
MSFlexGrid1.ColAlignment(3) = 5<br />
MSFlexGrid1.ColAlignment(4) = 5<br />
<br />
MSFlexGrid1.ColWidth(0) = 500<br />
MSFlexGrid1.ColWidth(1) = 500<br />
MSFlexGrid1.ColWidth(2) = 1500<br />
MSFlexGrid1.ColWidth(3) = 1200<br />
End Sub<br />
<br />
<br />
Private Sub Flex2()<br />
MSFlexGrid2.Clear<br />
MSFlexGrid2.Cols = 5<br />
MSFlexGrid2.Rows = a3 + 1<br />
<br />
MSFlexGrid2.Row = 0<br />
MSFlexGrid2.Col = 0<br />
MSFlexGrid2.Text = "ت"<br />
MSFlexGrid2.Col = 1<br />
MSFlexGrid2.Text = "رقم"<br />
MSFlexGrid2.Col = 2<br />
MSFlexGrid2.Text = "البضاعة"<br />
MSFlexGrid2.Col = 3<br />
MSFlexGrid2.Text = "الكمية"<br />
MSFlexGrid2.Col = 4<br />
MSFlexGrid2.Text = "السعر"<br />
<br />
MSFlexGrid2.ColAlignment(0) = 5<br />
MSFlexGrid2.ColAlignment(1) = 5<br />
MSFlexGrid2.ColAlignment(2) = 5<br />
MSFlexGrid2.ColAlignment(3) = 5<br />
MSFlexGrid2.ColAlignment(4) = 5<br />
<br />
MSFlexGrid2.ColWidth(0) = 500<br />
MSFlexGrid2.ColWidth(1) = 500<br />
MSFlexGrid2.ColWidth(2) = 1500<br />
MSFlexGrid2.ColWidth(3) = 1200<br />
End Sub[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">ثم نقوم بالاستعلام عن البيانات المطلوبة ، ووضعها في اماكنها المناسبة عبر استدعاء الحدثين </span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Put_Data1</span></span><span style="color: #0000ff;" class="mycode_color"> و </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Put_Data2</span></span><span style="color: #0000ff;" class="mycode_color"> :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select * from tb_sel_bay where kind=0 and date=#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "#"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
Put_Data1<br />
T4.Close<br />
<br />
SQL = "select * from tb_sel_bay where kind=1 and date=#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "#"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
Put_Data2<br />
T4.Close[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">في حدث <span style="font-family: Arial;" class="mycode_font">Put_Data</span> سنقوم بوضع البيانات في الجدول كما هي العادة ، ولكن المخزن لدينا في الجدول هو رقم البضاعة وليس اسمها ، لذا سنقوم بالاستعلام عنه أولاً ، وسنضطر لتعرف <span style="font-family: Arial;" class="mycode_font">T6</span> في الموديول :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Public T6 As Recordset[/align]</code></div></div><div style="text-align: right;" class="mycode_align">بهذا يكون شكل الأمر </div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Put_Data1()<br />
n = 0<br />
<br />
If T4.RecordCount &lt;&gt; 0 Then<br />
T4.MoveLast<br />
T4.MoveFirst<br />
End If<br />
<br />
With MSFlexGrid1<br />
<br />
For i = 0 To T4.RecordCount - 1<br />
n = n + 1<br />
.Row = n<br />
.Col = 0<br />
.Text = n<br />
.Col = 1<br />
.Text = T4!Number<br />
.Col = 2<br />
SQL = "select name from tb_product where number=" &amp; T4!product<br />
Set T6 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
.Text = T6!Name<br />
T6.Close<br />
.Col = 3<br />
.Text = T4!Count<br />
.Col = 4<br />
.Text = T4!price<br />
T4.MoveNext<br />
Next i<br />
End With<br />
End Sub[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">وكذلك الثاني تماماً .</div>
<br />
يتبع ..<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span><br />
<span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">التقارير اليومية .</span></span><br />
<br />
<br />
في هذا الدرس سوف نتعرف على كيفية عمل نموذج مبسط للتقارير اليومية .</div>
<br />
<br />
<span style="color: #800000;" class="mycode_color">ما نحتاج إليه في هذه الشاشة هو أداة <br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">MaskEdBox1</span></span><span style="color: #800000;" class="mycode_color"> للتاريخ ، والذي سيكون افتراضياً تاريخ اليوم .</span><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">نحتاج أيضاً إلى زر للتنفيذ ، وإلى جدولين لعرض المبيعات والمشتريات ، وزر لاغلاق الفورم .</span><br />
<span style="color: #800000;" class="mycode_color">أيضاً نحتاج إلى خمسة </span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Labels</span></span><span style="color: #800000;" class="mycode_color"> على النحو التالي :</span><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">اليوم من الأسبوع : عدد عمليات المبيعات - عدد عمليات المشتريات - اجمالي سعر المبيعات - اجمالي سعر المشتريات .</span><br />
<br />
<br />
وأخيراً نضبط خصائص الفورم ، فنجعل <span style="font-family: Arial;" class="mycode_font">MDIChild=True</span> ونزيل عناصر التحكم من أعلى الفورم .<br />
والآن نبدا في كتابة أكواد هذا الفورم .<br />
<br />
<span style="color: #0000ff;" class="mycode_color">فأولاً نضبط احداثيات الفورم كما اعتدنا مع كل فورم من هذا النوع :</span></div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Me.Width = 4800<br />
Me.Height = 4905<br />
Me.Left = ((MDIForm1.Width - Me.Width) / 2)<br />
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40<br />
Me.Show[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">ثم نضبط تاريخ اليوم ونضعه في الأداة :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Dim Myday, Mymonth, Myyear<br />
Myday = Day(Now)<br />
If Len(Myday) = 1 Then Myday = 0 &amp; Myday<br />
Mymonth = Month(Now)<br />
If Len(Mymonth) = 1 Then Mymonth = 0 &amp; Mymonth<br />
Myyear = Year(Now)<br />
MaskEdBox1.Text = Myday &amp; "/" &amp; Mymonth &amp; "/" &amp; Myyear[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">وأخيراً نقوم بالضغط على الزر الخاص بالتنفيذ ليكون افتراضياً تاريخ اليوم :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Command2.Value = True[/align]</code></div></div><div style="text-align: right;" class="mycode_align">والآن سنقوم بعمل دالة <span style="font-family: Arial;" class="mycode_font">Function</span> نقوم بتمرير رقم اليوم لها وتعطينا اسم اليوم ، ونستخدم في ذلك الدالة <span style="font-family: Arial;" class="mycode_font">WeekDay</span> ، ونبدأ أولاً بتكوين الدالة :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Function dayname(x As Date) As String<br />
<br />
End Function[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">والآن أصبح لدينا التاريخ في متغير <span style="font-family: Arial;" class="mycode_font">x</span> وسنستخدم معه الدالة <span style="font-family: Arial;" class="mycode_font">WeekDay</span> والتي نمرر لها بارميترين ( التاريخ ، ويوم بداية الأسبوع ) وتعيد رقم اليوم من الأسبوع :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]x = Weekday(x, vbSaturday)[/align]</code></div></div><div style="text-align: right;" class="mycode_align">والآن سنحول هذا الرقم إلى نص بالشكل التالي :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Select Case x<br />
Case 1<br />
dayname = "السبت"<br />
Case 2<br />
dayname = "الأحد"<br />
Case 3<br />
dayname = "الاثنين"<br />
Case 4<br />
dayname = "الثلاثاء"<br />
Case 5<br />
dayname = "الأربعاء"<br />
Case 6<br />
dayname = "الخميس"<br />
Case 7<br />
daynmae = "الجمعة"<br />
End Select[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color">والآن نبدأ في تكوين زر </span></span></div>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color"><br />
</span></span></div>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Command2</span></span><span style="color: #008000;" class="mycode_color"> والخاص بـ ( نفذ ) .</span></div>
</span><div style="text-align: right;" class="mycode_align">
<div style="text-align: right;" class="mycode_align">نعرف أولاً أربع متغيرات لنخزن فيها معلومات ال <span style="font-family: Arial;" class="mycode_font">Labels</span> وذلك في قسم التصاريح <span style="font-family: Arial;" class="mycode_font">Genral</span> :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Dim a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">وفي بداية أوامر هذا الزر نقوم بتصفيرها كلها :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]a1 = 0: a2 = 0: a3 = 0: a4 = 0[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">ونستدعي الدالة التي قمنا بعملها ونضعها في مكانها المخصص :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]x = dayname(MaskEdBox1.Text)<br />
Lbl_day.Caption = "اليوم من الأسبوع : " &amp; x[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بعد ذلك نقوم بالاستعلام عن عمليات اليوم ، البيع ثم الشراء ، ونضع القيم المستقاه بواسطة دوال الاستعلام في المتغيرات التي قمنا بتعريفها :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select sum(price) as prc,count(*) as cnt from tb_sel_bay where kind=0 and date=#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "#"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
If T4!cnt &lt;&gt; 0 Then<br />
a1 = T4!cnt<br />
a2 = T4!prc<br />
End If<br />
T4.Close<br />
<br />
SQL = "select sum(price) as prc,count(*) as cnt from tb_sel_bay where kind=1 and date=#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "#"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
<br />
If T4!cnt &lt;&gt; 0 Then<br />
a3 = T4!cnt<br />
a4 = T4!prc<br />
End If<br />
T4.Close<br />
lbl_cnt1.Caption = "عدد مبيعات اليوم : " &amp; a1<br />
lbl_prc1.Caption = "اجمالي سعر المبيعات : " &amp; a2<br />
lbl_cnt2.Caption = "عدد مشتريات اليوم : " &amp; a3<br />
lbl_prc2.Caption = "اجمالي سعر المشتريات : " &amp; a4[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">والآن نقوم ببناء الجدولين ، ولاحظ أنه يمكننا الاستفادة من خاصية </span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Index</span></span><span style="color: #0000ff;" class="mycode_color"> كما في الشاشات السابقة :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Flex1<br />
Flex2[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #ff0000;" class="mycode_color">واللذان قمنا بعملهما سابقاً بالشكل التالي :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Flex1()<br />
MSFlexGrid1.Clear<br />
MSFlexGrid1.Cols = 5<br />
MSFlexGrid1.Rows = a1 + 1<br />
<br />
MSFlexGrid1.Row = 0<br />
MSFlexGrid1.Col = 0<br />
MSFlexGrid1.Text = "ت"<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = "رقم"<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = "البضاعة"<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = "الكمية"<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = "السعر"<br />
<br />
MSFlexGrid1.ColAlignment(0) = 5<br />
MSFlexGrid1.ColAlignment(1) = 5<br />
MSFlexGrid1.ColAlignment(2) = 5<br />
MSFlexGrid1.ColAlignment(3) = 5<br />
MSFlexGrid1.ColAlignment(4) = 5<br />
<br />
MSFlexGrid1.ColWidth(0) = 500<br />
MSFlexGrid1.ColWidth(1) = 500<br />
MSFlexGrid1.ColWidth(2) = 1500<br />
MSFlexGrid1.ColWidth(3) = 1200<br />
End Sub<br />
<br />
<br />
Private Sub Flex2()<br />
MSFlexGrid2.Clear<br />
MSFlexGrid2.Cols = 5<br />
MSFlexGrid2.Rows = a3 + 1<br />
<br />
MSFlexGrid2.Row = 0<br />
MSFlexGrid2.Col = 0<br />
MSFlexGrid2.Text = "ت"<br />
MSFlexGrid2.Col = 1<br />
MSFlexGrid2.Text = "رقم"<br />
MSFlexGrid2.Col = 2<br />
MSFlexGrid2.Text = "البضاعة"<br />
MSFlexGrid2.Col = 3<br />
MSFlexGrid2.Text = "الكمية"<br />
MSFlexGrid2.Col = 4<br />
MSFlexGrid2.Text = "السعر"<br />
<br />
MSFlexGrid2.ColAlignment(0) = 5<br />
MSFlexGrid2.ColAlignment(1) = 5<br />
MSFlexGrid2.ColAlignment(2) = 5<br />
MSFlexGrid2.ColAlignment(3) = 5<br />
MSFlexGrid2.ColAlignment(4) = 5<br />
<br />
MSFlexGrid2.ColWidth(0) = 500<br />
MSFlexGrid2.ColWidth(1) = 500<br />
MSFlexGrid2.ColWidth(2) = 1500<br />
MSFlexGrid2.ColWidth(3) = 1200<br />
End Sub[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">ثم نقوم بالاستعلام عن البيانات المطلوبة ، ووضعها في اماكنها المناسبة عبر استدعاء الحدثين </span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Put_Data1</span></span><span style="color: #0000ff;" class="mycode_color"> و </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Put_Data2</span></span><span style="color: #0000ff;" class="mycode_color"> :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select * from tb_sel_bay where kind=0 and date=#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "#"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
Put_Data1<br />
T4.Close<br />
<br />
SQL = "select * from tb_sel_bay where kind=1 and date=#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "#"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
Put_Data2<br />
T4.Close[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">في حدث <span style="font-family: Arial;" class="mycode_font">Put_Data</span> سنقوم بوضع البيانات في الجدول كما هي العادة ، ولكن المخزن لدينا في الجدول هو رقم البضاعة وليس اسمها ، لذا سنقوم بالاستعلام عنه أولاً ، وسنضطر لتعرف <span style="font-family: Arial;" class="mycode_font">T6</span> في الموديول :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Public T6 As Recordset[/align]</code></div></div><div style="text-align: right;" class="mycode_align">بهذا يكون شكل الأمر </div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Put_Data1()<br />
n = 0<br />
<br />
If T4.RecordCount &lt;&gt; 0 Then<br />
T4.MoveLast<br />
T4.MoveFirst<br />
End If<br />
<br />
With MSFlexGrid1<br />
<br />
For i = 0 To T4.RecordCount - 1<br />
n = n + 1<br />
.Row = n<br />
.Col = 0<br />
.Text = n<br />
.Col = 1<br />
.Text = T4!Number<br />
.Col = 2<br />
SQL = "select name from tb_product where number=" &amp; T4!product<br />
Set T6 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
.Text = T6!Name<br />
T6.Close<br />
.Col = 3<br />
.Text = T4!Count<br />
.Col = 4<br />
.Text = T4!price<br />
T4.MoveNext<br />
Next i<br />
End With<br />
End Sub[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">وكذلك الثاني تماماً .</div>
<br />
يتبع ..<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الخامس والعشرون - الإحصائيات والرسوم البيانية]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5713</link>
			<pubDate>Mon, 15 Oct 2012 04:37:24 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5713</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">الاحصائيات والرسوم البيانية .</div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">إن مستخدماً لبرنامج حسابي يتوقع منك من خلال تقنية التقارير أن تقدم له دعماً ولو محدوداً من خلال بعض الاحصائيات والمخططات البيانية ..<br />
ففي برنامج ما لشركة توزيع وتسويق البضائع التجارية المختلفة ، يتوقع منك مستخدم البرنامج أن تقدم له تقريراً بأرباح بضاعة معينة ، أو تخطيطاً لمبيعات نوع من البضاعة بحيث يستطيع أن يدرك موضعه من السوق ، وتنامي الربح لهذه البضاعة من عدمه .<br />
<br />
<br />
وهكذا ، وبما أن برنامجنا لا يعدو أن يكون برنامجاً لسوبر ماركت فقط ، فلن يتوقع المستخدم الكثير من المخططات أو الاحصائيات ، ولكن لتطبيق المفهوم سوف نتعلم سوية كيفية عمل مخطط بياني لنسب مبيعات ومشتريات البضاعة من ضمن المشتريات ، وسنضيفها ضمن شاشة تقارير البضائع <span style="font-family: Arial;" class="mycode_font">Frm_Report1</span> .<br />
<br />
وسنبدأ سوية في طريقة عامة لعمل المخططات البيانية .</div>
<br />
<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">قم بالنقر على </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Ctrl+T</span></span><span style="color: #ff0000;" class="mycode_color"> لعرض الأدوات ، ومنها قم باختيار الأداة :</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Microsoft Chart Control 6.0(OLEDB</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #ff0000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">)</span></span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">
والآن قم برسمها على الفورم كما يحلو لك ، وسنحتاج إلى ضبط بعض الخصائص .<br />
خاصية <span style="font-family: Arial;" class="mycode_font">Charttype</span> : أحد أهم خصائص الأداة ، وذلك أنها تحدد شكل المخطط البياني ( ثلاثي أو ثنائي الأبعاد - دائري أو اعتيادي أو <span style="font-family: Arial;" class="mycode_font">X,Y</span> ... ) وهكذا .<br />
وسنختار <span style="font-family: Arial;" class="mycode_font">VtchChartType2dPie</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">وآخر ثلاثة أحرف من الأسم للنوع وقبلها حرفان لتحديد ( ثلاثي أم ثنائي الأبعاد ) .</div>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align">خاصيتا <span style="font-family: Arial;" class="mycode_font">Row</span> و <span style="font-family: Arial;" class="mycode_font">Column</span> وكل ما يتعلق بهما .</div>
<br />
</span><div style="text-align: right;" class="mycode_align">تحدد خاصية <span style="font-family: Arial;" class="mycode_font">Row</span> عدد الصفوف ، أي عدد السجلات أو التقارير المطلوبة ، فمثلاً لو كنا نريد أن نعرض في نفس الوقت أكثر من بضاعة للمقارنة فإننا نضبط خاصية <span style="font-family: Arial;" class="mycode_font">RowCount</span> بعدد البضائع ، أم الآن فسنضبطها بحيث تساوي 1 .<br />
<br />
أما <span style="font-family: Arial;" class="mycode_font">Column</span> فتحدد عدد النقاط أو البيانات ، وفي مثالنا هذا لدينا أربع بيانات ( اجمالي المبيعات - اجمالي المشتريات - اجمالي مبيعات البضاعة - اجمالي مشتريات البضاعة ) . لذا نضبط <span style="font-family: Arial;" class="mycode_font">ColumnCount=4</span> .<br />
<br />
<br />
وسنضبط باقي الخصائص وقت التصميم .<br />
<br />
<br />
والآن نحتاج إلى أربع قيم نخزنها في مصفوفة <span style="font-family: Arial;" class="mycode_font">Total(3</span>) بالترتيب ، وسنضع هذه الأوامر في آخر زر التنفيذ .<br />
فالأولى هو العدد الكلي للمبيعات ، لذا ننفذ جملة استعلام على المدة المحددة ونخزن البيانات في العنصر الأول للمصفوفة :<br />
وسنستعلم عن مجموع العمود الذي يحقق الشرط ، وعدد السجلات فيه لمنع حدوث خطأ <span style="font-family: Arial;" class="mycode_font">NULL</span> .<br />
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Option1.Value = True Then<br />
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=0"<br />
Else<br />
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=0 " &amp; " and date between#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "# and #" &amp; Format(MaskEdBox2.Text, "MM/DD/YYYY") &amp; "#"<br />
End If<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
If T4!cnt &lt;&gt; 0 Then<br />
Total(0) = T4!sum1<br />
End If<br />
T4.Close</code></div></div>لاحظ أننا تأكدنا من عدد السجلات مسبقاً لتلافي خطأ <span style="font-family: Arial;" class="mycode_font">Null</span> ، جرب ازالته ولاحظ الفرق .<br />
<br />
<br />
والثاني العدد الكلي للمشتريات ، وهو مثل السابق مع اختلاف <span style="font-family: Arial;" class="mycode_font">Kind</span> في جملة الاستعلام :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Option1.Value = True Then<br />
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=1"<br />
Else<br />
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=1 " &amp; " and date between#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "# and #" &amp; Format(MaskEdBox2.Text, "MM/DD/YYYY") &amp; "#"<br />
End If<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
If T4!cnt &lt;&gt; 0 Then<br />
Total(1) = T4!sum1<br />
End If<br />
T4.Close</code></div></div><br />
أما البيان الثالث فهو مجموع مبيعات البضاعة ، ونستطيع الحصول عليها من الجدول دون أن نضطر إلى جملة استعلام أخرى :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>MSFlexGrid(0).Col = 3<br />
For i = 1 To MSFlexGrid(0).Rows - 1<br />
MSFlexGrid(0).Row = i<br />
Total(2) = Total(2) + MSFlexGrid(0).Text<br />
Next i</code></div></div>ونفس الأمر بالنسبة لمشتريات البضاعة :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>MSFlexGrid(1).Col = 3<br />
For i = 1 To MSFlexGrid(1).Rows - 1<br />
MSFlexGrid(1).Row = i<br />
Total(3) = Total(3) + MSFlexGrid(1).Text<br />
Next i</code></div></div>والآن جاء دور وضع البيانات ، وبما أننا نريد الاستفادة من خاصية <span style="font-family: Arial;" class="mycode_font">Index</span> سنضيف النصوص التوضيحية في مصفوفة هي الأخرى :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim str(3) As String<br />
str(0) = "اجمالي مبيعات"<br />
str(1) = "اجمالي مشتريات"<br />
str(2) = "اجمالي مبيعات بضاعة"<br />
str(3) = "اجمالي مشتريات بضاعة"</code></div></div><br />
ونضبط خصائص المخطط كما أسلفنا :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>MSChart2.ColumnCount = 4<br />
MSChart2.RowCount = 1</code></div></div>ونبدأ في وضع البيانات بحلقة تكرار ، مع مراعاة أننا نضع البيان بواسطة الخاصية <span style="font-family: Arial;" class="mycode_font">Date</span> وننتقل للعمود من خلال الخاصية <span style="font-family: Arial;" class="mycode_font">Column</span> ونضع النص التوضيحي من خلال الخاصية <span style="font-family: Arial;" class="mycode_font">ColumnLabel</span> :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>For i = 1 To 4<br />
MSChart2.Column = i<br />
MSChart2.Data = Total(i - 1)<br />
MSChart2.ColumnLabel = str(i - 1)<br />
Next i</code></div></div><br />
<span style="color: #0000ff;" class="mycode_color">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=3272" target="_blank" title="">prog21.rar</a> (الحجم : 187.87 ك ب / التحميلات : 255)
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">الاحصائيات والرسوم البيانية .</div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">إن مستخدماً لبرنامج حسابي يتوقع منك من خلال تقنية التقارير أن تقدم له دعماً ولو محدوداً من خلال بعض الاحصائيات والمخططات البيانية ..<br />
ففي برنامج ما لشركة توزيع وتسويق البضائع التجارية المختلفة ، يتوقع منك مستخدم البرنامج أن تقدم له تقريراً بأرباح بضاعة معينة ، أو تخطيطاً لمبيعات نوع من البضاعة بحيث يستطيع أن يدرك موضعه من السوق ، وتنامي الربح لهذه البضاعة من عدمه .<br />
<br />
<br />
وهكذا ، وبما أن برنامجنا لا يعدو أن يكون برنامجاً لسوبر ماركت فقط ، فلن يتوقع المستخدم الكثير من المخططات أو الاحصائيات ، ولكن لتطبيق المفهوم سوف نتعلم سوية كيفية عمل مخطط بياني لنسب مبيعات ومشتريات البضاعة من ضمن المشتريات ، وسنضيفها ضمن شاشة تقارير البضائع <span style="font-family: Arial;" class="mycode_font">Frm_Report1</span> .<br />
<br />
وسنبدأ سوية في طريقة عامة لعمل المخططات البيانية .</div>
<br />
<span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">قم بالنقر على </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">Ctrl+T</span></span><span style="color: #ff0000;" class="mycode_color"> لعرض الأدوات ، ومنها قم باختيار الأداة :</span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Microsoft Chart Control 6.0(OLEDB</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #ff0000;" class="mycode_color"><span style="font-family: Times New Roman;" class="mycode_font">)</span></span></div>
<span style="color: #ff0000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align">
والآن قم برسمها على الفورم كما يحلو لك ، وسنحتاج إلى ضبط بعض الخصائص .<br />
خاصية <span style="font-family: Arial;" class="mycode_font">Charttype</span> : أحد أهم خصائص الأداة ، وذلك أنها تحدد شكل المخطط البياني ( ثلاثي أو ثنائي الأبعاد - دائري أو اعتيادي أو <span style="font-family: Arial;" class="mycode_font">X,Y</span> ... ) وهكذا .<br />
وسنختار <span style="font-family: Arial;" class="mycode_font">VtchChartType2dPie</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">وآخر ثلاثة أحرف من الأسم للنوع وقبلها حرفان لتحديد ( ثلاثي أم ثنائي الأبعاد ) .</div>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align">خاصيتا <span style="font-family: Arial;" class="mycode_font">Row</span> و <span style="font-family: Arial;" class="mycode_font">Column</span> وكل ما يتعلق بهما .</div>
<br />
</span><div style="text-align: right;" class="mycode_align">تحدد خاصية <span style="font-family: Arial;" class="mycode_font">Row</span> عدد الصفوف ، أي عدد السجلات أو التقارير المطلوبة ، فمثلاً لو كنا نريد أن نعرض في نفس الوقت أكثر من بضاعة للمقارنة فإننا نضبط خاصية <span style="font-family: Arial;" class="mycode_font">RowCount</span> بعدد البضائع ، أم الآن فسنضبطها بحيث تساوي 1 .<br />
<br />
أما <span style="font-family: Arial;" class="mycode_font">Column</span> فتحدد عدد النقاط أو البيانات ، وفي مثالنا هذا لدينا أربع بيانات ( اجمالي المبيعات - اجمالي المشتريات - اجمالي مبيعات البضاعة - اجمالي مشتريات البضاعة ) . لذا نضبط <span style="font-family: Arial;" class="mycode_font">ColumnCount=4</span> .<br />
<br />
<br />
وسنضبط باقي الخصائص وقت التصميم .<br />
<br />
<br />
والآن نحتاج إلى أربع قيم نخزنها في مصفوفة <span style="font-family: Arial;" class="mycode_font">Total(3</span>) بالترتيب ، وسنضع هذه الأوامر في آخر زر التنفيذ .<br />
فالأولى هو العدد الكلي للمبيعات ، لذا ننفذ جملة استعلام على المدة المحددة ونخزن البيانات في العنصر الأول للمصفوفة :<br />
وسنستعلم عن مجموع العمود الذي يحقق الشرط ، وعدد السجلات فيه لمنع حدوث خطأ <span style="font-family: Arial;" class="mycode_font">NULL</span> .<br />
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Option1.Value = True Then<br />
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=0"<br />
Else<br />
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=0 " &amp; " and date between#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "# and #" &amp; Format(MaskEdBox2.Text, "MM/DD/YYYY") &amp; "#"<br />
End If<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
If T4!cnt &lt;&gt; 0 Then<br />
Total(0) = T4!sum1<br />
End If<br />
T4.Close</code></div></div>لاحظ أننا تأكدنا من عدد السجلات مسبقاً لتلافي خطأ <span style="font-family: Arial;" class="mycode_font">Null</span> ، جرب ازالته ولاحظ الفرق .<br />
<br />
<br />
والثاني العدد الكلي للمشتريات ، وهو مثل السابق مع اختلاف <span style="font-family: Arial;" class="mycode_font">Kind</span> في جملة الاستعلام :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Option1.Value = True Then<br />
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=1"<br />
Else<br />
SQL = "select sum(count) as sum1,count(product) as cnt from tb_sel_bay where kind=1 " &amp; " and date between#" &amp; Format(MaskEdBox1.Text, "MM/DD/YYYY") &amp; "# and #" &amp; Format(MaskEdBox2.Text, "MM/DD/YYYY") &amp; "#"<br />
End If<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
If T4!cnt &lt;&gt; 0 Then<br />
Total(1) = T4!sum1<br />
End If<br />
T4.Close</code></div></div><br />
أما البيان الثالث فهو مجموع مبيعات البضاعة ، ونستطيع الحصول عليها من الجدول دون أن نضطر إلى جملة استعلام أخرى :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>MSFlexGrid(0).Col = 3<br />
For i = 1 To MSFlexGrid(0).Rows - 1<br />
MSFlexGrid(0).Row = i<br />
Total(2) = Total(2) + MSFlexGrid(0).Text<br />
Next i</code></div></div>ونفس الأمر بالنسبة لمشتريات البضاعة :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>MSFlexGrid(1).Col = 3<br />
For i = 1 To MSFlexGrid(1).Rows - 1<br />
MSFlexGrid(1).Row = i<br />
Total(3) = Total(3) + MSFlexGrid(1).Text<br />
Next i</code></div></div>والآن جاء دور وضع البيانات ، وبما أننا نريد الاستفادة من خاصية <span style="font-family: Arial;" class="mycode_font">Index</span> سنضيف النصوص التوضيحية في مصفوفة هي الأخرى :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim str(3) As String<br />
str(0) = "اجمالي مبيعات"<br />
str(1) = "اجمالي مشتريات"<br />
str(2) = "اجمالي مبيعات بضاعة"<br />
str(3) = "اجمالي مشتريات بضاعة"</code></div></div><br />
ونضبط خصائص المخطط كما أسلفنا :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>MSChart2.ColumnCount = 4<br />
MSChart2.RowCount = 1</code></div></div>ونبدأ في وضع البيانات بحلقة تكرار ، مع مراعاة أننا نضع البيان بواسطة الخاصية <span style="font-family: Arial;" class="mycode_font">Date</span> وننتقل للعمود من خلال الخاصية <span style="font-family: Arial;" class="mycode_font">Column</span> ونضع النص التوضيحي من خلال الخاصية <span style="font-family: Arial;" class="mycode_font">ColumnLabel</span> :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>For i = 1 To 4<br />
MSChart2.Column = i<br />
MSChart2.Data = Total(i - 1)<br />
MSChart2.ColumnLabel = str(i - 1)<br />
Next i</code></div></div><br />
<span style="color: #0000ff;" class="mycode_color">والله الموفق ...<br />
والسلام عليكم ورحمة الله وبركاته .</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=3272" target="_blank" title="">prog21.rar</a> (الحجم : 187.87 ك ب / التحميلات : 255)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الرابع والعشرون - تقارير المصانع والأنواع]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5712</link>
			<pubDate>Mon, 15 Oct 2012 04:36:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5712</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span><br />
<span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">تقارير المصانع والأنواع :</span></span><br />
<br />
<br />
هناك الكثير مما يمكن أن تقدمه كتقرير لنوع أو مصنع ، لكننا لن نتوسع كثيراً بل كل ما سوف نعرضه هو منتجات المصنع والنوع .<br />
كل ما نحتاج إليه لتصميم هذا الفورم هو :</div>
<br />
<span style="color: #800000;" class="mycode_color">أداة مربع تحرير وسرد </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Combo</span></span><span style="color: #800000;" class="mycode_color"> ، وثلاث مربعات عناوين </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Label</span></span><span style="color: #800000;" class="mycode_color"> لعرض اسم النوع أو المصنع ، عدد البضائع تحته ، وحالته ( محذوف - غير محذوف ) .</span> <div style="text-align: right;" class="mycode_align">
<div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">نحتاج أيضاً في كلا الفورمين إلى جدول </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">MSFlexGrid</span></span><span style="color: #800000;" class="mycode_color"> لنعرض فيه البضائع تحت هذا المصنع أو ذاك النوع ، وأخيراً زر أمر نكتب فيها </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Unload Me</span></span><span style="color: #800000;" class="mycode_color"> وذلك للاغلاق .</span><br />
<br />
ولنضبط خاصية <span style="font-family: Arial;" class="mycode_font">MDIChild</span> لكلا الفورمين بحيث تصبح <span style="font-family: Arial;" class="mycode_font">True</span> ، ونسميهما <span style="font-family: Arial;" class="mycode_font">Frm_Report2</span> و <span style="font-family: Arial;" class="mycode_font">Frm_Report3</span> على التوالي .<br />
<br />
<br />
والآن سنبدا في كتابة الأكواد ، ونبدأ بحدث <span style="font-family: Arial;" class="mycode_font">Form_Load</span> لكلا الفورمين .<br />
في هذا الحدث سوف نضبط احداثيات الموقع كما تعودنا مع كل فورم ، ومن ثم نعبئ القائمة بالموردين أو بالمصانع :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Me.Width = 4800<br />
Me.Height = 3600<br />
Me.Left = ((MDIForm1.Width - Me.Width) / 2)<br />
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40<br />
Me.Show<br />
<br />
Combo1.Clear<br />
T2.MoveFirst<br />
For i = 0 To T2.RecordCount - 1<br />
Combo1.AddItem T2!Name<br />
T2.MoveNext<br />
Next i<br />
<br />
Combo1.ListIndex = 0[/align]</code></div></div><div style="text-align: right;" class="mycode_align">مع ملاحظة أنه في الفورم الثالث الخاص بالمصانع سوف نستخدم <span style="font-family: Arial;" class="mycode_font">T3</span> بدلاً من <span style="font-family: Arial;" class="mycode_font">T2</span> .<br />
والآن سنقوم بعمل حدث <span style="font-family: Arial;" class="mycode_font">Flex</span> خاص بتكوين الجدول ، والفرق بين الفورمين في هذا التكوين أننا في الأول نضع معلومة ( مصنع البضاعة ) دون النوع ، والعكس في الفورم الثاني :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Flex()<br />
MSFlexGrid1.Clear<br />
MSFlexGrid1.Cols = 6<br />
MSFlexGrid1.Rows = T4.RecordCount + 1<br />
<br />
MSFlexGrid1.Row = 0<br />
MSFlexGrid1.Col = 0<br />
MSFlexGrid1.Text = "ت"<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = "رقم"<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = " اسم البضاعة"<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = "المصنع"<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = "السعر"<br />
MSFlexGrid1.Col = 5<br />
MSFlexGrid1.Text = "العدد"<br />
<br />
MSFlexGrid1.ColAlignment(0) = 5<br />
MSFlexGrid1.ColAlignment(1) = 5<br />
MSFlexGrid1.ColAlignment(2) = 3<br />
MSFlexGrid1.ColAlignment(3) = 5<br />
MSFlexGrid1.ColAlignment(4) = 5<br />
MSFlexGrid1.ColAlignment(5) = 5<br />
<br />
MSFlexGrid1.ColWidth(0) = 500<br />
MSFlexGrid1.ColWidth(1) = 500<br />
MSFlexGrid1.ColWidth(2) = 1500<br />
MSFlexGrid1.ColWidth(3) = 1500<br />
End Sub[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">وأخيراً نقوم بعمل الحدث <span style="font-family: Arial;" class="mycode_font">Combo1_Click</span> والذي يطلق عند اختيار المستخدم لنوع أو مصنع ما .<br />
في البداية نقوم بعمل جملة الاستعلام والتي ستكون في حالة المصانع :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number and tb_factory.name='" &amp; Combo1.Text &amp; "'"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
<br />
<br />
<br />
وسنغير شرط البحث من <span style="font-family: Arial;" class="mycode_font">Tb_Factory.name</span> إلى <span style="font-family: Arial;" class="mycode_font">Tb_Category</span> في حالة الأنواع .<br />
<br />
والآن سنختبر شرط وجود سجلات ، فإن لم يكن هناك أي بضائع تحت هذا النوع-المصنع :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If T4.RecordCount = 0 Then<br />
Lbl_name = "اسم المصنع : " &amp; Combo1.Text<br />
lbl_cnt = "عدد بضائع المصنع : " &amp; T4.RecordCount<br />
lbl_sta = "الحالة : عادي"<br />
Flex<br />
Exit Sub<br />
End If[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">بالرغم من عدم وجود سجلات سنضبط بعض الخصائص ، كما سنستدعي الحدث <span style="font-family: Arial;" class="mycode_font">Flex</span> والذي يكون الجدول دون أي صفوف .<br />
لاحقاً لن يكتمل التنفيذ إلا في حالة وجود سجلات ، حيث نقوم بالانتقال للسجل الأخير ثم إلى الأول وذلك للتحديث :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]T4.MoveLast<br />
T4.MoveFirst[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">ثم نضبط مجموعة من المعلومات المتعلقة بهذا النوع ... لاحظ الأمر التالي :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Lbl_name = "اسم المصنع : " &amp; Combo1.Text<br />
lbl_cnt = "عدد بضائع المصنع : " &amp; T4.RecordCount<br />
If T4.Fields("tb_category.view") = False Then<br />
lbl_sta = "الحالة : محذوف"<br />
Else<br />
lbl_sta = "الحالة : عادي"<br />
End If<br />
Flex[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">والآن ... لماذا في حالة وجود بضائع تحت النوع أو المصنع تأكدنا من الحالة ( محذوف أم غير ذلك ) ، أما في حالة عدم وجود بضائع فإننا نضع مباشرة ( عادي ) ؟؟؟ ذلك انه لو كان محذوف ولا توجد تحته بضائع لكان قد تم حذفه سابقاً .</span><br />
<br />
<br />
بعد ذلك نقوم باظهار فورم الانتظار ونضبط خصائصة كما أسلفنا شرحه :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Frm_Wait.Show<br />
Frm_Wait.ProgressBar1.Max = T4.RecordCount<br />
Frm_Wait.ProgressBar1.Min = 0<br />
Frm_Wait.ProgressBar1.Value = 0[/align]</code></div></div><div style="text-align: right;" class="mycode_align">ومن ثم نبدأ في وضع البيانات في أماكنها الصحيحة :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]For i = 0 To T4.RecordCount - 1<br />
Frm_Wait.ProgressBar1.Value = Frm_Wait.ProgressBar1.Value + 1<br />
DoEvents<br />
MSFlexGrid1.Row = i + 1<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = T4.Fields("tb_product.Number")<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = T4.Fields("tb_product.name")<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = T4.Fields("tb_category.name")<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = T4!price<br />
MSFlexGrid1.Col = 5<br />
MSFlexGrid1.Text = T4.Fields("Count")<br />
<br />
T4.MoveNext<br />
Next i[/align]</code></div></div><div style="text-align: right;" class="mycode_align">لاحقاً نقوم بعمل <span style="font-family: Arial;" class="mycode_font">Sort</span> ترتيب للجدول مع اعادة الترتيب كما سبق :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Sort = 7<br />
MSFlexGrid1.Col = 0<br />
<br />
For i = 0 To T4.RecordCount - 1<br />
MSFlexGrid1.Row = i + 1<br />
MSFlexGrid1.Text = i + 1<br />
Next i[/align]</code></div></div><div style="text-align: right;" class="mycode_align">أخيراً نغلق قاعدة البيانات ، ونخفي فورم الانتظار :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]T4.Close<br />
Unload Frm_Wait[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">والله الموفق ...</span><br />
<span style="color: #0000ff;" class="mycode_color">والسلام عليكم ورحمة الله وبركاته .</span></div>
<br />
</div><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=3271" target="_blank" title="">prog20.zip</a> (الحجم : 191.76 ك ب / التحميلات : 155)
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span><br />
<span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">تقارير المصانع والأنواع :</span></span><br />
<br />
<br />
هناك الكثير مما يمكن أن تقدمه كتقرير لنوع أو مصنع ، لكننا لن نتوسع كثيراً بل كل ما سوف نعرضه هو منتجات المصنع والنوع .<br />
كل ما نحتاج إليه لتصميم هذا الفورم هو :</div>
<br />
<span style="color: #800000;" class="mycode_color">أداة مربع تحرير وسرد </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Combo</span></span><span style="color: #800000;" class="mycode_color"> ، وثلاث مربعات عناوين </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Label</span></span><span style="color: #800000;" class="mycode_color"> لعرض اسم النوع أو المصنع ، عدد البضائع تحته ، وحالته ( محذوف - غير محذوف ) .</span> <div style="text-align: right;" class="mycode_align">
<div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">نحتاج أيضاً في كلا الفورمين إلى جدول </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">MSFlexGrid</span></span><span style="color: #800000;" class="mycode_color"> لنعرض فيه البضائع تحت هذا المصنع أو ذاك النوع ، وأخيراً زر أمر نكتب فيها </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Unload Me</span></span><span style="color: #800000;" class="mycode_color"> وذلك للاغلاق .</span><br />
<br />
ولنضبط خاصية <span style="font-family: Arial;" class="mycode_font">MDIChild</span> لكلا الفورمين بحيث تصبح <span style="font-family: Arial;" class="mycode_font">True</span> ، ونسميهما <span style="font-family: Arial;" class="mycode_font">Frm_Report2</span> و <span style="font-family: Arial;" class="mycode_font">Frm_Report3</span> على التوالي .<br />
<br />
<br />
والآن سنبدا في كتابة الأكواد ، ونبدأ بحدث <span style="font-family: Arial;" class="mycode_font">Form_Load</span> لكلا الفورمين .<br />
في هذا الحدث سوف نضبط احداثيات الموقع كما تعودنا مع كل فورم ، ومن ثم نعبئ القائمة بالموردين أو بالمصانع :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Me.Width = 4800<br />
Me.Height = 3600<br />
Me.Left = ((MDIForm1.Width - Me.Width) / 2)<br />
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40<br />
Me.Show<br />
<br />
Combo1.Clear<br />
T2.MoveFirst<br />
For i = 0 To T2.RecordCount - 1<br />
Combo1.AddItem T2!Name<br />
T2.MoveNext<br />
Next i<br />
<br />
Combo1.ListIndex = 0[/align]</code></div></div><div style="text-align: right;" class="mycode_align">مع ملاحظة أنه في الفورم الثالث الخاص بالمصانع سوف نستخدم <span style="font-family: Arial;" class="mycode_font">T3</span> بدلاً من <span style="font-family: Arial;" class="mycode_font">T2</span> .<br />
والآن سنقوم بعمل حدث <span style="font-family: Arial;" class="mycode_font">Flex</span> خاص بتكوين الجدول ، والفرق بين الفورمين في هذا التكوين أننا في الأول نضع معلومة ( مصنع البضاعة ) دون النوع ، والعكس في الفورم الثاني :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Flex()<br />
MSFlexGrid1.Clear<br />
MSFlexGrid1.Cols = 6<br />
MSFlexGrid1.Rows = T4.RecordCount + 1<br />
<br />
MSFlexGrid1.Row = 0<br />
MSFlexGrid1.Col = 0<br />
MSFlexGrid1.Text = "ت"<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = "رقم"<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = " اسم البضاعة"<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = "المصنع"<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = "السعر"<br />
MSFlexGrid1.Col = 5<br />
MSFlexGrid1.Text = "العدد"<br />
<br />
MSFlexGrid1.ColAlignment(0) = 5<br />
MSFlexGrid1.ColAlignment(1) = 5<br />
MSFlexGrid1.ColAlignment(2) = 3<br />
MSFlexGrid1.ColAlignment(3) = 5<br />
MSFlexGrid1.ColAlignment(4) = 5<br />
MSFlexGrid1.ColAlignment(5) = 5<br />
<br />
MSFlexGrid1.ColWidth(0) = 500<br />
MSFlexGrid1.ColWidth(1) = 500<br />
MSFlexGrid1.ColWidth(2) = 1500<br />
MSFlexGrid1.ColWidth(3) = 1500<br />
End Sub[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">وأخيراً نقوم بعمل الحدث <span style="font-family: Arial;" class="mycode_font">Combo1_Click</span> والذي يطلق عند اختيار المستخدم لنوع أو مصنع ما .<br />
في البداية نقوم بعمل جملة الاستعلام والتي ستكون في حالة المصانع :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number and tb_factory.name='" &amp; Combo1.Text &amp; "'"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
<br />
<br />
<br />
وسنغير شرط البحث من <span style="font-family: Arial;" class="mycode_font">Tb_Factory.name</span> إلى <span style="font-family: Arial;" class="mycode_font">Tb_Category</span> في حالة الأنواع .<br />
<br />
والآن سنختبر شرط وجود سجلات ، فإن لم يكن هناك أي بضائع تحت هذا النوع-المصنع :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If T4.RecordCount = 0 Then<br />
Lbl_name = "اسم المصنع : " &amp; Combo1.Text<br />
lbl_cnt = "عدد بضائع المصنع : " &amp; T4.RecordCount<br />
lbl_sta = "الحالة : عادي"<br />
Flex<br />
Exit Sub<br />
End If[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">بالرغم من عدم وجود سجلات سنضبط بعض الخصائص ، كما سنستدعي الحدث <span style="font-family: Arial;" class="mycode_font">Flex</span> والذي يكون الجدول دون أي صفوف .<br />
لاحقاً لن يكتمل التنفيذ إلا في حالة وجود سجلات ، حيث نقوم بالانتقال للسجل الأخير ثم إلى الأول وذلك للتحديث :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]T4.MoveLast<br />
T4.MoveFirst[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">ثم نضبط مجموعة من المعلومات المتعلقة بهذا النوع ... لاحظ الأمر التالي :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Lbl_name = "اسم المصنع : " &amp; Combo1.Text<br />
lbl_cnt = "عدد بضائع المصنع : " &amp; T4.RecordCount<br />
If T4.Fields("tb_category.view") = False Then<br />
lbl_sta = "الحالة : محذوف"<br />
Else<br />
lbl_sta = "الحالة : عادي"<br />
End If<br />
Flex[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">والآن ... لماذا في حالة وجود بضائع تحت النوع أو المصنع تأكدنا من الحالة ( محذوف أم غير ذلك ) ، أما في حالة عدم وجود بضائع فإننا نضع مباشرة ( عادي ) ؟؟؟ ذلك انه لو كان محذوف ولا توجد تحته بضائع لكان قد تم حذفه سابقاً .</span><br />
<br />
<br />
بعد ذلك نقوم باظهار فورم الانتظار ونضبط خصائصة كما أسلفنا شرحه :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Frm_Wait.Show<br />
Frm_Wait.ProgressBar1.Max = T4.RecordCount<br />
Frm_Wait.ProgressBar1.Min = 0<br />
Frm_Wait.ProgressBar1.Value = 0[/align]</code></div></div><div style="text-align: right;" class="mycode_align">ومن ثم نبدأ في وضع البيانات في أماكنها الصحيحة :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]For i = 0 To T4.RecordCount - 1<br />
Frm_Wait.ProgressBar1.Value = Frm_Wait.ProgressBar1.Value + 1<br />
DoEvents<br />
MSFlexGrid1.Row = i + 1<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = T4.Fields("tb_product.Number")<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = T4.Fields("tb_product.name")<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = T4.Fields("tb_category.name")<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = T4!price<br />
MSFlexGrid1.Col = 5<br />
MSFlexGrid1.Text = T4.Fields("Count")<br />
<br />
T4.MoveNext<br />
Next i[/align]</code></div></div><div style="text-align: right;" class="mycode_align">لاحقاً نقوم بعمل <span style="font-family: Arial;" class="mycode_font">Sort</span> ترتيب للجدول مع اعادة الترتيب كما سبق :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Sort = 7<br />
MSFlexGrid1.Col = 0<br />
<br />
For i = 0 To T4.RecordCount - 1<br />
MSFlexGrid1.Row = i + 1<br />
MSFlexGrid1.Text = i + 1<br />
Next i[/align]</code></div></div><div style="text-align: right;" class="mycode_align">أخيراً نغلق قاعدة البيانات ، ونخفي فورم الانتظار :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]T4.Close<br />
Unload Frm_Wait[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">والله الموفق ...</span><br />
<span style="color: #0000ff;" class="mycode_color">والسلام عليكم ورحمة الله وبركاته .</span></div>
<br />
</div><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=3271" target="_blank" title="">prog20.zip</a> (الحجم : 191.76 ك ب / التحميلات : 155)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الثالث والعشرون - تقارير البضائع]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5711</link>
			<pubDate>Mon, 15 Oct 2012 04:30:48 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5711</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span><br />
<span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">تقارير البضائع .</span></span><br />
<br />
سنبدأ بإذن الله في هذا الدرس في عمل قائمة التقارير ، وسنقوم تحديداً بعمل تقارير البضائع ، وسنحاول جاهدين من خلال هذا الدرس تطبيق مفهوم المصفوفات ( مصفوفات الأدوات ) والتي نتعامل معها من خلال خاصية <span style="font-family: Arial;" class="mycode_font">Index</span> وسننوه كلما سنحت الفرصة عن كمية الأكواد التي تم اختصارها اعتماداً على المصفوفات .<br />
<br />
<br />
<span style="color: #0000ff;" class="mycode_color">وسنبدأ في البداية بتصميم الفورم .</span><br />
فعن محتويات الفورم فنحتاج إلى قائمة نعرض فيها البضائع ، وأداتي اختيار لتحديد نوع التقرير ( شامل أو بين تاريخين ) ، وبناء عليه سنضع اثنين من أداة <span style="font-family: Arial;" class="mycode_font">MaskedEditBox</span> .<br />
سنضع أيضاً زر ( تنفيذ ) لتنفيذ التقرير ، وزر اغلاق للفورم ، كما سنضع أداتي <span style="font-family: Arial;" class="mycode_font">MsFlexGeid</span> ولكن لهما نفس الاسم ، ولها <span style="font-family: Arial;" class="mycode_font">Index</span> يساوي 0 أو 1 . وتختص بعرض عمليات البيع والشراء لهذه البضاعة .<br />
ونضع أيضاً خمس مربعات عناوين <span style="font-family: Arial;" class="mycode_font">Labels</span> لنضع فيها معلومات حول البضاعة المختارة في التقرير ( الاسم - المصنع - النوع - الكمية - السعر ) .<br />
<br />
فيما سؤجل عمليات الاحصائيات إلى درس لاحق إن شاء الله .<br />
<br />
والآن انتهى التصميم ، ولنبدء في كتابة الكود .<br />
<br />
<br />
في الفورم الرئيسي لن يكون هناك سوى أمر التاكد من وجود بضائع ، ومن ثم معرفة <span style="font-family: Arial;" class="mycode_font">Index</span> القائمة وبناء عليه نظهر الفورم وذلك بالشكل التالي :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Select Case Index<br />
Case 0<br />
Frm_Report1.Show<br />
End Select[/align]</code></div></div><br />
<span style="color: #800000;" class="mycode_color">أما في حدث <br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Form_Load</span></span><span style="color: #800000;" class="mycode_color"> للفورم الخاص بالتقرير فسنضبط أولاً خصائص الارتفاع :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Me.Width = 4800<br />
Me.Height = 6615<br />
Me.Left = ((MDIForm1.Width - Me.Width) / 2)<br />
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40<br />
Me.Show[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">ثم نحدد تاريخ اليوم لنضعه في مربعي </span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">MaskEditBox</span></span><span style="color: #800000;" class="mycode_color"> :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Dim Myday, Mymonth, Myyear<br />
Myday = Day(Now)<br />
If Len(Myday) = 1 Then Myday = 0 &amp; Myday<br />
Mymonth = Month(Now)<br />
If Len(Mymonth) = 1 Then Mymonth = 0 &amp; Mymonth<br />
Myyear = Year(Now)<br />
MaskEdBox1.Text = Myday &amp; "/" &amp; Mymonth &amp; "/" &amp; Myyear<br />
MaskEdBox2.Text = MaskEdBox1.Text[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">ومن ثم نملئ القائمة بالبضائع الحالية :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Combo1.Clear<br />
T1.MoveFirst<br />
For i = 0 To T1.RecordCount - 1<br />
Combo1.AddItem T1!Name<br />
T1.MoveNext<br />
Next i[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">وأخيراً نجعل </span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Option1</span></span><span style="color: #800000;" class="mycode_color"> محدداً - لم نضبطه وقت التصميم لغرض ما سنشرحه لاحقاً - ، ومن ثم نحدد العنصر الأول في القائمة ، ونطلق زر التنفيذ ، حيث أن تقريراً عن البضاعة الأولى سيكون هو الموجود بصورة افتراضية :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Option1.Value = True<br />
Combo1.ListIndex = 0<br />
Command2.Value = True[/align]</code></div></div><div style="text-align: right;" class="mycode_align">والآن لنر لماذا ضبطنا <span style="font-family: Arial;" class="mycode_font">Option1</span> وقت التصميم ، ذلك أننا نريد في حالة اراد المستخدم تقريراً شاملاً أن لا نعطيه التحكم في مربعي التاريخ ، ونقوم بذلك عبر خاصية <span style="font-family: Arial;" class="mycode_font">Click</span> لأزرار الاختيار بالشكل التالي :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Option1_Click()<br />
MaskEdBox1.Enabled = False<br />
MaskEdBox2.Enabled = False<br />
End Sub[/align]</code></div></div><div style="text-align: right;" class="mycode_align">و </div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Option2_Click()<br />
MaskEdBox1.Enabled = True<br />
MaskEdBox2.Enabled = True<br />
End Sub[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #ff0000;" class="mycode_color">*** ويمكن ايضاً الاستعاضة عن </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">OptionButton</span></span><span style="color: #ff0000;" class="mycode_color"> باستخدام </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">CheckBox</span></span><span style="color: #ff0000;" class="mycode_color"> .</span><br />
<br />
والآن سنضيف متغيران لمعرفة عدد سجلات البيع والشراء ، ولأننا نتعامل مع مصفوفة فسنكتب الأمر التالي في قسم التصاريح <span style="font-family: Arial;" class="mycode_font">Genral</span> :<br />
<br />
<span style="font-family: Arial;" class="mycode_font">Dim MyCnt(1</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
<br />
<br />
<div style="text-align: right;" class="mycode_align">مما يعني أن لدينا متغيرات <span style="font-family: Arial;" class="mycode_font">MyCnt(0</span>) و <span style="font-family: Arial;" class="mycode_font">MyCnt(1</span>)<br />
<br />
والآن سنبرمج أوامر <span style="font-family: Arial;" class="mycode_font">Command2</span> وهو زر تنفيذ التقرير .<br />
في البداية سنقوم بعمل استعلام عن اسم هذه البضاعة لمعرفة المعلومات المطلوبة عنها ووضعها في أماكنها :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number and tb_product.name='" &amp; Combo1.Text &amp; "'"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
<br />
Lbl_name = "اسم البضاعة : " &amp; T4.Fields("tb_product.name")<br />
lbl_cate = "النوع : " &amp; T4.Fields("tb_category.name")<br />
lbl_fact = "المصنع : " &amp; T4.Fields("tb_factory.name")<br />
lbl_prc = "السعر : " &amp; T4.Fields("price")<br />
lbl_cnt = "الكمية الموجودة : " &amp; T4.Fields("count")<br />
<br />
Dim num, i<br />
num = T4.Fields("tb_product.Number")<br />
T4.Close[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">وقد سبق شرح جملة الاستعلام أكثر من مرة .</div>
<br />
<br />
يتبع ...<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span><br />
<span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">تقارير البضائع .</span></span><br />
<br />
سنبدأ بإذن الله في هذا الدرس في عمل قائمة التقارير ، وسنقوم تحديداً بعمل تقارير البضائع ، وسنحاول جاهدين من خلال هذا الدرس تطبيق مفهوم المصفوفات ( مصفوفات الأدوات ) والتي نتعامل معها من خلال خاصية <span style="font-family: Arial;" class="mycode_font">Index</span> وسننوه كلما سنحت الفرصة عن كمية الأكواد التي تم اختصارها اعتماداً على المصفوفات .<br />
<br />
<br />
<span style="color: #0000ff;" class="mycode_color">وسنبدأ في البداية بتصميم الفورم .</span><br />
فعن محتويات الفورم فنحتاج إلى قائمة نعرض فيها البضائع ، وأداتي اختيار لتحديد نوع التقرير ( شامل أو بين تاريخين ) ، وبناء عليه سنضع اثنين من أداة <span style="font-family: Arial;" class="mycode_font">MaskedEditBox</span> .<br />
سنضع أيضاً زر ( تنفيذ ) لتنفيذ التقرير ، وزر اغلاق للفورم ، كما سنضع أداتي <span style="font-family: Arial;" class="mycode_font">MsFlexGeid</span> ولكن لهما نفس الاسم ، ولها <span style="font-family: Arial;" class="mycode_font">Index</span> يساوي 0 أو 1 . وتختص بعرض عمليات البيع والشراء لهذه البضاعة .<br />
ونضع أيضاً خمس مربعات عناوين <span style="font-family: Arial;" class="mycode_font">Labels</span> لنضع فيها معلومات حول البضاعة المختارة في التقرير ( الاسم - المصنع - النوع - الكمية - السعر ) .<br />
<br />
فيما سؤجل عمليات الاحصائيات إلى درس لاحق إن شاء الله .<br />
<br />
والآن انتهى التصميم ، ولنبدء في كتابة الكود .<br />
<br />
<br />
في الفورم الرئيسي لن يكون هناك سوى أمر التاكد من وجود بضائع ، ومن ثم معرفة <span style="font-family: Arial;" class="mycode_font">Index</span> القائمة وبناء عليه نظهر الفورم وذلك بالشكل التالي :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Select Case Index<br />
Case 0<br />
Frm_Report1.Show<br />
End Select[/align]</code></div></div><br />
<span style="color: #800000;" class="mycode_color">أما في حدث <br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Form_Load</span></span><span style="color: #800000;" class="mycode_color"> للفورم الخاص بالتقرير فسنضبط أولاً خصائص الارتفاع :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Me.Width = 4800<br />
Me.Height = 6615<br />
Me.Left = ((MDIForm1.Width - Me.Width) / 2)<br />
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40<br />
Me.Show[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">ثم نحدد تاريخ اليوم لنضعه في مربعي </span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">MaskEditBox</span></span><span style="color: #800000;" class="mycode_color"> :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Dim Myday, Mymonth, Myyear<br />
Myday = Day(Now)<br />
If Len(Myday) = 1 Then Myday = 0 &amp; Myday<br />
Mymonth = Month(Now)<br />
If Len(Mymonth) = 1 Then Mymonth = 0 &amp; Mymonth<br />
Myyear = Year(Now)<br />
MaskEdBox1.Text = Myday &amp; "/" &amp; Mymonth &amp; "/" &amp; Myyear<br />
MaskEdBox2.Text = MaskEdBox1.Text[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">ومن ثم نملئ القائمة بالبضائع الحالية :</span></div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Combo1.Clear<br />
T1.MoveFirst<br />
For i = 0 To T1.RecordCount - 1<br />
Combo1.AddItem T1!Name<br />
T1.MoveNext<br />
Next i[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #800000;" class="mycode_color">وأخيراً نجعل </span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span></div>
<span style="color: #800000;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #800000;" class="mycode_color">Option1</span></span><span style="color: #800000;" class="mycode_color"> محدداً - لم نضبطه وقت التصميم لغرض ما سنشرحه لاحقاً - ، ومن ثم نحدد العنصر الأول في القائمة ، ونطلق زر التنفيذ ، حيث أن تقريراً عن البضاعة الأولى سيكون هو الموجود بصورة افتراضية :</span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Option1.Value = True<br />
Combo1.ListIndex = 0<br />
Command2.Value = True[/align]</code></div></div><div style="text-align: right;" class="mycode_align">والآن لنر لماذا ضبطنا <span style="font-family: Arial;" class="mycode_font">Option1</span> وقت التصميم ، ذلك أننا نريد في حالة اراد المستخدم تقريراً شاملاً أن لا نعطيه التحكم في مربعي التاريخ ، ونقوم بذلك عبر خاصية <span style="font-family: Arial;" class="mycode_font">Click</span> لأزرار الاختيار بالشكل التالي :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Option1_Click()<br />
MaskEdBox1.Enabled = False<br />
MaskEdBox2.Enabled = False<br />
End Sub[/align]</code></div></div><div style="text-align: right;" class="mycode_align">و </div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Private Sub Option2_Click()<br />
MaskEdBox1.Enabled = True<br />
MaskEdBox2.Enabled = True<br />
End Sub[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #ff0000;" class="mycode_color">*** ويمكن ايضاً الاستعاضة عن </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">OptionButton</span></span><span style="color: #ff0000;" class="mycode_color"> باستخدام </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">CheckBox</span></span><span style="color: #ff0000;" class="mycode_color"> .</span><br />
<br />
والآن سنضيف متغيران لمعرفة عدد سجلات البيع والشراء ، ولأننا نتعامل مع مصفوفة فسنكتب الأمر التالي في قسم التصاريح <span style="font-family: Arial;" class="mycode_font">Genral</span> :<br />
<br />
<span style="font-family: Arial;" class="mycode_font">Dim MyCnt(1</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span></div>
<span style="font-family: Arial;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
<br />
<br />
<div style="text-align: right;" class="mycode_align">مما يعني أن لدينا متغيرات <span style="font-family: Arial;" class="mycode_font">MyCnt(0</span>) و <span style="font-family: Arial;" class="mycode_font">MyCnt(1</span>)<br />
<br />
والآن سنبرمج أوامر <span style="font-family: Arial;" class="mycode_font">Command2</span> وهو زر تنفيذ التقرير .<br />
في البداية سنقوم بعمل استعلام عن اسم هذه البضاعة لمعرفة المعلومات المطلوبة عنها ووضعها في أماكنها :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number and tb_product.name='" &amp; Combo1.Text &amp; "'"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)<br />
<br />
Lbl_name = "اسم البضاعة : " &amp; T4.Fields("tb_product.name")<br />
lbl_cate = "النوع : " &amp; T4.Fields("tb_category.name")<br />
lbl_fact = "المصنع : " &amp; T4.Fields("tb_factory.name")<br />
lbl_prc = "السعر : " &amp; T4.Fields("price")<br />
lbl_cnt = "الكمية الموجودة : " &amp; T4.Fields("count")<br />
<br />
Dim num, i<br />
num = T4.Fields("tb_product.Number")<br />
T4.Close[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">وقد سبق شرح جملة الاستعلام أكثر من مرة .</div>
<br />
<br />
يتبع ...<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الثاني والعشرون - البحث عن البضائع]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5710</link>
			<pubDate>Mon, 15 Oct 2012 04:28:14 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5710</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span><br />
<span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">البحث عن البضائع .</span></span><br />
<br />
<br />
سنحاول بإذن الله خلال هذه الدروس اتمام عملية البحث الموجودة في القائمة ، وسوف نقوم بجعل المستخدم يتحكم في كامل شروط البحث .<br />
<br />
<br />
<span style="color: #008000;" class="mycode_color">نحتاج في هذه الشاشة إلى زر للبحث ، زر لاغلاق الشاشة ، أداة جدول لعرض النتائج ، مربع نص لكتابة قيمة البحث .</span></div>
<br />
<span style="color: #008000;" class="mycode_color">اضافة لذلك نحتاج إلى <br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Combo1</span></span><span style="color: #008000;" class="mycode_color"> لنحدد هل نريد البحث في الاسم ، المصنع ، الكمية ... الخ ، وأيضاً </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Combo2</span></span><span style="color: #008000;" class="mycode_color"> لنعرف شرط البحث - في الحالة الرقمية - أكبر من ، أصغر من ، = .</span><br />
<br />
<div style="text-align: right;" class="mycode_align">سنجعل هذا الفورم <span style="font-family: Arial;" class="mycode_font">MDICHild</span> ، وفي أمر اظهاره في الفورم الرئيسي سنكتب :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Find.Show[/align]</code></div></div><div style="text-align: right;" class="mycode_align">والآن سننشأ حدث <span style="font-family: Arial;" class="mycode_font">Create_Flex</span> والذي ستكون مهمته تكوين الجدول ، وهو نفس الكود الذي قمنا بكتابته في <span style="font-family: Arial;" class="mycode_font">Frm_Show</span> دون أي تغيير ، اللهم ما عدا أن السطر التالي :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]MSFlexGrid1.Rows = T4.RecordCount + 1[/align]</code></div></div><div style="text-align: right;" class="mycode_align">سيتحول إلى :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]On Error Resume Next<br />
MSFlexGrid1.Rows = T4.RecordCount + 1<br />
If Err = 3420 Then<br />
MSFlexGrid1.Rows = 2<br />
End If[/align]</code></div></div><div style="text-align: right;" class="mycode_align">وسبب هذا أننا سنستدعي الأمر في حالة كون القاعدة مغلقة مما يسبب الخطأ رقم 3420 ، وهذا الكود لعدم اظهار رسالة خطأ .<br />
وبهذا يصبح الكود الكامل :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Sub Create_Flex()<br />
MSFlexGrid1.Clear<br />
MSFlexGrid1.Cols = 8<br />
On Error Resume Next<br />
MSFlexGrid1.Rows = T4.RecordCount + 1<br />
If Err = 3420 Then<br />
MSFlexGrid1.Rows = 2<br />
End If<br />
MSFlexGrid1.Row = 0<br />
MSFlexGrid1.Col = 0<br />
MSFlexGrid1.Text = "ت"<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = "رقم"<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = " اسم البضاعة"<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = "النوع"<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = "المصنع"<br />
MSFlexGrid1.Col = 5<br />
MSFlexGrid1.Text = "السعر"<br />
MSFlexGrid1.Col = 6<br />
MSFlexGrid1.Text = "العدد"<br />
MSFlexGrid1.Col = 7<br />
MSFlexGrid1.Text = "وحدة/صندوق"<br />
<br />
MSFlexGrid1.ColAlignment(0) = 5<br />
MSFlexGrid1.ColAlignment(1) = 5<br />
MSFlexGrid1.ColAlignment(2) = 3<br />
MSFlexGrid1.ColAlignment(3) = 5<br />
MSFlexGrid1.ColAlignment(4) = 5<br />
MSFlexGrid1.ColAlignment(5) = 5<br />
MSFlexGrid1.ColAlignment(6) = 5<br />
MSFlexGrid1.ColAlignment(7) = 5<br />
<br />
MSFlexGrid1.ColWidth(0) = 500<br />
MSFlexGrid1.ColWidth(1) = 500<br />
MSFlexGrid1.ColWidth(2) = 1500<br />
MSFlexGrid1.ColWidth(3) = 1500<br />
MSFlexGrid1.ColWidth(4) = 1500<br />
End Sub[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">من أجل هذا سنكتب في حدث <span style="font-family: Arial;" class="mycode_font">Form_Load</span> :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Me.Width = 5625<br />
Me.Height = 5400<br />
Me.Left = ((MDIForm1.Width - Me.Width) / 2)<br />
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40<br />
Me.Show<br />
<br />
Create_Flex[/align]</code></div></div><div style="text-align: right;" class="mycode_align">ومن ثم نضيف العناصر المناسبة إلى <span style="font-family: Arial;" class="mycode_font">Combo1</span> و <span style="font-family: Arial;" class="mycode_font">Combo2</span> :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Combo1.AddItem "اسم البضاعة"<br />
Combo1.AddItem "النوع"<br />
Combo1.AddItem "المورد - المصنع"<br />
Combo1.AddItem "الكمية"<br />
Combo1.AddItem "السعر"<br />
<br />
Combo2.AddItem "&lt;"<br />
Combo2.AddItem "&gt;"<br />
Combo2.AddItem "="<br />
<br />
Combo1.ListIndex = 0[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">والآن لنر أمراً ما ، ففي حالة اختار المستخدم البحث عن اسم البضاعة أو المصنع أو النوع فليس ثم خيار من </span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Combo2</span></span><span style="color: #0000ff;" class="mycode_color"> إلا (=) لأن البيانات في هذه الحالة نصية فلن نستخدم &lt; و &gt; .</span><br />
<br />
<div style="text-align: right;" class="mycode_align">من أجل هذا نكتب الأمر التالي في حدث <span style="font-family: Arial;" class="mycode_font">Combo1_Click</span> :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If Combo1.ListIndex &lt;&gt; 3 And Combo1.ListIndex &lt;&gt; 4 Then<br />
Combo2.ListIndex = 2<br />
Combo2.Enabled = False<br />
Else<br />
Combo2.Enabled = True<br />
End If[/align]</code></div></div><div style="text-align: right;" class="mycode_align">الحدث الثاني الذي سننشأه هو حدث <span style="font-family: Arial;" class="mycode_font">Refresh_Me</span> ، ولن نغير في الحدث الموجود في <span style="font-family: Arial;" class="mycode_font">Frm_Show</span> إلا نقطتين رئيسيتين :<br />
<span style="color: #800080;" class="mycode_color">* النقطة الأولى : سنزيل كل الأوامر التي كانت مخصصة لتعبئة القائمة بالبيانات .</span><br />
<span style="color: #800080;" class="mycode_color">* النقطة الثانية : سنغير جملة الاستعلام .</span><br />
<br />
<br />
لو نتذكر أمر الاستعلام السابق :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
<br />
<br />
<br />
سنزيله ، ونستدعي بدلاً منه حدثاً اسمه <span style="font-family: Arial;" class="mycode_font">Search</span> تكون مهمته تكوين جملة الاستعلام ، ومن أجل ذلك يصبح كود الحدث بالشكل التالي :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Public Sub Refresh_Me()<br />
Call Search<br />
<br />
Create_Flex<br />
If T4.RecordCount = 0 Then Exit Sub<br />
<br />
Frm_Wait.Show<br />
Frm_Wait.ProgressBar1.Max = T1.RecordCount<br />
Frm_Wait.ProgressBar1.Min = 0<br />
Frm_Wait.ProgressBar1.Value = 0<br />
<br />
T4.MoveLast<br />
T4.MoveFirst<br />
Create_Flex<br />
<br />
If T4.RecordCount &lt;&gt; 0 Then<br />
T4.MoveFirst<br />
For I = 0 To T4.RecordCount - 1<br />
Frm_Wait.ProgressBar1.Value = Frm_Wait.ProgressBar1.Value + 1<br />
DoEvents<br />
MSFlexGrid1.Row = I + 1<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = T4.Fields("tb_product.Number")<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = T4.Fields("tb_product.name")<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = T4.Fields("tb_category.name")<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = T4.Fields("tb_factory.name")<br />
MSFlexGrid1.Col = 5<br />
MSFlexGrid1.Text = T4!price<br />
MSFlexGrid1.Col = 6<br />
MSFlexGrid1.Text = T4.Fields("Count")<br />
MSFlexGrid1.Col = 7<br />
MSFlexGrid1.Text = T4!Box_count<br />
<br />
T4.MoveNext<br />
Next I<br />
<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Sort = 7<br />
<br />
<br />
MSFlexGrid1.Col = 0<br />
For I = 0 To T4.RecordCount - 1<br />
MSFlexGrid1.Row = I + 1<br />
MSFlexGrid1.Text = I + 1<br />
Next I<br />
End If<br />
<br />
T4.Close<br />
<br />
Unload Frm_Wait<br />
End Sub[/align]</code></div></div><div style="text-align: right;" class="mycode_align">يتبع ...</div>
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">بسم الله الرحمن الرحيم .</span><br />
<span style="color: #0000ff;" class="mycode_color">السلام عليكم ورحمة الله وبركاته .</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">البحث عن البضائع .</span></span><br />
<br />
<br />
سنحاول بإذن الله خلال هذه الدروس اتمام عملية البحث الموجودة في القائمة ، وسوف نقوم بجعل المستخدم يتحكم في كامل شروط البحث .<br />
<br />
<br />
<span style="color: #008000;" class="mycode_color">نحتاج في هذه الشاشة إلى زر للبحث ، زر لاغلاق الشاشة ، أداة جدول لعرض النتائج ، مربع نص لكتابة قيمة البحث .</span></div>
<br />
<span style="color: #008000;" class="mycode_color">اضافة لذلك نحتاج إلى <br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Combo1</span></span><span style="color: #008000;" class="mycode_color"> لنحدد هل نريد البحث في الاسم ، المصنع ، الكمية ... الخ ، وأيضاً </span><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Combo2</span></span><span style="color: #008000;" class="mycode_color"> لنعرف شرط البحث - في الحالة الرقمية - أكبر من ، أصغر من ، = .</span><br />
<br />
<div style="text-align: right;" class="mycode_align">سنجعل هذا الفورم <span style="font-family: Arial;" class="mycode_font">MDICHild</span> ، وفي أمر اظهاره في الفورم الرئيسي سنكتب :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If T1.RecordCount = 0 Then<br />
MsgBox "لا توجد أي بضائع للبحث عنها ، لاضافة بضاعة جديدة اختر اضافة - اضافة بضاعة", vbExclamation + arabic, "عرض البضائع"<br />
Exit Sub<br />
End If<br />
<br />
Frm_Find.Show[/align]</code></div></div><div style="text-align: right;" class="mycode_align">والآن سننشأ حدث <span style="font-family: Arial;" class="mycode_font">Create_Flex</span> والذي ستكون مهمته تكوين الجدول ، وهو نفس الكود الذي قمنا بكتابته في <span style="font-family: Arial;" class="mycode_font">Frm_Show</span> دون أي تغيير ، اللهم ما عدا أن السطر التالي :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]MSFlexGrid1.Rows = T4.RecordCount + 1[/align]</code></div></div><div style="text-align: right;" class="mycode_align">سيتحول إلى :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]On Error Resume Next<br />
MSFlexGrid1.Rows = T4.RecordCount + 1<br />
If Err = 3420 Then<br />
MSFlexGrid1.Rows = 2<br />
End If[/align]</code></div></div><div style="text-align: right;" class="mycode_align">وسبب هذا أننا سنستدعي الأمر في حالة كون القاعدة مغلقة مما يسبب الخطأ رقم 3420 ، وهذا الكود لعدم اظهار رسالة خطأ .<br />
وبهذا يصبح الكود الكامل :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Sub Create_Flex()<br />
MSFlexGrid1.Clear<br />
MSFlexGrid1.Cols = 8<br />
On Error Resume Next<br />
MSFlexGrid1.Rows = T4.RecordCount + 1<br />
If Err = 3420 Then<br />
MSFlexGrid1.Rows = 2<br />
End If<br />
MSFlexGrid1.Row = 0<br />
MSFlexGrid1.Col = 0<br />
MSFlexGrid1.Text = "ت"<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = "رقم"<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = " اسم البضاعة"<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = "النوع"<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = "المصنع"<br />
MSFlexGrid1.Col = 5<br />
MSFlexGrid1.Text = "السعر"<br />
MSFlexGrid1.Col = 6<br />
MSFlexGrid1.Text = "العدد"<br />
MSFlexGrid1.Col = 7<br />
MSFlexGrid1.Text = "وحدة/صندوق"<br />
<br />
MSFlexGrid1.ColAlignment(0) = 5<br />
MSFlexGrid1.ColAlignment(1) = 5<br />
MSFlexGrid1.ColAlignment(2) = 3<br />
MSFlexGrid1.ColAlignment(3) = 5<br />
MSFlexGrid1.ColAlignment(4) = 5<br />
MSFlexGrid1.ColAlignment(5) = 5<br />
MSFlexGrid1.ColAlignment(6) = 5<br />
MSFlexGrid1.ColAlignment(7) = 5<br />
<br />
MSFlexGrid1.ColWidth(0) = 500<br />
MSFlexGrid1.ColWidth(1) = 500<br />
MSFlexGrid1.ColWidth(2) = 1500<br />
MSFlexGrid1.ColWidth(3) = 1500<br />
MSFlexGrid1.ColWidth(4) = 1500<br />
End Sub[/align]</code></div></div><br />
<div style="text-align: right;" class="mycode_align">من أجل هذا سنكتب في حدث <span style="font-family: Arial;" class="mycode_font">Form_Load</span> :</div>
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Me.Width = 5625<br />
Me.Height = 5400<br />
Me.Left = ((MDIForm1.Width - Me.Width) / 2)<br />
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 40<br />
Me.Show<br />
<br />
Create_Flex[/align]</code></div></div><div style="text-align: right;" class="mycode_align">ومن ثم نضيف العناصر المناسبة إلى <span style="font-family: Arial;" class="mycode_font">Combo1</span> و <span style="font-family: Arial;" class="mycode_font">Combo2</span> :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Combo1.AddItem "اسم البضاعة"<br />
Combo1.AddItem "النوع"<br />
Combo1.AddItem "المورد - المصنع"<br />
Combo1.AddItem "الكمية"<br />
Combo1.AddItem "السعر"<br />
<br />
Combo2.AddItem "&lt;"<br />
Combo2.AddItem "&gt;"<br />
Combo2.AddItem "="<br />
<br />
Combo1.ListIndex = 0[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color">والآن لنر أمراً ما ، ففي حالة اختار المستخدم البحث عن اسم البضاعة أو المصنع أو النوع فليس ثم خيار من </span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Combo2</span></span><span style="color: #0000ff;" class="mycode_color"> إلا (=) لأن البيانات في هذه الحالة نصية فلن نستخدم &lt; و &gt; .</span><br />
<br />
<div style="text-align: right;" class="mycode_align">من أجل هذا نكتب الأمر التالي في حدث <span style="font-family: Arial;" class="mycode_font">Combo1_Click</span> :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If Combo1.ListIndex &lt;&gt; 3 And Combo1.ListIndex &lt;&gt; 4 Then<br />
Combo2.ListIndex = 2<br />
Combo2.Enabled = False<br />
Else<br />
Combo2.Enabled = True<br />
End If[/align]</code></div></div><div style="text-align: right;" class="mycode_align">الحدث الثاني الذي سننشأه هو حدث <span style="font-family: Arial;" class="mycode_font">Refresh_Me</span> ، ولن نغير في الحدث الموجود في <span style="font-family: Arial;" class="mycode_font">Frm_Show</span> إلا نقطتين رئيسيتين :<br />
<span style="color: #800080;" class="mycode_color">* النقطة الأولى : سنزيل كل الأوامر التي كانت مخصصة لتعبئة القائمة بالبيانات .</span><br />
<span style="color: #800080;" class="mycode_color">* النقطة الثانية : سنغير جملة الاستعلام .</span><br />
<br />
<br />
لو نتذكر أمر الاستعلام السابق :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]SQL = "select tb_product.*,tb_category.*,tb_factory.* from tb_product,tb_factory,tb_category where tb_product.category=tb_category.number and tb_product.factory=tb_factory.number"<br />
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset[/align]</code></div></div><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
<br />
<br />
<br />
سنزيله ، ونستدعي بدلاً منه حدثاً اسمه <span style="font-family: Arial;" class="mycode_font">Search</span> تكون مهمته تكوين جملة الاستعلام ، ومن أجل ذلك يصبح كود الحدث بالشكل التالي :</div>
<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Public Sub Refresh_Me()<br />
Call Search<br />
<br />
Create_Flex<br />
If T4.RecordCount = 0 Then Exit Sub<br />
<br />
Frm_Wait.Show<br />
Frm_Wait.ProgressBar1.Max = T1.RecordCount<br />
Frm_Wait.ProgressBar1.Min = 0<br />
Frm_Wait.ProgressBar1.Value = 0<br />
<br />
T4.MoveLast<br />
T4.MoveFirst<br />
Create_Flex<br />
<br />
If T4.RecordCount &lt;&gt; 0 Then<br />
T4.MoveFirst<br />
For I = 0 To T4.RecordCount - 1<br />
Frm_Wait.ProgressBar1.Value = Frm_Wait.ProgressBar1.Value + 1<br />
DoEvents<br />
MSFlexGrid1.Row = I + 1<br />
MSFlexGrid1.Col = 1<br />
MSFlexGrid1.Text = T4.Fields("tb_product.Number")<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Text = T4.Fields("tb_product.name")<br />
MSFlexGrid1.Col = 3<br />
MSFlexGrid1.Text = T4.Fields("tb_category.name")<br />
MSFlexGrid1.Col = 4<br />
MSFlexGrid1.Text = T4.Fields("tb_factory.name")<br />
MSFlexGrid1.Col = 5<br />
MSFlexGrid1.Text = T4!price<br />
MSFlexGrid1.Col = 6<br />
MSFlexGrid1.Text = T4.Fields("Count")<br />
MSFlexGrid1.Col = 7<br />
MSFlexGrid1.Text = T4!Box_count<br />
<br />
T4.MoveNext<br />
Next I<br />
<br />
MSFlexGrid1.Col = 2<br />
MSFlexGrid1.Sort = 7<br />
<br />
<br />
MSFlexGrid1.Col = 0<br />
For I = 0 To T4.RecordCount - 1<br />
MSFlexGrid1.Row = I + 1<br />
MSFlexGrid1.Text = I + 1<br />
Next I<br />
End If<br />
<br />
T4.Close<br />
<br />
Unload Frm_Wait<br />
End Sub[/align]</code></div></div><div style="text-align: right;" class="mycode_align">يتبع ...</div>
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس الحادي والعشرون - الإستيراد والتصدير لقاعدة البيانات]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5709</link>
			<pubDate>Mon, 15 Oct 2012 04:26:09 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5709</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">الاستيراد والتصدير Import &amp; Export :</div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">لن نقوم بالنسخ في هذا الدرس بما يمكن أن نسميه نسخاً احتياطياً كاملاً ، بل إن ما سنقوم به هو نسخ ملف قاعدة البيانات .<br />
وسنبدأ بعمل اجراءين <span style="font-family: Arial;" class="mycode_font">Copy_Me</span> لعمل نسخة احتياطية ، و <span style="font-family: Arial;" class="mycode_font">Copy_2</span> لاستعادة نسخة احتياطية ، وسنكتب الأمر بالشكل التالي :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Select Case Index<br />
Case 0<br />
Copy_Me<br />
Case 1<br />
Copy_2<br />
End Select</code></div></div><br />
والآن سنضيف أداة <span style="font-family: Arial;" class="mycode_font">CommonDialog</span> والتي من ضمن اختصاصاتها المربعات الحوارية للفتح والحفظ ، ولما كان <span style="font-family: Arial;" class="mycode_font">MDIForm</span> لا يقبل اضافة أي أدوات عليه سوى <span style="font-family: Arial;" class="mycode_font">Picture</span> فإننا سنضيف واحدة ونجعل <span style="font-family: Arial;" class="mycode_font">Visible=False</span> ، ونضع عليها الأداة .<br />
ولاضافة الأداة اضغط <span style="font-family: Arial;" class="mycode_font">Ctrl+T</span> واختر <span style="font-family: Arial;" class="mycode_font">Microsoft CommonDialog Control 6.0</span> .</div>
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">برمجة الأمر </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Copy_Me</span></span><span style="color: #008000;" class="mycode_color"> :</span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">في بداية هذا الأمر سوف نكتب عبارة تلافي الأخطاء :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>On Error GoTo 11</code></div></div>وفي آخر الأمر :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>11:<br />
Exit Sub</code></div></div><br />
وهذا يخبر البرنامج أنه في حال وجدت خطأ توجه إلى السطر 11 ، وفي السطر 11 نأمره بانهاء الاجراء .<br />
<br />
ولكي نجعل المستخدم عندما يضغط على ( الغاء الأمر - <span style="font-family: Arial;" class="mycode_font">Cancel</span> ) يخرج فإننا نجعل الغاء الأمر خطأ بالشكل التالي :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>CommonDialog1.CancelError = True</code></div></div>ومن ثم نضبط العنوان ، ونوع الملفات التي سيتم حفظها :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>CommonDialog1.CancelError = True<br />
CommonDialog1.DialogTitle = "اختر المكان المطلوب للحفظ"<br />
CommonDialog1.Filter = "Access File|*.mdb|"</code></div></div><br />
وأخيراً نظهر المربع الحواري للحفظ :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>CommonDialog1.ShowSave</code></div></div>ستعيد هذه الوظيفة الاسم الكامل للمسار + الملف في الخاصية <span style="font-family: Arial;" class="mycode_font">FileName</span> فيما تعيد اسم الملف فقط في <span style="font-family: Arial;" class="mycode_font">FileTitle</span> .<br />
<br />
سنجري الآن سلسلة من الاختبارات على اسم الملف ، فنتأكد من أنه فارغ ، وأنه ليس ثم ملف يحمل نفس الاسم في نفس المكان :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If CommonDialog1.FileTitle = "" Then Exit Sub<br />
<br />
If Dir(CommonDialog1.FileName) &lt;&gt; "" Then<br />
MsgBox "توجد ملف بنفس الإسم في المسار المحدد", vbExclamation + arabic, "نسخ واستيراد"<br />
Exit Sub<br />
End If</code></div></div><br />
والآن تمهيداً للنسخ لابد من اغلاق قاعدة البيانات :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>D1.Close</code></div></div>ومن ثم أمر النسخ :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>FileCopy Folder &amp; "db1.mdb", CommonDialog1.FileName</code></div></div>ونعيد فتح قاعدة البيانات من جديد :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Set D1 = DBEngine.Workspaces(0).OpenDatabase(Folder &amp; "Db1.mdb", False, False, ";pwd=" &amp; PassWord)<br />
<br />
Set T1 = D1.OpenRecordset("Tb_Product", dbOpenTable)<br />
Set T2 = D1.OpenRecordset("Tb_Category", dbOpenTable)<br />
Set T3 = D1.OpenRecordset("Tb_Factory", dbOpenTable)<br />
Set T5 = D1.OpenRecordset("Tb_Sel_Bay", dbOpenTable</code></div></div><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
<br />
<br />
ومن ثم رسالة باتمام العملية بنجاح :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>MsgBox "تم نسخ قاعدة البيانات بنجاح إلى : " &amp; CommonDialog1.FileName, vbInformation + arabic, "نسخ واستيراد"</code></div></div></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">وبهذا يصبح الكود الكامل لأمر </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Copy_Me</span></span><span style="color: #0000ff;" class="mycode_color"> بالشكل التالي :</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Copy_Me()<br />
On Error GoTo 11<br />
CommonDialog1.CancelError = True<br />
CommonDialog1.DialogTitle = "اختر المكان المطلوب للحفظ"<br />
CommonDialog1.Filter = "Access File|*.mdb|"<br />
CommonDialog1.ShowSave<br />
<br />
If CommonDialog1.FileTitle = "" Then Exit Sub<br />
<br />
If Dir(CommonDialog1.FileName) &lt;&gt; "" Then<br />
MsgBox "توجد ملف بنفس الإسم في المسار المحدد", vbExclamation + arabic, "نسخ واستيراد"<br />
Exit Sub<br />
End If<br />
<br />
D1.Close<br />
<br />
FileCopy Folder &amp; "db1.mdb", CommonDialog1.FileName<br />
<br />
Set D1 = DBEngine.Workspaces(0).OpenDatabase(Folder &amp; "Db1.mdb", False, False, ";pwd=" &amp; PassWord)<br />
<br />
Set T1 = D1.OpenRecordset("Tb_Product", dbOpenTable)<br />
Set T2 = D1.OpenRecordset("Tb_Category", dbOpenTable)<br />
Set T3 = D1.OpenRecordset("Tb_Factory", dbOpenTable)<br />
Set T5 = D1.OpenRecordset("Tb_Sel_Bay", dbOpenTable)<br />
<br />
<br />
MsgBox "تم نسخ قاعدة البيانات بنجاح إلى : " &amp; CommonDialog1.FileName, vbInformation + arabic, "نسخ واستيراد"<br />
11:<br />
Exit Sub<br />
End Sub</code></div></div></div>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">يتبع ...</div>
</span></span>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم .<br />
السلام عليكم ورحمة الله وبركاته .</div>
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">الاستيراد والتصدير Import &amp; Export :</div>
<br />
</span></span><br />
<div style="text-align: right;" class="mycode_align">لن نقوم بالنسخ في هذا الدرس بما يمكن أن نسميه نسخاً احتياطياً كاملاً ، بل إن ما سنقوم به هو نسخ ملف قاعدة البيانات .<br />
وسنبدأ بعمل اجراءين <span style="font-family: Arial;" class="mycode_font">Copy_Me</span> لعمل نسخة احتياطية ، و <span style="font-family: Arial;" class="mycode_font">Copy_2</span> لاستعادة نسخة احتياطية ، وسنكتب الأمر بالشكل التالي :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Select Case Index<br />
Case 0<br />
Copy_Me<br />
Case 1<br />
Copy_2<br />
End Select</code></div></div><br />
والآن سنضيف أداة <span style="font-family: Arial;" class="mycode_font">CommonDialog</span> والتي من ضمن اختصاصاتها المربعات الحوارية للفتح والحفظ ، ولما كان <span style="font-family: Arial;" class="mycode_font">MDIForm</span> لا يقبل اضافة أي أدوات عليه سوى <span style="font-family: Arial;" class="mycode_font">Picture</span> فإننا سنضيف واحدة ونجعل <span style="font-family: Arial;" class="mycode_font">Visible=False</span> ، ونضع عليها الأداة .<br />
ولاضافة الأداة اضغط <span style="font-family: Arial;" class="mycode_font">Ctrl+T</span> واختر <span style="font-family: Arial;" class="mycode_font">Microsoft CommonDialog Control 6.0</span> .</div>
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">برمجة الأمر </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #008000;" class="mycode_color">Copy_Me</span></span><span style="color: #008000;" class="mycode_color"> :</span></div>
<span style="color: #008000;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">في بداية هذا الأمر سوف نكتب عبارة تلافي الأخطاء :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>On Error GoTo 11</code></div></div>وفي آخر الأمر :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>11:<br />
Exit Sub</code></div></div><br />
وهذا يخبر البرنامج أنه في حال وجدت خطأ توجه إلى السطر 11 ، وفي السطر 11 نأمره بانهاء الاجراء .<br />
<br />
ولكي نجعل المستخدم عندما يضغط على ( الغاء الأمر - <span style="font-family: Arial;" class="mycode_font">Cancel</span> ) يخرج فإننا نجعل الغاء الأمر خطأ بالشكل التالي :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>CommonDialog1.CancelError = True</code></div></div>ومن ثم نضبط العنوان ، ونوع الملفات التي سيتم حفظها :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>CommonDialog1.CancelError = True<br />
CommonDialog1.DialogTitle = "اختر المكان المطلوب للحفظ"<br />
CommonDialog1.Filter = "Access File|*.mdb|"</code></div></div><br />
وأخيراً نظهر المربع الحواري للحفظ :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>CommonDialog1.ShowSave</code></div></div>ستعيد هذه الوظيفة الاسم الكامل للمسار + الملف في الخاصية <span style="font-family: Arial;" class="mycode_font">FileName</span> فيما تعيد اسم الملف فقط في <span style="font-family: Arial;" class="mycode_font">FileTitle</span> .<br />
<br />
سنجري الآن سلسلة من الاختبارات على اسم الملف ، فنتأكد من أنه فارغ ، وأنه ليس ثم ملف يحمل نفس الاسم في نفس المكان :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If CommonDialog1.FileTitle = "" Then Exit Sub<br />
<br />
If Dir(CommonDialog1.FileName) &lt;&gt; "" Then<br />
MsgBox "توجد ملف بنفس الإسم في المسار المحدد", vbExclamation + arabic, "نسخ واستيراد"<br />
Exit Sub<br />
End If</code></div></div><br />
والآن تمهيداً للنسخ لابد من اغلاق قاعدة البيانات :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>D1.Close</code></div></div>ومن ثم أمر النسخ :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>FileCopy Folder &amp; "db1.mdb", CommonDialog1.FileName</code></div></div>ونعيد فتح قاعدة البيانات من جديد :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Set D1 = DBEngine.Workspaces(0).OpenDatabase(Folder &amp; "Db1.mdb", False, False, ";pwd=" &amp; PassWord)<br />
<br />
Set T1 = D1.OpenRecordset("Tb_Product", dbOpenTable)<br />
Set T2 = D1.OpenRecordset("Tb_Category", dbOpenTable)<br />
Set T3 = D1.OpenRecordset("Tb_Factory", dbOpenTable)<br />
Set T5 = D1.OpenRecordset("Tb_Sel_Bay", dbOpenTable</code></div></div><span style="font-family: Times New Roman;" class="mycode_font">)</span><br />
<br />
<br />
ومن ثم رسالة باتمام العملية بنجاح :<br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>MsgBox "تم نسخ قاعدة البيانات بنجاح إلى : " &amp; CommonDialog1.FileName, vbInformation + arabic, "نسخ واستيراد"</code></div></div></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">وبهذا يصبح الكود الكامل لأمر </div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">Copy_Me</span></span><span style="color: #0000ff;" class="mycode_color"> بالشكل التالي :</span></div>
<span style="color: #0000ff;" class="mycode_color"><br />
</span><br />
<div style="text-align: right;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Copy_Me()<br />
On Error GoTo 11<br />
CommonDialog1.CancelError = True<br />
CommonDialog1.DialogTitle = "اختر المكان المطلوب للحفظ"<br />
CommonDialog1.Filter = "Access File|*.mdb|"<br />
CommonDialog1.ShowSave<br />
<br />
If CommonDialog1.FileTitle = "" Then Exit Sub<br />
<br />
If Dir(CommonDialog1.FileName) &lt;&gt; "" Then<br />
MsgBox "توجد ملف بنفس الإسم في المسار المحدد", vbExclamation + arabic, "نسخ واستيراد"<br />
Exit Sub<br />
End If<br />
<br />
D1.Close<br />
<br />
FileCopy Folder &amp; "db1.mdb", CommonDialog1.FileName<br />
<br />
Set D1 = DBEngine.Workspaces(0).OpenDatabase(Folder &amp; "Db1.mdb", False, False, ";pwd=" &amp; PassWord)<br />
<br />
Set T1 = D1.OpenRecordset("Tb_Product", dbOpenTable)<br />
Set T2 = D1.OpenRecordset("Tb_Category", dbOpenTable)<br />
Set T3 = D1.OpenRecordset("Tb_Factory", dbOpenTable)<br />
Set T5 = D1.OpenRecordset("Tb_Sel_Bay", dbOpenTable)<br />
<br />
<br />
MsgBox "تم نسخ قاعدة البيانات بنجاح إلى : " &amp; CommonDialog1.FileName, vbInformation + arabic, "نسخ واستيراد"<br />
11:<br />
Exit Sub<br />
End Sub</code></div></div></div>
<span style="font-weight: bold;" class="mycode_b"><span style="color: #008000;" class="mycode_color"><br />
<div style="text-align: right;" class="mycode_align">يتبع ...</div>
</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الدرس العشرين - اضافة آلة حاسبة للبرنامج]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=5708</link>
			<pubDate>Mon, 15 Oct 2012 04:20:59 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=3403">Raggi Tech</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=5708</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">.</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><br />
</span></span><span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">السلام عليكم ورحمة الله وبركاته</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">.</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><br />
</span></span><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">آلة حاسبة</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">.</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">سنتعلم سوية خلال هذا الدرس عمل آلة حاسبة بسيطة ، وسنحاول جاهدين تلافي كتابة أسطر كثيرة معتمدين في ذلك على خاصية<span style="font-family: Times New Roman;" class="mycode_font"> Index </span>للأزرار<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">ولمن لا يعرف خاصية<span style="font-family: Times New Roman;" class="mycode_font"> Index </span>فهي الخاصية التي تتيح تسمية أكثر من أداة بنفس الاسم مع تغيير قيمة هذه الخاصية فقط ، أو بمعنى آخر إنها تقوم بعمل مصفوفة<span style="font-family: Times New Roman;" class="mycode_font"> Array </span>من الأدوات<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">وتتيح هذه الخاصية أيضاً وضع كود مشترك لجميع هذه الأدوات<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">من أجل ذلك سنبدأ في تصميم فورم صغير ، ونضبط خاصية<span style="font-family: Times New Roman;" class="mycode_font"> MDIChild </span>بحيث تصبح<span style="font-family: Times New Roman;" class="mycode_font"> True </span>، وذلك لمكن استخدام هذا الفورم أثناء عمل البرنامج<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">يحتوي هذا الفورم على ما يلي<span style="font-family: Times New Roman;" class="mycode_font"> :</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Command1</span></span><span style="color: #000080;" class="mycode_color">وبـ</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Index </span></span><span style="color: #000080;" class="mycode_color">من 0 إلى 10 تحتوي في خاصية</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Caption </span></span><span style="color: #000080;" class="mycode_color">على الأرقام بالترتيب من 0 وحتى 9 اضافة إلى الفاصلة</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .<br />
<div style="text-align: right;" class="mycode_align">Command2</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">ويحتوي في خاصية</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Caption </span></span><span style="color: #000080;" class="mycode_color">على +/- وهي مختصة بتغيير الاشارة</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Command3</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">وبـ</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Index </span></span><span style="color: #000080;" class="mycode_color">من 0 إلى 3 تحتوي على العمليات التالية</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> : + </span></span><span style="color: #000080;" class="mycode_color">، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">- </span></span><span style="color: #000080;" class="mycode_color">، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">* </span></span><span style="color: #000080;" class="mycode_color">، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">/ .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Command4</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">ويحتوي على</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> = .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Command5</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">ويحتوي على</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Index </span></span><span style="color: #000080;" class="mycode_color">من 0 وحتى 2 تحتوي على الرموز التالية</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> CE </span></span><span style="color: #000080;" class="mycode_color">لمسح العملية الحالية ، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">C </span></span><span style="color: #000080;" class="mycode_color">لافراغ الخانات من جديد ، و</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Off </span></span><span style="color: #000080;" class="mycode_color">لاغلاق الآلة</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Command6</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">ويحتوي على</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Index </span></span><span style="color: #000080;" class="mycode_color">من 0 وحتى 2 ويحتوي على</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> MS </span></span><span style="color: #000080;" class="mycode_color">لتخزين رقم ، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">MR </span></span><span style="color: #000080;" class="mycode_color">لاسترجاع التخزين ، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">MC </span></span><span style="color: #000080;" class="mycode_color">لافراغ التخزين</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Text1</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">وهو خانة العمليات</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Text2</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">وهي الخانة التي توضح الاشارة الحالية ، حاول وضعه على المربع الأول بحيث يبدو أنه بداخله</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">واضبط خاصيتي</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Locked </span></span><span style="color: #000080;" class="mycode_color">لهذين المربعين بحيث تصبح</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> True </span></span><span style="color: #000080;" class="mycode_color">لمنع التلاعب فيهما</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">والآن أضف ثلاثة متغيرات ، متغير<span style="font-family: Times New Roman;" class="mycode_font"> Memory </span>من النوع<span style="font-family: Times New Roman;" class="mycode_font"> double </span>ليحل محل الذاكرة ، ومتغير<span style="font-family: Times New Roman;" class="mycode_font"> First </span>من نفس النوع والذي سيحتوي على الرقم الأول ، <span style="font-family: Times New Roman;" class="mycode_font">There </span>وهو متغير من النوع<span style="font-family: Times New Roman;" class="mycode_font"> Boolean </span>وهو يبين لنا إذا ما كنا لتونا قد ضغطنا على أحد العمليات أو = بحيث تمسح الخانه مع أول ضغطة لرقم<span style="font-family: Times New Roman;" class="mycode_font"> . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Dim First As Double <br />
Dim There As Boolean<br />
Dim Memory As Double[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">الأمر الثاني هو التعامل مع الأرقام ، وكما ترى فكل ما نحتاج إليه في الأرقام والفاصلة هو أن نزيد مربع النص<span style="font-family: Times New Roman;" class="mycode_font"> Text1 </span>بمحتويات الزر المضغوط عليه<span style="font-family: Times New Roman;" class="mycode_font"> . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">إذن سنجل مربع النص = مربع النص اضافة إلى<span style="font-family: Times New Roman;" class="mycode_font"> Caption </span>للزر المضغوط عليه<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">ولكن قبل ذلك نتأكد من أن<span style="font-family: Times New Roman;" class="mycode_font"> There </span>تحتوي على<span style="font-family: Times New Roman;" class="mycode_font"> False </span>، وإلا فإننا نفرغ الخانة أولاً<span style="font-family: Times New Roman;" class="mycode_font"> :</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If There = True Then <br />
There = False<br />
Text1.Text = ""<br />
End If<br />
Text1.Text = Text1.Text &amp; Command1(Index).Caption[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">والآن إلى جزء العمليات الحسابية ، سنستدعي أولاً دالة نسميها<span style="font-family: Times New Roman;" class="mycode_font"> Calc_Me </span>، ومن ثم نضبط<span style="font-family: Times New Roman;" class="mycode_font"> There </span>على<span style="font-family: Times New Roman;" class="mycode_font"> True </span>، ونضع في<span style="font-family: Times New Roman;" class="mycode_font"> First </span>الرقم الحالية ، واضافة لذلك ، نضع العلامة الحالية في<span style="font-family: Times New Roman;" class="mycode_font"> Text2 . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Call Calc_Me <br />
There = True <br />
First = Val(Text1.Text)<br />
Text2.Text = Command3(Index).Caption[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">ولنر كيف سيكون شكل الاجراء<span style="font-family: Times New Roman;" class="mycode_font"> Calc_Me </span>، والذي سنختبر قيمة<span style="font-family: Times New Roman;" class="mycode_font"> Text2 </span>وعلى أساسها سوف نقوم بعمل العملية الحسابية بين<span style="font-family: Times New Roman;" class="mycode_font"> First </span>و<span style="font-family: Times New Roman;" class="mycode_font"> Text1 </span>ونضعها في<span style="font-family: Times New Roman;" class="mycode_font"> Text1 : </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Select Case Text2.Text <br />
Case "+"<br />
Text1.Text = First + Val(Text1.Text)<br />
Case "-"<br />
Text1.Text = First - Val(Text1.Text)<br />
Case "*"<br />
Text1.Text = First * Val(Text1.Text)<br />
Case "/"<br />
Text1.Text = First / Val(Text1.Text)<br />
End Select[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">لكن ولأنه قد تحدث أخطاء ناتجة عن قسمة على الصفر مثلاً ، أو<span style="font-family: Times New Roman;" class="mycode_font"> OverFlow </span>، ولكي لا يتوقف البرنامج فإننا نضع العبارة التالية في بداية الاجراء<span style="font-family: Times New Roman;" class="mycode_font"> : </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]On Error Resume Next [/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">وفي آخر الكود نضع ماذا يحدث لو تم اكتشاف خطأ ، حيث نظهر رسالة بهذا الخطأ ، وتخزن كل معلومات الخطأ في الكائن<span style="font-family: Times New Roman;" class="mycode_font"> Err : </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If Err Then <br />
MsgBox Err.Description, vbCritical, "[/align]</code></div></div></span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]خطأ[FONT=Times New Roman] " &amp; Err<br />
Err.Clear<br />
End If[/FONT][/align]<br />
[FONT=Times New Roman]<br />
[/FONT]</code></div></div><span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">لنعد مرة أخرى إلى أمر = ، ولو لاحظنا أننا سنستدعي الاجراء<span style="font-family: Times New Roman;" class="mycode_font"> Calc_Me </span>، ومن ثم نفرغ خانة العملية<span style="font-family: Times New Roman;" class="mycode_font"> Text2 </span>ونضع<span style="font-family: Times New Roman;" class="mycode_font"> There=True . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Call Calc_Me <br />
There = True <br />
Text2.Text = ""[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">والآن أوامر<span style="font-family: Times New Roman;" class="mycode_font"> Command5 </span>والتي تحتوي على<span style="font-family: Times New Roman;" class="mycode_font"> C </span>و<span style="font-family: Times New Roman;" class="mycode_font"> CE </span>و<span style="font-family: Times New Roman;" class="mycode_font"> Off . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Select Case Index <br />
Case 0<br />
Text1.Text = ""<br />
Text2.Text = ""<br />
Case 1<br />
Text1.Text = ""<br />
Case 2<br />
Unload Me<br />
End Select[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">وأخيراً أوامر<span style="font-family: Times New Roman;" class="mycode_font"> MS </span>و<span style="font-family: Times New Roman;" class="mycode_font"> MR </span>و<span style="font-family: Times New Roman;" class="mycode_font"> MC : </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Select Case Index <br />
Case 0<br />
Memory = Val(Text1.Text)<br />
Case 1<br />
Text1.Text = Memory<br />
There = False<br />
Case 2<br />
Memory = 0<br />
End Select[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">ويمكنك جلياً أن تلاحظ كم من الأكواد وفرت علينا بفضل الله خاصية<span style="font-family: Times New Roman;" class="mycode_font"> Index </span>واستدعاء الاجراء<span style="font-family: Times New Roman;" class="mycode_font"> Calc_Me </span>بدلاً من كتابته مع كل حدث<span style="font-family: Times New Roman;" class="mycode_font"> . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">والآن ، نرى كود اظهار هذا الفورم ، وسنظهره في الطرف الأعلى والأيسر للفورم<span style="font-family: Times New Roman;" class="mycode_font"> . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Case 7 <br />
Frm_Calc.Width = 3105<br />
Frm_Calc.Height = 2640<br />
Frm_Calc.Top = 0 ' MDIForm1.Height - Frm_Calc.Height<br />
Frm_Calc.Left = 0<br />
Frm_Calc.Show[/align]</code></div></div></span><span style="color: #0000ff;" class="mycode_color"><br />
<br />
<div style="text-align: right;" class="mycode_align">يتبع</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">...</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><br />
</span></span>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: times new roman;" class="mycode_font"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000080;" class="mycode_color">كاتب الموضوع : <span style="color: green;" class="mycode_color">أحمد جمال<br />
<br />
</span></span></span></span></span></div>
<span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">بسم الله الرحمن الرحيم</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">.</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><br />
</span></span><span style="color: #0000ff;" class="mycode_color"><div style="text-align: right;" class="mycode_align">السلام عليكم ورحمة الله وبركاته</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">.</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><br />
</span></span><span style="color: #ff0000;" class="mycode_color"><div style="text-align: right;" class="mycode_align">آلة حاسبة</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">.</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">سنتعلم سوية خلال هذا الدرس عمل آلة حاسبة بسيطة ، وسنحاول جاهدين تلافي كتابة أسطر كثيرة معتمدين في ذلك على خاصية<span style="font-family: Times New Roman;" class="mycode_font"> Index </span>للأزرار<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">ولمن لا يعرف خاصية<span style="font-family: Times New Roman;" class="mycode_font"> Index </span>فهي الخاصية التي تتيح تسمية أكثر من أداة بنفس الاسم مع تغيير قيمة هذه الخاصية فقط ، أو بمعنى آخر إنها تقوم بعمل مصفوفة<span style="font-family: Times New Roman;" class="mycode_font"> Array </span>من الأدوات<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">وتتيح هذه الخاصية أيضاً وضع كود مشترك لجميع هذه الأدوات<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">من أجل ذلك سنبدأ في تصميم فورم صغير ، ونضبط خاصية<span style="font-family: Times New Roman;" class="mycode_font"> MDIChild </span>بحيث تصبح<span style="font-family: Times New Roman;" class="mycode_font"> True </span>، وذلك لمكن استخدام هذا الفورم أثناء عمل البرنامج<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">يحتوي هذا الفورم على ما يلي<span style="font-family: Times New Roman;" class="mycode_font"> :</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Command1</span></span><span style="color: #000080;" class="mycode_color">وبـ</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Index </span></span><span style="color: #000080;" class="mycode_color">من 0 إلى 10 تحتوي في خاصية</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Caption </span></span><span style="color: #000080;" class="mycode_color">على الأرقام بالترتيب من 0 وحتى 9 اضافة إلى الفاصلة</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .<br />
<div style="text-align: right;" class="mycode_align">Command2</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">ويحتوي في خاصية</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Caption </span></span><span style="color: #000080;" class="mycode_color">على +/- وهي مختصة بتغيير الاشارة</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Command3</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">وبـ</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Index </span></span><span style="color: #000080;" class="mycode_color">من 0 إلى 3 تحتوي على العمليات التالية</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> : + </span></span><span style="color: #000080;" class="mycode_color">، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">- </span></span><span style="color: #000080;" class="mycode_color">، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">* </span></span><span style="color: #000080;" class="mycode_color">، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">/ .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Command4</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">ويحتوي على</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> = .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Command5</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">ويحتوي على</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Index </span></span><span style="color: #000080;" class="mycode_color">من 0 وحتى 2 تحتوي على الرموز التالية</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> CE </span></span><span style="color: #000080;" class="mycode_color">لمسح العملية الحالية ، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">C </span></span><span style="color: #000080;" class="mycode_color">لافراغ الخانات من جديد ، و</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Off </span></span><span style="color: #000080;" class="mycode_color">لاغلاق الآلة</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Command6</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">ويحتوي على</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> Index </span></span><span style="color: #000080;" class="mycode_color">من 0 وحتى 2 ويحتوي على</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> MS </span></span><span style="color: #000080;" class="mycode_color">لتخزين رقم ، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">MR </span></span><span style="color: #000080;" class="mycode_color">لاسترجاع التخزين ، </span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">MC </span></span><span style="color: #000080;" class="mycode_color">لافراغ التخزين</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Text1</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">وهو خانة العمليات</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">Text2</div>
</span></span><div style="text-align: right;" class="mycode_align"><span style="color: #000080;" class="mycode_color">وهي الخانة التي توضح الاشارة الحالية ، حاول وضعه على المربع الأول بحيث يبدو أنه بداخله</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><span style="color: #000080;" class="mycode_color"><div style="text-align: right;" class="mycode_align">واضبط خاصيتي</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color">Locked </span></span><span style="color: #000080;" class="mycode_color">لهذين المربعين بحيث تصبح</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> True </span></span><span style="color: #000080;" class="mycode_color">لمنع التلاعب فيهما</span><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #000080;" class="mycode_color"> .</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">والآن أضف ثلاثة متغيرات ، متغير<span style="font-family: Times New Roman;" class="mycode_font"> Memory </span>من النوع<span style="font-family: Times New Roman;" class="mycode_font"> double </span>ليحل محل الذاكرة ، ومتغير<span style="font-family: Times New Roman;" class="mycode_font"> First </span>من نفس النوع والذي سيحتوي على الرقم الأول ، <span style="font-family: Times New Roman;" class="mycode_font">There </span>وهو متغير من النوع<span style="font-family: Times New Roman;" class="mycode_font"> Boolean </span>وهو يبين لنا إذا ما كنا لتونا قد ضغطنا على أحد العمليات أو = بحيث تمسح الخانه مع أول ضغطة لرقم<span style="font-family: Times New Roman;" class="mycode_font"> . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Dim First As Double <br />
Dim There As Boolean<br />
Dim Memory As Double[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">الأمر الثاني هو التعامل مع الأرقام ، وكما ترى فكل ما نحتاج إليه في الأرقام والفاصلة هو أن نزيد مربع النص<span style="font-family: Times New Roman;" class="mycode_font"> Text1 </span>بمحتويات الزر المضغوط عليه<span style="font-family: Times New Roman;" class="mycode_font"> . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">إذن سنجل مربع النص = مربع النص اضافة إلى<span style="font-family: Times New Roman;" class="mycode_font"> Caption </span>للزر المضغوط عليه<span style="font-family: Times New Roman;" class="mycode_font"> .</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">ولكن قبل ذلك نتأكد من أن<span style="font-family: Times New Roman;" class="mycode_font"> There </span>تحتوي على<span style="font-family: Times New Roman;" class="mycode_font"> False </span>، وإلا فإننا نفرغ الخانة أولاً<span style="font-family: Times New Roman;" class="mycode_font"> :</span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If There = True Then <br />
There = False<br />
Text1.Text = ""<br />
End If<br />
Text1.Text = Text1.Text &amp; Command1(Index).Caption[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">والآن إلى جزء العمليات الحسابية ، سنستدعي أولاً دالة نسميها<span style="font-family: Times New Roman;" class="mycode_font"> Calc_Me </span>، ومن ثم نضبط<span style="font-family: Times New Roman;" class="mycode_font"> There </span>على<span style="font-family: Times New Roman;" class="mycode_font"> True </span>، ونضع في<span style="font-family: Times New Roman;" class="mycode_font"> First </span>الرقم الحالية ، واضافة لذلك ، نضع العلامة الحالية في<span style="font-family: Times New Roman;" class="mycode_font"> Text2 . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Call Calc_Me <br />
There = True <br />
First = Val(Text1.Text)<br />
Text2.Text = Command3(Index).Caption[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">ولنر كيف سيكون شكل الاجراء<span style="font-family: Times New Roman;" class="mycode_font"> Calc_Me </span>، والذي سنختبر قيمة<span style="font-family: Times New Roman;" class="mycode_font"> Text2 </span>وعلى أساسها سوف نقوم بعمل العملية الحسابية بين<span style="font-family: Times New Roman;" class="mycode_font"> First </span>و<span style="font-family: Times New Roman;" class="mycode_font"> Text1 </span>ونضعها في<span style="font-family: Times New Roman;" class="mycode_font"> Text1 : </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Select Case Text2.Text <br />
Case "+"<br />
Text1.Text = First + Val(Text1.Text)<br />
Case "-"<br />
Text1.Text = First - Val(Text1.Text)<br />
Case "*"<br />
Text1.Text = First * Val(Text1.Text)<br />
Case "/"<br />
Text1.Text = First / Val(Text1.Text)<br />
End Select[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">لكن ولأنه قد تحدث أخطاء ناتجة عن قسمة على الصفر مثلاً ، أو<span style="font-family: Times New Roman;" class="mycode_font"> OverFlow </span>، ولكي لا يتوقف البرنامج فإننا نضع العبارة التالية في بداية الاجراء<span style="font-family: Times New Roman;" class="mycode_font"> : </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]On Error Resume Next [/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">وفي آخر الكود نضع ماذا يحدث لو تم اكتشاف خطأ ، حيث نظهر رسالة بهذا الخطأ ، وتخزن كل معلومات الخطأ في الكائن<span style="font-family: Times New Roman;" class="mycode_font"> Err : </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]If Err Then <br />
MsgBox Err.Description, vbCritical, "[/align]</code></div></div></span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]خطأ[FONT=Times New Roman] " &amp; Err<br />
Err.Clear<br />
End If[/FONT][/align]<br />
[FONT=Times New Roman]<br />
[/FONT]</code></div></div><span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">لنعد مرة أخرى إلى أمر = ، ولو لاحظنا أننا سنستدعي الاجراء<span style="font-family: Times New Roman;" class="mycode_font"> Calc_Me </span>، ومن ثم نفرغ خانة العملية<span style="font-family: Times New Roman;" class="mycode_font"> Text2 </span>ونضع<span style="font-family: Times New Roman;" class="mycode_font"> There=True . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Call Calc_Me <br />
There = True <br />
Text2.Text = ""[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">والآن أوامر<span style="font-family: Times New Roman;" class="mycode_font"> Command5 </span>والتي تحتوي على<span style="font-family: Times New Roman;" class="mycode_font"> C </span>و<span style="font-family: Times New Roman;" class="mycode_font"> CE </span>و<span style="font-family: Times New Roman;" class="mycode_font"> Off . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Select Case Index <br />
Case 0<br />
Text1.Text = ""<br />
Text2.Text = ""<br />
Case 1<br />
Text1.Text = ""<br />
Case 2<br />
Unload Me<br />
End Select[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">وأخيراً أوامر<span style="font-family: Times New Roman;" class="mycode_font"> MS </span>و<span style="font-family: Times New Roman;" class="mycode_font"> MR </span>و<span style="font-family: Times New Roman;" class="mycode_font"> MC : </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Select Case Index <br />
Case 0<br />
Memory = Val(Text1.Text)<br />
Case 1<br />
Text1.Text = Memory<br />
There = False<br />
Case 2<br />
Memory = 0<br />
End Select[/align]</code></div></div></span><div style="text-align: right;" class="mycode_align">ويمكنك جلياً أن تلاحظ كم من الأكواد وفرت علينا بفضل الله خاصية<span style="font-family: Times New Roman;" class="mycode_font"> Index </span>واستدعاء الاجراء<span style="font-family: Times New Roman;" class="mycode_font"> Calc_Me </span>بدلاً من كتابته مع كل حدث<span style="font-family: Times New Roman;" class="mycode_font"> . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
</span><div style="text-align: right;" class="mycode_align">والآن ، نرى كود اظهار هذا الفورم ، وسنظهره في الطرف الأعلى والأيسر للفورم<span style="font-family: Times New Roman;" class="mycode_font"> . </span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right]Case 7 <br />
Frm_Calc.Width = 3105<br />
Frm_Calc.Height = 2640<br />
Frm_Calc.Top = 0 ' MDIForm1.Height - Frm_Calc.Height<br />
Frm_Calc.Left = 0<br />
Frm_Calc.Show[/align]</code></div></div></span><span style="color: #0000ff;" class="mycode_color"><br />
<br />
<div style="text-align: right;" class="mycode_align">يتبع</div>
</span><div style="text-align: right;" class="mycode_align"><span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color">...</span></span></div>
<span style="font-family: Times New Roman;" class="mycode_font"><span style="color: #0000ff;" class="mycode_color"><br />
</span></span>]]></content:encoded>
		</item>
	</channel>
</rss>