يتساءل كثيرون عند استدعاء فورمة من أخرى هل لابد من كتابة المسار الكامل لها ولكثرة هذه الاستفسارات ولما واجهته أنا شخصياً في برنامجي أحضرت لكم اليوم كود يقوم باستدعاء مسار الفورم المفتوحة وللأمانة هو منقول من مشاركة سابقة للأخ هاني سند تجدها هنا http://www.araboug.org/ib/index.php?showto...;رم --------------------------------------------------------------- ولكني واجهت مشاكل في التعامل معها فقمت ببعض التعديلات مع اضافة الشرح لكل جزء في الكود واقترحت طريقة لاستخدامه من خلال global variable يوضع هذا الكود على الشاشة الرئيسية للبرنامج على تريجر من النوع when new form instance ------------------------------------------
:global.path:=0;
DECLARE
ar varchar2(100);
arm varchar2(100);
FORM_PATH VARCHAR2(250);
a number;
b number;
c number;
dir_path varchar2 (150);
BEGIN
-------------get the name of the fmx file without .fmx ---------
ar:=get_application_property(current_form_name);
---------- get the whole path with formname.fmx ----------
arm:=get_form_property(ar,file_name);
-------- get the length of the whole path ------------
a:=length(arm);
b :=length(ar)+4;
c:=a-b;
---- get the actual path------------
form_path:=substr(arm,1,c);
:global.path:=form_path;
exception when others then null;
END;
------------------------------------------- يقوم هذا الكود بوضع مسار الفورم بناءاً على الفورم المفتوح ويضعه في global variable ويمكن بدلاً من كتابة المسار الكامل للفورم استخدام global variable لاستدعاء الفور مثل الكود التالي ( يوضع على when new button pressed ) ------------
call_form(''||:global.path||'\'||'myform.fmx');
--------------- أرجو إن كان هناك ملاحظات أود أن أعرفها وأي استفسار ارحب به