قيامة المؤسس عثمان

أعلان

test

??? ???????

Post Top Ad

Your Ad Spot

الاثنين، 4 نوفمبر 2019

تصميم شريط القوائم في الاكسيس Ribbon


يشتكى الكثير من صعوبه عمل القوائم الخاصه به فى الاكسس 2007 و 2010 و الاصدارات الاحدث نظرا لانهم اعتمدوا على شئ جديد مختلف عما سبق يعتمد عمل القوائم فى تلك الاصدارات على XML





و لتنفيذ فكره تصميم شريط القوائم في الاكسيس نتبع الخطوات التاليه





الاول يجب عمل جدول و نسميه USysRibbons يراعى اسم الجدول بنفس الشكل ونفس الحروف و يجب ان يكون بهذا الاسم لانه من جداول النظام و ينظر اليه البرنامج عند البدايه و قبل ان نحفظ هذا الجدول يجب علينا اظهار جداول النظام نفسها بالضغط بزر الماوس الايمن علي All Tables ثم اختيار Navigation Options













كما بالصوره

















AutonumberID
TextRibbonName
MemoRibbonXml




و تكون به تلك الحقول بنفس الاسماء





الاول هو مجرد ترقيم تلقائ لعدد القوائم التى سوف تعملها





الثانى هو اسم القائمه





الثالث و هو من نوع ميمو لتخزين كود xml
بداخله





عملنا الجدول خلاص





نبتدى نكتب كود xml
فى اى مكان حتى لو النوت باد





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





كود xml
مشابه لاكواد html





أول سطر يجب كتابته هو





<br/><customui xmlns="http://schemas.microsoft.com/office/2009/07/customui"><br/></customui>




و يجب طبعا غلقه





<br/>




و بعده نكتب داخل نفس الكود و تحت السطر الاول هذا الكود





<br/><ribbon startfromscratch="true"><br/></ribbon><br/>




و هذا فائدته ان نخفى جميع القوائم الموجوده مسبقا و نعرض القوائم
الخاصه بنا





اما اذا كان الاختيار false فسوف
يعرض القوائم الموجوده مسبقا بالاضافه للقوائم المعموله منك





بعد كده نبتدى عمل التاب tabs





و بداخلها اكثر من تاب





<br/><tabs><br/><tab id="Tab1" label=" Tab_1"><br/></tab><br/></tabs>




و نلاحظ وجود id
& label داخل التاب





id
و يجب ان يكون وحيدا unique
و لا يتكرر





label
و نضع فيها الاسم المراد ظهوره على التاب





ملاحطة التاب المقصود به اسم القائمة مثل Home –
insert-Create





طيب نجرب كده و نشوف





و علشان النتيجه تظهر





هانعمل حاجه صغيره





سوف نجعل القائمه الخاصه بنا تظهر فقط
عند فتح النموذج الذى نكتب فيه الكود





الاول نكتب الكود و نضعه فى الحقل ribbonxml و فى اسم الريبون نضع اى
اسم معبر لنا





بعد ذلك نغلق القاعدة ثم نعيد فتحها





و نفتح النموذج فى وضع التصميم





و عند خصائص النموذج فى تاب other او اخرى





سنجد خانه بها ribbon
name و نختار منها اسم
الريبون الذى صنعناه





طيب هذا التاب هو الذى سنضع بداخله الـ
buttons





طيب ما احنا ممكن نريد ان نقسم الازرار
الى مجموعات





بمعنى اخر مجموعه خاصه بالنماذج و
مجموعه خاصه بالتقارير و هكذا





و هذا يأتى عن طريق تقسيم التاب الى
مجموعات groups





و لكى نفعل ذلك نضع الكود التالى بعد سطر <tab>





<br/><group id="group1" label="Group_1"><br/></group><br/>




و كما سبق id
يجب ان يكون متفرد (اى لا نسمى جروب اخر بنفس الاسم)





label
هو الكلام الذى سيظهر للتعريف بالجروب





و طبعا نكرر الكود لعمل اكثر من Group





ده الشكل المبدئي للكود





<br/><customui xmlns="http://schemas.microsoft.com/office/2009/07/customui"><br/><ribbon startfromscratch="true"> <br/><tabs><br/><tab id="Tab1" label=" Tab_1"><br/><group id="group1" label="Group_1"><br/></group><br/></tab><br/><tab id="Tab2" label="Tab_2"><br/><group id="group2" label="Group_2"><br/></group><br/></tab><br/></tabs><br/></ribbon><br/></customui><br/>




 ملاحظ أن:





  1. اي ID بيكون unique
  2. لما بتفتح Tag  لازم تقفله




