zahrah كتب:اخي الفاضل ابو ساره وجميع الاخوه الكرام
السلام عليكم ورحمة الله وبركاته
كما يعلم الجميع ان برنامج الاكسيس هو خاص لقواعد البيانات وحفظ البيانات لوقت الحاجة لها في اي وقت وليس من اهتمامات الاكسيس عمليات التنسيق المعقدة التي تكون عادة من خواص محررات النصوص مثل برنامج الوورد وغيره من محررات النصوص المختلفه لذا لم يتم ادراج بعض الخواص في برنامج الاكسيس ومنها تنسيقات الضبظ بجميع انواعها سواء ضبط فقرات او ضبط المستند كامل وعلى هذا الاساس نحتاج الى الاستعانه بما يدعى ادوات مساندة لهذه العملية مثل المكتبات المبرمجة الجاهزه من نوع DLL او OCX حيث يوجد بها الكود المصدري المطلوب بدلا من ان نقوم بكتابتة كاملا في البرنامج وتوضع عادة هذه الادوات في مجلد النظام الخاص بالويندوز لهذا يتم استدعاؤها فقط عن طريق الوحدة النمطية وهذه المكتبات تحتاج الى تسجيل لكي يتم الربط بينها وبين برنامجنا اذا :
سأتابع معكم ما توصلت اليه من حل ولو جزئي في هذا الموضوع فنقول بسم الله وعلى بركة الله نبدأ
الادوات :
نحتاج الى اداة OCX تدعى RTF2.OCX وبها من الامكانات الشيء الكثير ( سيتم التطرق لها فيما بعد )
طريقة تركيب الاداه :
بعد تحميل الاداه تنسخ الى مجلد النظام system32 الخاص بالويندوز لتصبح بهذا الشكل C:\WINDOWS\system32\RTF2.OCX
طريقة تسجيل الاداة :
لدينا طريقتين اما عن طريق الويندوز او عن طريق الاكسيس ( نختار واحدة منها )
1. التسجيل عن طريق الويندوز
بعد نسخ الاداه الى مجلد النظام نذهب الى ابدأ من الويندوز ونختار تشغيل ونضع هذا الامر كما هو ثم نضغط موافق
C:\WINDOWS\system32\regsvr32 C:\WINDOWS\system32\RTF2.OCXوستظهر لنا رسالة بنجاح عملية التسجيل نضغط على موافق
2. التسجيل عن طريق الاكسيس
نفتح قاعدة البيانات الخاصة بنا ثم ننتقل الى اشرطة قوائم الاكسيس ونختار منها ادوات ثم نختار عناصر تحكم ActiveX
ستظهر لنا نافذة عناصر التحكم جميعها والتي تم تحميلها في مجلد النظام نختار من القائمة الاداة RTF2 Control ثم نضغط تسجيل ستظهر ناقذة تبحث فيها موقع الاداة وبالطبع مكانها في مجلد النظام system32 بإسم RTF2.OCX نقوم بإختيارها ثم موافق وسنعود لنافذة عناصر التحكم اكتيف اكس في هذه اللحظة يكون تم تسجيل الاداة لهذا نقوم بإغلاق النافذه .
الان الاداة اصبحت جاهزه للاستخدام سواء في النموذج او التقرير
شرح مبسط لهذه الاداة RTF2.OCX
فائدة هذه الاداة ان بها امكانات كثيره منها النسخ واللصق والتحكم في الخط مثل نوعه ولونه وجميع انواع الضبط ومنها طبعا الضبط الكلي . كما هذه الاداة تدعم اللغة العربية بعكس باقي الادوات التي تظهر فيها حروف اللغة العربية مبهمه ومشوهه .
طريقة استخدام الاداة في النموذج او التقرير
1. نفتح الجدول المطلوب ونضع به حقل اضافي اسمه RTFField ونوعه نصي او مذكره .
ملاحظة : اذا كانت العبارات التي ستضعها في مربع النص قليلة يعني اقل من 255 حرف فلا يوجد مشكلة اما اذا زادت عن ذلك فيجب ان تستبدله بحقل مذكره
2. نفتح النموذج المطلوب في وضع التصميم والمراد وضع حقل نصي او مذكره فيه لكي نعمل لها ضبط كلي او اي خيارات مطلوبه بواسطة الاداة ويجب ان يكون هذا الحقل في رأس النموذج اما في التقرير فيكون في قسم تفصيل كما سيرد معنا لاحقا .
3. ننتقل الى اشرطة قوائم الاكسيس ونختار ادراج .
4. ثم نختار عنصر تحكم ActiveX ونختار منه RTF2 Control ثم نضغط موافق
5. نقوم بضبط حجم الكنترول حسب المقاسات المطلوبه والمراد ان تظهر فيها العبارات التي نريد ادخالها .
==== خارج الموضوع والشرح : خاص لأبو ساره :
بما انك استخدمت حقل مذكره غير منضم وقمت بدمج جميع الحقول فيه لكي تحصل على قرار اجازه كامل من جميع الحقول وكان من الافضل وضع هذه العبارات في حقل مبني على الجدول في الاستعلام مباشرة لهذا أضطررت للتحايل على الموضوع بأن اقوم بإخفاء هذا الحقل مؤقتا اذا لم يكن هناك بيانات معروضه والاستعانة بالحقل المنظم RTFField الاساسي وتم عمل اقتران بين الحقلين وقد تم تسمية الحقل الخاص بك txtALL .
6. طبعا سيكون ادخال العبارات في الحقل المنضم RTFField وستظهر نتائجه في عنصر التحكم RTF2 Control الذي نستطيع منه عمل التنسيقات المطلوبه . وذلك من خلال تضليل كامل النص الذي كتبناه ثم نسخه ولصقه في الكنترول RTF2 Control ثم نقوم بضليل كامل النص في الكنترول ثم الضغط على زر الاماوس الايمن لتظهر لنا قائمه بها كل ما نحتاجه للتنسيق .
7. يوجد بداخل المثال المرفق وحدة نمطية تدعى modRTF2ToolBar وفائدة هذه الوحدة النمطية هي عمل الارتباط مع الاداة RTF2 Control واظهار جميع الاوامر الخاصة بها والخاصة بالتنسيق . ( قم بنسخها الى قاعدة بياناتك )
8. ننتقل الى اكواد النموذج حيث نضع هذه الاحداث في مواقعها
هذا الكود يوضع في حدث عند التحميل وفائدته اظهار قوائم التنسيق عند الضغط يالماوس الايمن على عنصر التحكم RTF2 Control الذي به العبارات المراد تنسيقها .
Private Sub Form_Load() On Error Resume Next DoCmd.ShowToolbar "RTF2", acToolbarYes End Subهذا الكود يوضع في حدث عند الغاء التحميل وهو اخفاء قوائم عنصر التحكم RTF2 Control
Private Sub Form_Unload(Cancel As Integer) On Error Resume Next DoCmd.ShowToolbar "RTF2", acToolbarNo End Sub9. نحفظ ما قمنا بعمله في النموذج ثم نقوم بالتجربه كما تم شرحه سابقا .
ملاحظة 1 : في هذا المثال الخاص لآبو ساره ستظهر جميع الحقول في مربع النص txtALL وهو حالة خاصة .
لذا والكلام موجه لأبو ساره قمنا بتعديل المثال ليتناسب مع متطلباتك وذلك بوضع مربعي تحرير وسرد لكي تقوم بإختيار رقم الموظف ومن ثم تختار نوع اجازته فمربعي التحرير والسرد يعملون كفلتر للبيانات ومن ثم اظهار النتائج في النموذج وفي الحقل txtALL .
مربع النص txtALL مخفي في حالة عدم وجود بيانات في الحقول ويظهر مع تحديث مربع التحرير والسرد الخاص بنوع الاجازه للموظف .
من هذا المنطلق اضفت لك قائمة منبثقه بها امر نسخ بعد ان تقوم بتحديد كامل النص في مربع النص txtALL السفلي الخاص بك تقوم بنسخه ثم تنتقل الى عنصر التحكم العلوي RTF2 Control وتقوم بتبديل الكتابة الى العربية من خلال الضغط على مفتاحي Shift + Ctrl اليمنى من لوحة المفاتيح ثم تقوم بلصق ما نسخته من مربع النص السفلي الخاص بك txtALL في عنصر التحكم RTF2 Control من خلال الضغط بالماوس الايمن عليه وستظهر لك القائمة اختر منها لصق Paste ثم قم بعمل تضليل كامل للنص في RTF2 Control واضغط بالماوس الايمن لتظهر لك القائمة وقم بعملية التنسيق المناسبة من خلال الاوامر الموجوده بها . كأن تختار نوع الخط وحجمه ونوعه ولونه ثم اختر من اسفل القائمة ادوات الضبط وتباعد الاسطر .
ملاحظة 2 : بما ان مربع النص الخاص بك جاهز اي مكتوب له كل شيء فحديثي الى بقية الاعضاء انهم عندما يتعاملون مع هذا العنصر في برامجهم ان لا ينسوا عند الكتابة في حقل المذكره ان يقوموا بنسخ الكلام المكتوب ثم لصقه في عنصر التحكم مع وضع نقطه في نهاية الفقره لكي يتم الضبط الكلي للنص لأنه بعدم وجود نقطه في نهاية كل فقره فسيتعرف عليها عنصر التحكم على انها فقره واحده ويقوم بالضبط الكلي لكامل مربع النص .
10 . ننتقل الان الى التقرير وهو محور حديثنا وهو الاساس الذي نريده ان يكون به الضبط الكلي اما النموذج فهو للمعاينة فقط ولا يهمنا ولكن المهم هو التقرير
لهذا نقوم بإدراج عنصر التحكم RTF2 Control وكذلك الحقل RTFField في قسم تفصيل ( وليس كالنموذج في رأس النموذج ) ثم نضع الاكواد التالية في محرر الفيجول بيسك حسب الاحداث التالية
هذا الكود يوضع في حدث قسم التفصيل والغرض منه محاذاة عنصر التحكم في الارتفاع
Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) Dim Height As Integer Height = Me.RTFcontrol.Object.RTFheight If Height > 0 Then If Height < 32000 Then Me.RTFcontrol.Height = Height End If End If Me.Section(acDetail).Height = Me.RTFcontrol.Height + Me.RTFcontrol.Top If Me.RTFcontrol.Object.RTFheight > 0 Then If Me.RTFcontrol.Object.RTFheight < 32000 Then Me.RTFcontrol.Height = Me.RTFcontrol.Object.RTFheight End If End If End Sub [code] هذا الكود خاص لآستعادة وضع التقرير عند الاغلاق [code] Private Sub Report_Close() DoCmd.Restore End Subوبهذا نكون قد انهينا الشرح لهذا الموضوع
خطوات سريعة للمحترفين
1. قم بنسخ الاداة RTF2.OCX الى مجلد النظام ثم قم بتسجيلها .
2. اضف حقلا جديدا بإسم RTFField في جدولك نوعه مذكره او استخدم حقل المذكره الخاص بك .
3. اضف عنصر تحكم اكتيف اكس RTFcontrol الى النموذج او التقرير واجعل مصدر عنصر التحكم هو الحقل RTFField او حقل المذكره الخاصة بك .
4. ابدأ الكتابة في حقل المذكره RTFField بشكل عادي ثم حدد العبارات كاملة وقم بنسخها ولصقها في عنصر تحكم الاكتيف اكس RTFcontrol مع وضع نقطه في نهاية كل فقره .
5. حدد كامل النص ( تضايل كامل ) الذي نسخته في عنصر التحكم RTFcontrol ثم حول الكتابة الى العربية من لوحة المفاتيح او من شريط المهام الخاص بالويندوز .
6. اضغط بالماوس الايمن على النص في عنصر التحكم هذا وقم بتنسيق النص من خلال القائمة او الادوات التي ستظهر لك .
7. تستطيع اضافة اكثر من عنصر تحكم واكثر من مذكره في نموذجك او تقريرك مع تغيير اسماء الحقول المنشأه في الجدول واقترانها مع مصادر عناصر التحكم اكنيف اكس المنشأه في النموذج او التقرير .
ملاحظه : في هذا المثال قمت بإخفاء مربع النص RTFField في النموذج والتقرير وسيظهر لك في وضع التصميم
واخيرا هذا هو المثال بعد عمل التعديلات اللازمه ولو انني غير راضية عنه حتى الان ولكن هي خطوه بسيطه للامام لهذا اطمح في افضل من هذا بكثير ففي رأسي بعض الافكار تحتاج الى تفكير عميق ودراسة جيده وعند اكتمال الفكره وتجربتها عمليا سيتم طرحها للنقاش ان شاء الله تعالى .
هذه هى إجابة أستاذتنا الفاضلة زهرة بارك الله فيها ....
أستاذتنا الكريمة زهرة ... هل يوجد جديد فى هذا الموضوع.




