استمرار البرنامج التعليمي.
يصف هذا الجزء عمليات إنشاء تطبيق Oracle APEX وإنشاء صفحات في التطبيق.
الجزء السابق: البرنامج التعليمي Oracle Application Express. نظرة عامة IDE
جدول المحتويات
إنشاء التطبيق
الصفحات الافتراضية
إطلاق التطبيق
إنشاء الصفحة
مكونات الصفحة الرئيسية
العناصر البصرية
العناصر غير المرئية
الخصائص الأساسية للعناصر
الخصائص العامة
خصائص الصفحة
إنشاء التطبيق
لإنشاء تطبيق ، يلزمك الانتقال إلى App Builder والنقر فوق الزر "إنشاء".
الخلفية التاريخية على أنواع التطبيقاتفي الإصدارات السابقة من القمة ، في الخطوة الأولى ، اقترح المعالج اختيار نوع التطبيق (في الإصدارات 4.x ، إذا كانت ذاكرتي تخدمني بشكل صحيح ، فهذه هي أنواع "تطبيق قاعدة البيانات" و "تطبيق ورقة الويب" ، في الإصدارات 5.x - "سطح المكتب" ، "الجوال" "،" Websheet "و" Packaged Application ") ، في الإصدار الحالي ، يتم دفع جميع الأنواع الأخرى قليلاً إلى الجانب (على الرغم من أن" Websheet "باقية) ، وتحتاج فقط إلى تحديد" تطبيق جديد ". و "حزم التطبيقات" - هذه هي نفس التطبيقات التجريبية من معرض التطبيقات .
بعد ذلك ، يبدأ معالج إنشاء التطبيق. في الخطوة الأولى ، تحتاج إلى تحديد "تطبيق جديد" ، في الخطوة الثانية - ما عليك سوى ملء الحقول "الاسم" ومعرف التطبيق (رقم التطبيق). الاسم مطلوب ببساطة لأنه حقل مطلوب ، Application ID
- لأنه بعد ذلك لن يكون من الممكن تغييره. بتعبير أدق ، من الممكن (من خلال التصدير / الاستيراد) ، ولكنه طويل وغير مريح ، فمن الأفضل أن تقوم على الفور بتعيين الرقم المرغوب إذا لم تكن القمة التي تم إنشاؤها تلقائيًا مناسبة لك. يجب أن يكون الرقم فريدًا. يستخدم هذا الرقم كجزء من عنوان التطبيق. لنلقِ نظرة على عنوان URL النموذجي لـ apex:
https://apex.oracle.com/pls/apex/f?p=123456:1:14675052744498:::::
هنا 123456
هو معرف التطبيق.
بالنسبة لبقية الحقول في المعالج ، لا يمكنك الانتباه حتى الآن ، كل هذه الإعدادات يمكن تغييرها لاحقًا.
بعد ذلك تحتاج إلى النقر فوق "إنشاء تطبيق" ، ستنشئ القمة التطبيق وتنقلك تلقائيًا إلى صفحة التطبيق ، حيث سترى
الصفحات الافتراضية
افتراضيًا ، ستنشئ القمة 3 صفحات في التطبيق. الصفحات ، مثل التطبيقات ، لها رقم وعنوان. يتم استخدام الرقم بالطريقة نفسها في عنوان URL لتعريف الصفحة ، وهو يتبع رقم التطبيق مباشرةً ويفصل بينها نقطتان. بمعنى ، التنسيق كما يلي:
https://apex.oracle.com/pls/apex/f?p=APPLICATION_ID:PAGE_ID:< url>
الصفحات الافتراضية التي تم إنشاؤها هي:
- الصفحة العالمية (معرف الصفحة: 0)
هذه صفحة خاصة لا تُستخدم بشكل مستقل ، ولكن يمكنك إضافة بعض العناصر إليها إذا كنت تريد أن تظهر في جميع الصفحات. الصفحة الرئيسية (معرف الصفحة: 1)
هذه هي صفحة بدء التطبيق. سوف تحصل عليه بشكل افتراضي بعد إدخال تسجيل الدخول وكلمة المرور في التطبيق ، أو إذا قمت بتحديد عنوان URL للتطبيق الخاص بك دون تحديد صفحة وكل شيء آخر ، مثل هذا:
https://apex.oracle.com/pls/apex/f?p=123456
- صفحة تسجيل الدخول (معرف الصفحة: 9999 ، في الإصدارات 4.x ، 5.x كانت 101)
من الواضح أن هذه هي صفحة تسجيل الدخول. يحتوي على حقول لإدخال تسجيل الدخول وكلمة المرور ، لبعض الوقت (لا يمكنني تسمية الإصدار ، ولكن مؤخرًا نسبيًا) - مربع اختيار "تذكر اسم المستخدم" ، وزر "تسجيل الدخول".
تحتوي التطبيقات والصفحات أيضًا على خاصية Alias
المفيدة. بالنسبة للتطبيق ، يتم تكوين هذه الخاصية في خصائص التطبيق ("خصائص التطبيق" → "التعريف" → "الاسم" → "الاسم المستعار للتطبيق") ، ولصفحة ، في محرر الصفحة في لوحة الخصائص على اليمين. يمكن استخدام Alias
في عنوان URL للصفحة بدلاً من الرقم. يتم إنشاء صفحة تسجيل الدخول الافتراضية باستخدام LOGIN_DESKTOP
LOGIN_DESKTOP ، والصفحة الرئيسية باستخدام الاسم المستعار HOME
. إذا قمت بتعيين الاسم المستعار للتطبيق MY_APP
، فيمكنك الانتقال إلى صفحة تسجيل الدخول على
https://apex.oracle.com/pls/apex/f?p=MY_APP:LOGIN_DESKTOP
#define true false (أو أعرف ما كنت تعتقد)ماذا يحدث إذا أصبح التطبيق 123 هو الاسم المستعار 456 والتطبيق 456 هو الاسم المستعار 123؟ لن يكون هناك شيء ، لن تسمح القمة بإدخال الأسماء المستعارة على التطبيقات. لم يتم توضيح ذلك بوضوح في التعليمات ، ولكن يبدو أن الاسم المستعار للتطبيق يخضع لقواعد أسماء المعرّفات في PL / SQL.
ماذا يحدث إذا كانت الصفحة 123 هي الاسم المستعار 456 والصفحة 456 هي الاسم المستعار 123؟ لن يكون هناك شيء ، يمكنك إعطاء الصفحات أسماء مستعارة كهذه ، لكن سيتم تجاهلها. 123
في URL سيفتح الصفحة 123.
إطلاق التطبيق
الآن وقد تم إنشاء التطبيق ، يمكن بالفعل "إطلاقه" (لا يوجد شيء للنظر فيه حتى الآن). لا يختلف هذا تمامًا عن بدء تشغيل تطبيق عادي (مثل نظام التشغيل Windows أو Linux). يتم تقديم تطبيق apex بواسطة نفس المحرك مثل IDE نفسه ، وبمجرد إنشاء التطبيق ، يصبح جاهزًا للاستخدام على الفور ، ويمكن لأي شخص يدخل عنوانه في شريط العناوين أن يعمل معه. في الواقع ، يعد إطلاق التطبيق نفسه مجرد اسم لفتح صفحة البداية (الاسم بالرقم 1). يمكنك تشغيل التطبيق بعدة طرق:
- في App Builder في قائمة التطبيقات يوجد عمود "Run" مع زر مقابل كل تطبيق ؛
- على صفحة التطبيق هناك زر كبير "تشغيل التطبيق" ؛
- يمكنك "تشغيل" ليس فقط التطبيق ، ولكن أيضًا أي صفحة غير حوار (يمكن استدعاء مربعات الحوار فقط من الصفحات العادية): في قائمة صفحات التطبيق هناك أيضًا عمود مع زر "تشغيل" ؛
- يمكنك بدء الصفحة الحالية من محرر الصفحة بالنقر فوق الزر الموجود في الزاوية اليمنى العليا ؛
- وأخيراً ، يمكنك بدء الصفحة إذا كان هناك مثل هذه الأزرار في الزاوية اليمنى العليا:

هذان الأزرار موجودان في أي قسم تقريبًا من IDE. تحتوي الصفحة اليسرى على رقم الصفحة الأخيرة التي فتحتها في محرر الصفحة. بالضغط عليها ، سوف تنتقل إلى تحرير هذه الصفحة ، وبالضغط على الزر الأيمن ، ستقوم بتشغيل هذه الصفحة.
ماذا سيحدث بعد الاطلاق؟ إذا كانت الصفحة المطلقة محدودة الوصول ، فسيتم أولاً إعادة توجيه المستخدم إلى صفحة تسجيل الدخول. إذا تم تسجيل دخول المستخدم بالفعل ، أو تم وضع علامة على صفحة الإعدادات على أنها عامة ، سيتم فتح هذه الصفحة.
بشكل افتراضي ، يتم إنشاء الصفحة مع وصول محدود. هناك نوعان من الإعدادات الممكنة في خصائص الصفحة ( محرر الصفحة - اللوحة اليمنى - مجموعة خصائص "الأمان" - "مصادقة"):
Page Requires Authentication
: ستكون الصفحة متاحة فقط للمستخدمين الذين قاموا بتسجيل الدخول أثناء الجلسة ؛Page is Public
: صفحة عامة تكون مرئية للمستخدمين المسجلين وغير المسجلين.
إنشاء الصفحة
يمكنك إنشاء صفحة على صفحة التطبيق . انقر فوق "إنشاء" ، ثم سيبدأ معالج إنشاء الصفحة. خطوات المعالج:
- تحديد نوع صفحة من (في الوقت الحالي) 12 نوعًا ، بعضها يحتوي أيضًا على أنواع فرعية (إن وجدت ، ستظهر في الخطوة التالية). النوع الأول من القائمة هو "صفحة فارغة" ، أي صفحة فارغة بدون كل شيء. الأنواع المتبقية هي خيارات صفحة شائعة للعمل مع قاعدة البيانات: التقارير ، نماذج المدخلات ، الرسوم البيانية ، وما إلى ذلك. هنا سوف أصف عملية إنشاء صفحة فارغة ، وسوف تحتوي الأنواع المتبقية على مقالة منفصلة.
- أدخل رقم الصفحة والعنوان. تحدثت عن الأرقام أعلاه ؛ تم تعيين الرقم في هذه الخطوة وبعد ذلك لن يكون من الممكن تغييره ، لذلك راقب بعناية. أحيانًا يقسم المطورين الصفحات إلى مجموعات (لغرض وظيفي ، على سبيل المثال) ، ويحجزون مجموعة من الأرقام لكل مجموعة ، لذلك إذا كنت تستخدم هذا في مشروعك ، فاحرص على توخي الحذر. تحتاج فورًا إلى اختيار نوع الصفحة: حوار عادي ، مشروط ، حوار غير مشروط.
- تخصيص عناصر التنقل. يمكنك تخطي (انقر فوق "التالي") والتهيئة لاحقًا (على الرغم من أنه إذا كان لديك بالفعل نظام من نوع الملاحة ، فمن المريح تعيين كل شيء على الفور في هذه الخطوة ولم تعد تأخذ حمام بخار).
- تأكيد الخلق.
بعد ذلك ، يتم إنشاء الصفحة وجاهزة للاستخدام.
مكونات الصفحة الرئيسية
العناصر البصرية
العناصر المرئية هي العناصر التي يتم عرضها بطريقة أو بأخرى على الشاشة. هذا هو:
- القائمة العليا. يحتوي على اسم التطبيق ، والشعار ، واسم المستخدم ، ورابط "تسجيل الخروج" (إذا تم تسجيل دخول المستخدم). هناك يمكنك إضافة عناصر أخرى.
- قائمة التنقل على اليسار. يمكن استخدامه للتنقل في التطبيق ، على سبيل المثال ، إنشاء هيكل هرمي لأقسام التطبيق ؛
- المناطق (عادة باللغة الروسية يطلق عليها "المناطق"): حاويات من العناصر. قد تحتوي على تقارير ورسوم بيانية وحقول إدخال وأزرار ومناطق أخرى ؛
- العناصر (لا توجد ترجمة راسخة إلى اللغة الروسية ، ويقولون من هو ماذا ، وعادة ما يستخدمون عبارة العنصر والحقل وغالبًا ما يكون عنصر واحد فقط): هذه حقول متعددة لإدخال المستخدم ؛
- الأزرار (الأزرار): حسنًا ، هذه أزرار عادية ، وباختصار ، ماذا يمكنني أن أقول ؛)
- التقارير: الجداول التي تحتوي على بيانات تستند إلى استعلامات SQL ؛
- الرسوم البيانية / المخططات: عرض رسومي للمعلومات من قاعدة البيانات ، بناءً على استعلامات SQL.
يمكن اعتبار التقارير والرسوم البيانية أنواعًا مختلفة من المناطق (من الناحية الفنية) ، لكنها في الوقت نفسه كيانات مستقلة تمامًا لها سلوكها وخصائصها وغيرها.
العناصر غير المرئية
هذه هي العناصر لضمان منطق التطبيق. هناك بالفعل مجموعة كبيرة من العناصر ، على الرغم من أن المستخدم لا يرها حرفيًا. الأنواع الرئيسية هي:
- العملية: كقاعدة عامة ، يتم تنفيذ كود PL / SQL على الخادم استجابة لأي إجراء من إجراءات المستخدم ؛
- التحقق من الصحة: نوع من العملية للتحقق من صحة إدخال المستخدم ؛
- الإجراء الديناميكي (لا توجد ترجمة مثبتة ، عادة ما يكتبها الجميع - Dynamic Action أو DA فقط ، وعندما تكون كسولًا للغاية لتبديل التصميم ، يمكن للمتكلم كتابة إجراء أو نعم): العملية التي يقوم بها المستعرض. في نهاية المطاف ، DA هو معالج لحدث جافا سكريبت. معرفة javascript اختيارية ، ولكن إذا كنت تعرف (ومحددات CSS في نفس الوقت) ، فيمكنك فعل العجائب ؛
- الفروع (لا توجد ترجمة ثابتة): يعيد التوجيه إلى الصفحات الأخرى حسب بعض الشروط.
الخصائص الأساسية للعناصر
الخصائص العامة
المجموعات الرئيسية من الخصائص المميزة لكل نوع (أو تقريبا كل) عنصر. يمكن عرضها وتحريرها في محرر الصفحة. هنا سأصف بإيجاز هدفهم (حتى تعرف ما الذي تبحث عنه) ، وبمزيد من التفصيل سأقول في مقالات أخرى.
Identification
: يحدد اسم العنصر والخصائص الإضافية (حسب النوع) ؛Appearance
: الخصائص المسؤولة عن ظهور العنصر البصري. لكل نوع من العناصر هناك مجموعة من القوالب ، يمكنك تحديد واحد منهم هنا (خاصية Template
). تحتوي القوالب أيضًا على إعدادات إضافية ( Template Options
- بالنقر فوق الزر سيتم فتح نافذة بها إعدادات) ؛Layout
: اضبط موضع العنصر المرئي في الصفحة. يتم ترتيب العناصر في شبكة من 12 عمودًا ، وهنا يمكنك تحديد كيفية تحديد موقعها ؛Source
: للمناطق والعناصر - مصدر بيانات للعرض ، للعمليات - رمز العملية ؛Server-side Condition
: شرط تم التحقق منه على الخادم (هناك مجموعة كبيرة من الشروط ، من تلك البسيطة ، مثلها مثل هذا العنصر ، وهذه القيمة لها مثل هذه القيمة ، إلى كود PL / SQL التعسفي). سيتم عرض العنصر على الصفحة إذا تم استيفاء هذا الشرط ، وإذا لم يكن كذلك ، فلن يتم ذلك. علاوة على ذلك ، لن تكون مخفية ، ولكن ببساطة لن يتم عرضها ؛Client-side Condition
(للعمل Dynamic Action
): شرط تم التحقق منه على العميل (دون الوصول إلى الخادم). سيكون راضيا DA إذا تم استيفاء الحالة ؛Read only
: إنه يعمل بنفس Server-side Condition
، ولكنه لا يتحكم في وجود / عدم وجود عنصر ، ولكن القدرة على تغيير القيمة. هذه الخاصية مخصصة للعناصر والمناطق والصفحات. بالنسبة للعنصر ، فإنه ينطبق على العنصر نفسه ، وعلى المناطق / الصفحات ، على جميع العناصر داخل المنطقة / الصفحة المقابلة ؛Security
: التحكم في الوصول إلى هذا البند. من حيث المبدأ ، يمكن إجراء نفس الشيء باستخدام Server-side Condition
، ولكن من الأفضل التمييز بين: Server-side Condition
- لمنطق التطبيق ، Security
- للعرض اعتمادًا على حقوق الوصول.Configuration
: لتمكين / تعطيل Build Option
. شيء غير واضح للغاية ، ولكنه مفيد للغاية: فهو يسمح لك بتمكين أو تعطيل الميزات الفردية للتطبيق ، وهو مناسب جدًا عند تطوير الميزات بالتوازي مع العديد من الإصدارات المختلفة ؛Comments
: تعليقات للمطورين الآخرين.Help
(للعناصر المرئية): مساعدة للمستخدمين النهائيين للتطبيق.
خصائص الصفحة
الخصائص الخاصة بالصفحة:
Navigation
: هناك نوعان من الخصائص في هذه المجموعة. يشير مؤشر Cursor Focus
إلى ما إذا كان سيتم نقل التركيز إلى حقل الإدخال في الصفحة بعد التحميل مباشرة (الخيارات - إما لا ترسل أو تنقل إلى الحقل الأول في الصفحة). Warn on Unsaved Changes
المستخدم من مغادرة الصفحة إذا كانت هناك بيانات غير محفوظة ؛JavaScript
: يسمح لك بإضافة كود JavaScript إلى الصفحة. يمكنك تحديد المسار إلى الملف أو إضافة الرمز الخاص بك مباشرة إلى الصفحة ؛CSS
: نفس الشيء بالنسبة لـ CSS. قم بتضمين ملف أو إضافته إلى الصفحة إذا كنت بحاجة إلى إعداد CSS محلي لهذه الصفحة فقط ؛Advanced
: يسمح لك بتمكين أو تعطيل الحماية من إعادة إرسال النموذج.