كده تقريبا ناقصنا ايه بقى





ايوه صح الازرار التى سوف نستعملها لكى
نتحكم فى برنامجنا





الكود الخاص بأضافه الـ button سيكون كالتالى





و نضعه بعد تاج الـ group





<br/>




كما هى العاده





id
سيكون اسم لا يتكرر





label
هو الكلام الذى سيكون على الزر





و لكن تلاحظون هنا شئ مختلف اننا لم
نقفل تاج الbutton
بالشكل التالى </button>





و انما وضعنا / فى نهايه التاج





هنا صنعنا button





و طبعا ممكن نكرره مثل ما نريد





نستكمل موضوع الـbutton





لكى يعطينا الbutton
تأثير هناط طريقتان لفعل ذلك





الاولى  عن طريق ماكرو Macro





او عن طريق كتابة كود VBA داخل Module





الطريقه الاولى عن طريق الماكرو





بكل بساطه نعمل ماكرو و نسميه myBut1 يفعل اى شئ و ليكن message box تعرض رساله hello this is button 1 click





خلصنا الماكرو و حفظناه





نذهب بعد ذلك الى كود الـ xml الخاص بنا





و الى وسم الـ button
فى اخره نكتب





onAction="اسم
الماكرو"





ليصبح كالتالى





<br/>




هناك شئ زياده فى الكود و هو "size = "large و هذا لاختيار حجم الbutton و جعلناه هنا large





طيب لو نريد الطريقه الاخره و هى عن
طريق كتابة الكود





يبقى الاول هانعمل new module و نسميه myrib مثلا





و بداخله نكتب الداله التى سوف تنفذ
عندما نضغط على الـ button





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





ستكون الداله كالتالى





public fuction pressMe()
docmd.openform "myform1"
end function




بعد ذلك نذهب الى تاج الbutton (و ليكن button اخر غير الموجود سابقا)





و نكتب فى اخره





<br/><button id="but2" label="click me(function)" onaction="=pressMe()"><br/></button>




نطبق بقى و نشوف بس طبعا لا تنسى ان تعمل فورم باسم myform1 لكى يتم فتحه عندما نضغط على الـbutton





, و بكده يصبح لدينا الكود التالى من اول ما بدأنا





<br/><customui xmlns="http://schemas.microsoft.com/office/2009/07/customui"><br/><ribbon startfromscratch="true"><br/><tabs><br/><tab id="tab1" label="tab_1"><br/><group id="group1" label=" group_1"><br/><button id="but1" label="click me(macro)" onaction="myBut1" size="large"><br/></button><button id="but2" label="click me(function)" onaction="=pressMe()"><br/></button></group><br/><group id="group2" label="group_2"><br/></group><br/></tab><br/></tabs><br/></ribbon><br/></customui><br/>




لوضع الصور على الزرار :





فى البدايه نصنع مجلد جديد و نسميه images و نضعه
مع بداخل المجلد المحتوى لقاعدة البيانات الخاصه بنا





و نضع به الصور الخاصه بنا





بعد ذلك نذهب لكود الريبون و فى اول سطر خاااالص , فاكرينه نضيف
المقطع التالى "loadImage="OnLoadImage





و هو بكل بساطه يخبر البرنامج ان الصور لكى تظهر يجب ان تنفذ الداله OnLoadImage





يبقى شكل السطر الاول





<br/><customui <customui="" xmlns="http://schemas.microsoft.com/office/2009/07/customui" loadimage="OnLoadImage">  <br/></customui>




يبقى كده ناقص ايه





تمام كد الداله OnLoadImage





و طبعا سوف نكتبها فى الموديول الذى سبق و صنعناه





و تلك الداله تكون كالتالى





(Public Sub OnLoadImage(strImage As String, ByRef Image
Dim strPath As String
' construct a path
strPath = CurrentProject.Path & "\images\" & strImage
' make sure the file exists
(Debug.Assert (Len(strPath) > 0
' return the image
(Set Image = LoadPicture(strPath
End Sub




و هى بكل بساطه تخبر البرنامج ان الصوره المطلوبه موجوده مع المشروع
فى مجلد اسمه images





كده يبقى ناقص اخر شئ





و هو اختيار الصوره ووضعها





يبقى نروح للسطر الخاص بالـ button





و نضيف التالى ليصبح السطر كاملا كالتالى





<br/><button id="but2" label="click 22" image="bell.bmp" onaction="=="><br/></button>




نجرب كده و نشوف النتيجه





الف مبروك الريبون الخاص بك





و طبعا مرفق المثال التطبيقى للتحميل
















ليست هناك تعليقات:

إرسال تعليق

Post Top Ad

Your Ad Spot

???????