حمل هذا الملف لمزيد من الأيضاح :-
أضــــــــــــــغــــــــــــــط هــــــــــــــــــــــنا
و بالتوفيق
HOST
GET_APPLICATION_PROPERTY
Key-CLRBLK , Key-CLRFRM , Key-CLRREC , Key-COMMIT , Key-CQUERY , Key-CREREC , Key-DELREC , Key-DOWN , Key-DUP-ITEM , Key-DUPREC , Key-EDIT , Key-ENTER , Key-ENTQRY , Key-EXEQRY , Key-EXIT , Key-HELP , Key-LISTVAL , Key-UPDREC , Key-NXTBLK , Key-NEXT-ITEM , Key-NXTKEY , Key-NXTREC , Key-NXTSET , Key-PRVBLK , Key-PREV-ITEM , Key-PRVREC , Key-PRINT , Key-SCRDOWN , Key-SCRUP , Key-UP
راجع قائمة الـ Built-ins المصحوبة مع الـ Key Triggers من هذا الرابط:-DO_KEY
SHOW_ALERT
SET_ALERT_PROPERTY
Changes the label on one of the buttons in an alert.
تغير اسم زر من أزرار الـ Alert
=======-------------===========---------------========
PROCEDURE SET_ALERT_BUTTON_PROPERTY
(alert_id ALERT,
button NUMBER,
property VARCHAR2,
value VARCHAR2);
PROCEDURE SET_ALERT_BUTTON_PROPERTY
(alert_nameVARCHAR2,
button NUMBER,
property VARCHAR2,
value VARCHAR2);
Built-in Type unrestricted procedure
Enter Query Mode yes
بالنسبة للصيغة بيتم كتابة جراء الـ SET_ALERT_BUTTON_PROPERTY كالتالى :-
بنكتب SET_ALERT_BUTTON_PROPERTY ثم نفتح قوس ثم نكتب أسم الـ Alert أو الـ ID الخاص بالـ Alert ثم فاصلة ثم رقم الزر ( و هو له عبارة ثابته سنقولها فى الـ Parameters ) ثم فاصلة ثم العامل ( و هو ايضاً عبارة ثابته ) ثم فاصلة ثم القيمة ( و هى ايضاً عبارة ثابته ) .
و هو أجراء غير مقيد و يمكن تنفيذه فى الـ Enter Query Mode
=======-------------===========---------------========
If the label specified is NULL, the button's label reverts to the label specified at design time.
بيقولك فى النهاية ان اذا ام تكتب اى شىء فى العامل الرابع فسوف يتم أسترجاع القيمة التى تم وضعها فى وقت التصميم
SET_ALERT_BUTTON_PROPERTY
Returns a BOOLEAN value that indicates whether the object ID is available.
دالة الـ ID_NULL تقوم بأرجاع قيمة من نوع Boolean أى يا True يا False كدليل على وجود أو عدم وجود الـ ID الخاص بالكائن.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
FUNCTION ID_NULL
(Alert ALERT);
FUNCTION ID_NULL
(Block BLOCK);
FUNCTION ID_NULL
(Canvas CANVAS);
FUNCTION ID_NULL
(Editor EDITOR);
FUNCTION ID_NULL
(FormModule FORMMODULE);
FUNCTION ID_NULL
(GroupColumn GROUPCOLUMN);
FUNCTION ID_NULL
(Item ITEM);
FUNCTION ID_NULL
(LOV LOV);
FUNCTION ID_NULL
(MenuItem MENUITEM);
FUNCTION ID_NULL
(ParamList PARAMLIST);
FUNCTION ID_NULL
(RecordGroup RECORDGROUP);
FUNCTION ID_NULL
(Relation RELATION);
FUNCTION ID_NULL
(Report_Object REPORT_OBJECT);
FUNCTION ID_NULL
(TabPage TABPAGE);
FUNCTION ID_NULL
(Timer TIMER);
FUNCTION ID_NULL
(Viewport VIEWPORT);
FUNCTION ID_NULL
(VisualAttribute VISUALATTRIBUTE);
FUNCTION ID_NULL
(Window WINDOW);
بالنسبة للصيغة فبتكون بكتابة ID_NULL ثم فتح قوس ثم كتابة أسم الكائن ثم كتابة الـ Data type الخاصه به ثم غلق القوس .
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Built-in Type unrestricted function
Returns BOOLEAN
Enter Query Mode yes
هى دالة غير مقيدة و نوع الـ Data type العائدة هى Boolean و يمكن تنفيذها أثناء الـ Enter Query Mode
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
object_id You can call this function to test results of the following object ID types:
Use ID_NULL when you want to check for the existence of an object created dynamically at runtime. For example, if a specific record group already exists, you will receive an error message if you try to create that record group. To perform this check, follow this general process:
If you are going to test for an object’s existence at various times (that is, more than once during a run), then you need to reissue the appropriate FIND_ every time -- once preceding each use of ID_NULL.
أستخدم الـ ID_NULL لما تبقى عاوز تتاكد من وجود كائن معين أثناء تشغيل الفورمه ، فمثلاً أذا حاولنا أنشاء record group - دون التأكد من وجوده من خلال الـ ID_NULL - و هو بالفعل تم أنشاءه مسبقاً ، فسوف يظهر رسالة خطاء.
و لكى تقوم بأستخدام الـ ID_NULL فأعمل التالى :-
أستخدم الـ FIND_ built-in الملائم للحصول على الـ ID للكائن المراد.
و هذه هى جميع الـ FIND_ built-ins :-
FIND_ALERT,FIND_BLOCK,FIND_CANVAS,FIND_COLUMN,FIND_EDITOR,FIND_FORM,FIND_GROUP,FIND_ITEM,FIND_LOV,FIND_MENU_ITEM,FIND_RELATION,FIND_REPORT_OBJECT,FIND_TAB_PAGE,FIND_TIMER,FIND_VIEW,FIND_WINDOW
ID_NULL
Searches the list of valid alerts in Oracle Forms. When the given alert is located, the subprogram returns an alert ID. You must return the ID to an appropriately typed variable. Define the variable with a type of Alert.
بالنسبة للـ FIND_ALERT Built-in فهو يبحث عن قائمة الـ Alerts سارية المفعول و عندما يتم تحديد الـ Alert يقوم بأرجاع الـ ID الخاص بهذا الـ Alert ، و لكن يجب ان ترجع هذا الـ ID الى المتغير ذات الـ Data type الخاص بالـ Alert .
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
FUNCTION FIND_ALERT
(alert_name VARCHAR2);
Built-in Type : unrestricted function
Returns : Alert
Enter Query Mode : yes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
/*
** Built-in: FIND_ALERT
** Example: Show a user-warning alert. If the user presses
** the OK button, then make REALLY sure they want
** to continue with another alert.
*/
DECLARE
al_id ALERT;
al_button NUMBER;
BEGIN
al_id := Find_alert('User_Warning');
IF Id_null(al_id) THEN
Message('User_Warning alert does not exist');
RAISE form_trigger_failure;
ELSE
/*
** Show the warning alert
*/
al_button := Show_alert(al_id);
/*
** If user pressed OK (button 1) then bring up another
** alert to confirm -- button mappings are specified
** in the alert design
*/
IF al_button = alert_button1 THEN
al_id := Find_alert('Are_You_Sure');
IF Id_null(al_id) THEN
Message('The alert named: Are you sure? does not exist');
RAISE form_trigger_failure;
ELSE
al_button := Show_alert(al_id);
IF al_button = alert_button2 THEN
erase_all_employee_records;
END IF;
END IF;
END IF;
END IF;
END;
FIND_ALERT
Some built-in subprograms accept object IDs as actual parameters. An object ID is an internal, opaque handle that is assigned to each object when created in Oracle Forms. Object IDs are internally managed and cannot be externally viewed by the user. The only method you can use to retrieve the ID is to define a local or global variable and assign the return value of the object to the variable.
You make the assignment by way of the FIND_ built-in functions. Once you have used FIND_ within a PL/SQL block, you can use the variable as an object ID while still in that block. The valid PL/SQL type for each object is included in the syntax descriptions for each parameter. The description for the FIND_BLOCK built-in provides an example of how to obtain an object ID.
========================
بعض الـ Built-ins يأخذون معرف هوية الكائن او ما يعرف بـ Object ID كـ Parameter لهم ، و بما أن الـ Object ID ينشاء داخلياً من خلال الـ Forms Builder عند أنشاء اى كائن فانه من المستحيل ان يتعامل المبرمج مع الـ Object ID مباشرتاً ، و لكن بالامكان التعامل معه فى حال تعريف متغير على مستوى النماذج او على مستوى نموذج واحد ( Global Variable , Local Variable ) و وضع قيمة العائدة من الكائن الى هذا المتغير ؛ و وضع هذه القيمة بيتم من خلال الـ Built-in الذى يدعى _Find
فمثلاً فى هذا المثال سنأتى بقيمة معرفة الهوية الخاص بالـ Block ، لكى نتأكد من أنه متواجد بالفعل ام لا .
FIND_BLOCK Example
/*
** Built-in: FIND_BLOCK
** Example: Return true if a certain blockname exists
*/
FUNCTION Does_Block_Exist( bk_name VARCHAR2 )
RETURN BOOLEAN IS
bk_id Block;
BEGIN
/*
** Try to locate the block by name
*/
bk_id := Find_Block( bk_name );
/*
** Return the boolean result of whether we found it.
** Finding the block means that its bk_id will NOT be NULL
*/
RETURN (NOT Id_Null(bk_id));
END;
هنا أحنا عرفنا المتغير bk_id بأنه Block ثم أوجدنا معرفة هوية الخاص بالبلوك التى أنشأنها مسبقاً فى الـ Form Builder - و التى تم تعريفها هنا فى هذه الدالة كعامل الـ bk_name - من خلال الـ Find_Block كما هو موضح فى المثال السابق .
و سوف يتم شرح الـ FIND_BLOCK Built-in بالتفصيل فالدروس الاحقة ...... المهم هنا احنا عرفنا اذاى نحضر الـ ID الخاص بأى كائن .
Built-in Object IDs
The named parameter should be followed with the equal/greater than signs (=>), which point to the actual parameter that follows the named parameter. For example, if you intend to change the milliseconds in the SET_TIMER Built-in you can directly use that parameter with the following syntax:
Also, you can continue to call the built-in with the following syntax:
SET_TIMER('my_timer', 12000, NO_REPEAT);
الفكرة هنا انه بيقولك انه مش شرط تكتب الـ Parameters فى اماكنها المحدده طالما انك بتستخدم اداة الأشارة هذه <= للدلاله على Parameter فيما بين الأقواس .
كما هو موضوح فى المثال السابق .
Built-in Named Parameters
تعلم الأوراكل بالعربى © 2008 | Blog design by Randomness