شباب ممكن تعطوني فكرة عن ال Package Spec وال Package Body ?
وكيف ممكن أعمل متغيرات عامة يمكن التعامل معها من خلال كل ال Forms
في المشروع ?:o
شباب ممكن تعطوني فكرة عن ال Package Spec وال Package Body ?
وكيف ممكن أعمل متغيرات عامة يمكن التعامل معها من خلال كل ال Forms
في المشروع ?:o
بسم الله الرحمن الرحيم :
أخي الكريم ان ال package يتكون من قسمين هما :
1-package spec
2-package body
package spec:
في هذا القسم يتم وضع المتحولات العامة التي تستطيع طلبها من خارج ال package و تستططيع ان تسند له قيمة من الخارج و يمكن استخدام هذه المتحولات المعرفة في ال spec داخل ال body وهذا النوع من المتحولات يعرف باسم public variable .
وكذلك الأمر بالنسبة للprocedure و الfunction التي تعرف في ال spec حيث يذكر هناك ال header الخاص بها فقط و بذلك نستطيع استدعائها من خارج ال package لأنها أصبحت public subprogram.
package body :
في هذا القسم يتم تعريف المتحولات الخاصة و الاجرائيات الخاصة (private subprogram) و التي تستخدم داخل ال body فقط اي لا يمكن الاشارة لها
من خارج الbody ويتم هنا وضع ال body الخاص بالاجرائيات التي تم تعريفها في ال package spec .
يجب ان يتم بناء ال spec قبل ال body لأنهم كائنين منفصلين.
ملاحظة : يمكن أن يوجد ال spec دون ال body ولكن لايمكن العكس .
أخي الكريم في حالتك التي تريد أنت (أي المتحولات العامة)أنت بحاجة الى
package spec فقط لأنك سوف تستخدم متحولات عامة فقط .
لذلك قم ببناء ال spec وضع فيه المتحولات التي تريد .
ثم قم باضافته للform التي تريد و بعد ذلك تستطيع ان تسند قيم للمتحولات العامة التي بداخل ال spec و تأخذ هذه القيم من اي مكان من داخل الform
ملاحظة :
اذا كان لديك اكثر من forms و تريد عمل public بينهم بنفس الطريقة قم باضافة ال package spec لكل فورم ويجب هنا ان تستدعي الفورم من الأخرى باستخدام open_form built-in or call_form built-in
وتمرر له البارامتر التالي share-data-library
و لمزيد من المعلومات عن بارمتراات ال built-in السابقة راجع الhelp .
بسم الله الرحمن الرحيم
أشكرك يا أخي العزيز gmaasosak على هذه المعلومات الممتازه و الوافيه وجعلها الله في ميزان حسناتك يوم القيامة
السلام عليكم
المشاركة في بعض النقاط
بالنسبة حول الباكج التي يقوم بكتابتها المستخدم
فإنه لا يمكنك انشاء الـ package body
بدون الـ package specification
ويجب انشاء الـ specification اولا
إذا كنت تريد حذف الـ body اكتب الامر
drop package body package_name
حيث package_name اسم الباكيج التي قمت بانشاءها سابقا
والامر التالي يقوم بحذف الـ specification + body
drop package body package_name
يمكنك تعريف متحولات عامة بالنسبة للباكج فقط، داخل package body حيث لا يمكن استخدامها إلا من قبل المتحولات والـ procedures and functions الموجودة داخل الـ package
هذا الموضوع مغلق.