صياغة تلميح واجهة المستخدم
المحتويات
أمثلة عملية
للحصول على أمثلة عملية لوظيفة uiHint، ارجع إلى كائنات العمل التالية:
كائنات العمل بالمفاتيح المخصصة من قِبل المستخدم
توضح الأمثلة التالية الأنماط التي يتم استخدامها لتمكين uiHints في كائن بمفتاح محدد من قِبل المستخدم.
- F1-OutcomeStyleLookup. لا يتطلب كائن عمل البحث القابل للتوسيع هذا تحويل الحالة، ولكنه يسمح بإجراءات التكرار والحذف.
- F1-TodoSumEmailTyp. يوضح نوع الطلب هذا التلميحات المطلوبة لدعم تحويل الحالة في مخطط عرض.
- F1-WebSvc. يعتبر كائن عمل خدمة الويب هذا مثالاً جيدًا على إدارة متطلبات JavaScript المعقدة. يحتوي كل من مخطط الإدخال ومخطط العرض على وظيفة تتطلب javascript متخصصة.
كائن عمل بمفتاح يتم إنشاؤه من قِبل النظام
يوضح المثال التالي النمط المستخدم لتمكين uiHints في كائن بمفتاح يتم إنشاؤه من قِبل النظام.
-
F1-GenericAttachment. يشتمل كائن عمل المرفق هذا على مفتاح مخصص من قِبل النظام ويقترن بالمعالجة الخاصة التالية:
- F1-AttachmentMain. هذه هي منطقة بيانات القسم الرئيسي التي تشتمل على العناصر المشتركة لكل المرفقات بما في ذلك المفتاح وكائن العمل والإصدار. نظرًا لاستخدام منطقة البيانات هذه لتحديد القسم الرئيسي للمخططات التي يتم إنشاؤها، يمكن تمديد القسم الرئيسي للمخطط باستخدام نسخة معدلة من خلال وظيفة تمديد منطقة البيانات.
- F1-AttachmentActions. يحتوي مخطط إجراءات السجل هذا على الإجراءات القياسية؛ "تحرير" و"حذف"، بالإضافة إلى الإجراءات المخصصة المستخدمة بواسطة المرفقات فقط؛ "عرض" و"تحميل".
- F1-AttachmentIDFrag. يحتوي مخطط معلومات السجل هذا على المفتاح الأساسي للمرفق.
سكريبت خدمة مخطط العرض
يمكن دعم سكريبتات خدمة مخطط العرض بالكامل عن طريق إنشاء HTML ديناميكي. ومع ذلك، للمساعدة في تقليل الحاجة إلى عرض سكريبت الخدمة، تم تطوير وظيفة uiHint المتضمنة ذاتيًا لكتابة حالة كائن العمل وتحديد عمليات تحويل الحالة الصالحة. وبالتالي، فقد تم استبعاد أكثر سببين شيوعًا لإنشاء سكريبت خدمة عرض.
عادةً ما يكون السبب في استخدام سكريبت مسبق للعرض هو وجود مقطع مخطط مضمن يحتوي على مخطط خدمة أعمال. يمكن استخدام سكريبت خدمة العرض لاستدعاء خدمة الأعمال. يجب أن يحدد كل من مقطع المخطط وسكريبت خدمة العرض مخطط خدمة الأعمال لدعم هذا السيناريو.
- F1-ExcelSpreadsheet. يحتوي كائن عمل المرفق هذا على سكريبت خدمة عرض مستخدم لمعالجة كائن عمل المرفق قبل عرضه:
- F1-AttchDtlU. تم تحديد مخطط سكريبت خدمة مخطط العرض هذا بمساحة اسم uiHint وسيتم إنشاء مخطط عرض له.
سكريبت خدمة المعالجة المسبقة للصيانة
يمكن استخدام سكريبتات خدمة المعالجة المسبقة للصيانة مع uiHints.
- F1-ExcelSpreadsheet. يحتوي كائن عمل المرفق هذا على سكريبت خدمة معالجة مسبقة للصيانة مستخدم لمعالجة كائن العمل المرفق قبل عرض مخطط الصيانة:
- F1-AttchPre. يقوم مخطط سكريبت خدمة المعالجة المسبقة هذا بمحاكاة مخطط صيانة بعنصري action وboGroup مضمنة. وسيتم استدعاؤه قبل عرض مخطط الصيانة.
سكريبت خدمة ما بعد المعالجة للصيانة
يمكن استخدام سكريبتات خدمة ما بعد المعالجة للصيانة مع uiHints.
- F1-ExcelSpreadsheet. يحتوي كائن عمل المرفق هذا على سكريبت خدمة ما بعد المعالجة للصيانة مستخدم لمعالجة كائن العمل المرفق بعد عرض مخطط الصيانة:
- F1-AttchPost. يقوم مخطط سكريبت خدمة ما بعد المعالجة بمحاكاة مخطط صيانة بعنصري action وboGroup مضمنة. وسيتم استدعاؤه بعد عرض مخطط الصيانة.
ملاحظات فنية
يجب توفير المتطلبات الأساسية التالية لدعم إنشاء HTML ديناميكي:
متطلبات المخطط
لدعم إنشاء واجهة المستخدم الآلية، يجب أن يحتوي مخطط كائن العمل على ما يلي:
- <schema xmlns:uiHint="http://oracle.com/ouafUIHints">. يجب أن تقوم عقدة المخطط بتسمية مساحة اسم uiHint.
- isPrimeKey="true". يجب تحديد كل عنصر في مخطط كائن العمل الذي يشكل جزءًا من المفتاح الأساسي.
المتطلبات الأساسية لسكريبت الصيانة
يجب تمكين سكريبت الصيانة لكائن الصيانة من أجل الإنشاء الديناميكي.
إذا قام السكريبت بتشغيل F1-BOProc، فلن تكون هناك حاجة إلى أي وظائف خاصة على الأرجح. ومع ذلك، في حالة احتواء سكريبت الصيانة على وظيفة استدعاء F1-GetValOpt الخاصة به، يجب توفير العبارة التالية قبل هذا الاستدعاء:
move 'false' to "F1-GetBOOpts/input/maintenanceMapRequired";
performScript 'F1-GetValOpt';
بعد استدعاء F1-GetValOpt، يجب تضمين المنطق التالي لتحديد المخطط ديناميكيًا في حالة عدم احتواء كائن العمل على مخطط صيانة خاص به:
// Perform Main Processing
if ("F1-GetBOOpts/output/maintenanceMap = $BLANK")
declareBOWithBOGroup "$bo" as 'map_schema';
else
declareMap "F1-GetBOOpts/output/maintenanceMap" as 'map_schema';
end-if;
تنسيق عنوان مخطط مدخلات
يمكن استخدام عنصر uiHint لإنشاء عنوان مخطط صيانة. تتم طباعة العنوان في مخطط الصيانة فقط، وليس في مخطط العرض. وستتم طباعته باعتباره السطر الأول في المخطط مع توسيطه واستخدام نمط العنوان.
الصياغة | الوصف | الأمثلة |
---|---|---|
<uiHint:title mdField=" "/> |
عرض تسمية حقل بيانات التعريف المرجعي باعتباره العنوان. |
|
<uiHint:title text=" "/> |
عرض النص المشار إليه باعتباره العنوان. (لا تستخدم هذه الآلية عندما يتم دعم لغات متعددة). |
|
إنشاء قسم
تدعم مساحة اسم uiHint تحديد قسم مخطط واجهة المستخدم. لاحظ أن الأقسام يتم إنشاؤها في الوقت الحالي في مخططات واجهة المستخدم المنشأة عندما يحتوي المخطط على مجموعة أو عقدة قائمة بتسمية أو mdField. تقوم الوظيفة الموضحة هنا بتمكين إنشاء قسم دون الحاجة إلى عقدة قائمة أو مجموعة مسماة داخل المخطط. يجب تحديد كل قسم بزوج العناصر startSection وendSection.
الصياغة | سمات الدعم | الوصف |
---|---|---|
<uiHint:startSection .../> |
sectionColumn="left | right | fullWidth | float" |
القيمة الافتراضية هي عرض القسم بالكامل في مخططات العرض. لتجاوز هذا الإعداد، حدد ما إذا كنت تريد عرض نصف القسم بحيث يظهر في العمود اليسار (يسار) أو العمود اليمين (اليمين) أو يظهر بشكل عائم (عائم). ستظهر الأقسام المحددة بالإعداد "عائم" كنصف قسم وتتم محاذاتها وفقًا لعرض الأقسام السابقة أو إخفائها بشروط. على سبيل المثال، إذا جاء قسم عائم بعد قسم تمت محاذاته إلى اليسار، فسيظهر القسم العائم في العمود الأيمن إذا تم ملء القسم الأيسر، بينما سيظهر في العمود الأيسر إذا تم إخفاء/طي القسم الأيسر. |
editColumn="left | right | fullWidth | float" |
بشكل افتراضي، يظهر القسم بالكامل في مخططات الصيانة. لتجاوز هذا الإعداد، حدد ما إذا كنت تريد عرض نصف القسم بحيث يظهر في العمود اليسار (يسار) أو العمود اليمين (اليمين) أو يظهر بشكل عائم (عائم). يكون السلوك مشابه لسلوك sectionColumn. | |
sectionOpen="false" |
بشكل افتراضي، يكون القسم مفتوحًا في طريقة العرض الأولية. حدد هذه السمة لعرض القسم مبدئيًا بالحالة "مغلق" (مطوي). | |
mdField=" " |
حدد اسم حقل بيانات التعريف الذي يجب استخدام تسميته كعنوان القسم. | |
label=" " |
حدد النص الصريح لاستخدامه كعنوان القسم. | |
visibleOn="displayMap | inputMap" |
بشكل افتراضي، يظهر القسم في مخططات الإدخال والعرض على حدٍ سواء. استخدم هذه السمة لتحديد عرض القسم على مخطط العرض (displayMap) أو مخطط الإدخال (inputMap). |
صياغة سمة قسم النهاية هي <uiHint:endSection/>
أمثلة:
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<uiHint:startSection label="Main" sectionColumn="left"/>
...
<uiHint:endSection/>
</schema>
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<uiHint:startSection mdField="F1-ADD-INFO" sectionColumn="fullWidth" editColumn="float" sectionOpen="false" visibleOn="displayMap"/>
...
<uiHint:endSection/>
</schema>
تضمين مقطع مخطط
يمكنك تحديد مقطع مخطط واجهة مستخدم لإدراج HTML في مخطط تم إنشاؤه باستخدام اسم العنصر includeMap. يسمح لك هذا بدعم سلوك أكثر تعقيدًا في واجهة المستخدم لديك. بالنسبة لأي عنصر يتم تضمينه للعرض في مقطع المخطط، يجب التأكد من إيقاف العنصر في تعريف المخطط الخاص به، خلاف ذلك سيتم إنشاء HTML آليًا للعنصر.
الصياغة | سمات الدعم | الوصف |
---|---|---|
<uiHint:includeMap .../> |
map=" " |
تحديد اسم المخطط. |
visibleOn="displayMap | inputMap" |
بشكل افتراضي، تظهر تفاصيل مقطع المخطط على مخطط العرض ومخطط المدخلات على حدٍ سواء. استخدم هذه السمة لتحديد طريقة عرض القسم. |
مثال:
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<uiHint:includeMap map="StandardActionButtons" visibleOn="displayMap"/>
...
</schema>
إذا كان إدخال JavaScript مطلوبًا في مقطع مخطط واجهة مستخدم XHTML، يجب وضعه داخل علامة ![CDATA[ ]] للحصول على مستند XML صالح. لاحظ أنه يمكن أن يتطلب الأمر تعطيل العلامات نفسها لتحسين التوافق مع المستعرضات الأقدم. على سبيل المثال:
<script type="text/javascript">
/* <![CDATA[ */
//
//javascript
//
/* ]]> */
</script>
مسح ذاكرة التخزين المؤقت: لأسباب تتعلق بالأداء، يقوم إطار العمل آليًا بالتخزين المؤقت لمخططات كائن العمل و مناطق البيانات ومخططات واجهة المستخدم. عند تحديث أي كائن عمل، يتم مسح ذاكرة التخزين المؤقت آليًا. ومع ذلك، إذا تضمن كائن العمل منطقة بيانات أو مقطع مخطط واجهة مستخدم مضمن، يجب مسح ذاكرة التخزين المؤقت يدويًا لتفعيل التغييرات التي أجريتها. ارجع إلى ذاكرة التخزين المؤقت للملقم للحصول على مزيد من المعلومات.
إنشاء قائمة منسدلة
يتم توفير الصياغة لإنشاء قائمة منسدلة في مخطط تحرير. يمكن إنشاء القائمة المنسدلة باستخدام البيانات التي تم إرجاعها من سكريبت خدمة أو خدمة أعمال أو جدول.
الصياغة | الوصف |
---|---|
uiHint:select="ss: " |
تحديد اسم سكريبت الخدمة بعد النقطتين. |
uiHint:select="bs: " |
تحديد اسم خدمة الأعمال بعد النقطتين. |
uiHint:select="table: " |
تحديد اسم الجدول بعد النقطتين. |
عند تحديد سكريبت خدمة أو خدمة أعمال، يجب توفير معلومات ربط إضافية لتمرير البيانات من الخدمة وإليها.
الصياغة | القيم | الوصف |
---|---|---|
uiHint:selectIn=" " |
serviceXPath:element | تُستخدم لإدخال قيمة عنصر آخر إلى الخدمة (الربط مع المسار X للخدمة). |
serviceXPath:'Literal' | تُستخدم لإدخال أحد الثوابت أو قيمة حرفية إلى الخدمة (الربط مع المسار X للخدمة). | |
uiHint:selectOut="valuePath: ; descPath: " |
راجع الأمثلة أدناه. | يُستخدم للإشارة إلى العناصر في مخرجات الخدمة التي تحتوي على القيم والعناصر التي تحتوي على الأوصاف. |
أمثلة:
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<boStatus mapField="BO_STATUS_CD" uiHint:select="bs:F1-BOStateReasonList"
uiHint:selectIn="boStatusBO:boStatusBO" uiHint:selectOut="valuePath:results/status;
descPath:results/description"/>
...
<algorithm mdField="ALG_CD" uiHint:select="bs:F1-RetrieveSysEvtAlgorithms"
uiHint:selectIn="algorithmEntity:'F1AA';" uiHint:selectOut="valuePath:results/algorithm;
descPath:results/description"/>
...
<outboundMsgType mdField="OUTMSG_TYPE_CD" required="true" fkRef="F1-OMTYP" uiHint:select="table:F1_OUTMSG_TYPE"/>
</schema>
إخفاء العناصر بشروط
يتم استخدام السمة displayNone لإيقاف العناصر في المخطط وفقًا للشروط.
الصياغة | القيم | الوصف |
---|---|---|
uiHint:displayNone= |
"'XPath','value','!=' | '='" | تُستخدم لإخفاء هذا العنصر بشروط على أساس قيمة عنصر آخر (تتم الإشارة باستخدام المسار X). أدخل قيمة ' ' لتفسير أي قيمة فارغة. بشكل افتراضي، يكون المعامل هو '='. قد يتم تجاوز ذلك باستخدام '!='. |
"function name, true | false" | تُستخدم للإشارة إلى دالة JavaScript، التي يجب أن تعرض قيمة منطقية. |
لا يتم دعم مسافات مضمنة في قيم السلسلة المفصولة بالفاصلات لهذه السمة.
يمكن استخدام هذا الإعداد في عقد المجموعة وعقد القائمة باستثناء العناصر الموجودة في قائمة. لا يمكن إخفاء العناصر الموجودة في قائمة بشروط.
يوضح المثال التالي أن العنصرين (مرجع العملة والبحث) سيتم إخفاؤهما أو عرضهما بناءً على قيمة عنصر نوع البيانات. لاحظ أن هذا المثال يوضح أيضًا تحفيز سلوك العناصر التابعة لأنه يمكن تغيير قيمة عنصر نوع البيانات، وفي حالة تغييرها، يجب إعادة تقييم شروط إخفاء العناصر اللاحقة.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<dataType mdField="F1_SE_DATA_TYPE" dataType="lookup" lookup="F1_SE_DATA_TYPE"
uiHint:dependents="currencyRef;lookup; "/>
<currencyRef mdField="F1_SE_CURR_REF_LBL" uiHint:displayNone="'dataType','F1MO','!='"/>
<lookup mdField="F1_SE_LOOKUP_LBL" fkRef="F1-LKUPF" uiHint:displayNone="'dataType','F1LP','!='"/>
...
</schema>
يوضح المثال التالي الإحالة إلى دالة يمكنها استلام المعلمات:
<uiHint:startSection mdField="F1_SE_DEFAULT_SECT"
uiHint:displayNone="isApplicableForSchemaType(item,'F1MP'),true"/>
حماية العناصر بشروط
يتم استخدام سمة الحماية بغرض حماية العناصر في المخطط على أساس عوامل أخرى.
الصياغة | القيم | الوصف |
---|---|---|
uiHint:protect= |
"'XPath','value','!=' | '='" | تُستخدم لحماية هذا العنصر بشروط على أساس قيمة عنصر آخر (تتم الإشارة باستخدام المسار X). أدخل قيمة ' ' لتفسير أي قيمة فارغة. بشكل افتراضي، يكون المعامل هو '='. قد يتم تجاوز ذلك باستخدام '!='. |
"function name, true | false" | تُستخدم للإشارة إلى دالة JavaScript، التي يجب أن تعرض قيمة منطقية. | |
"'action','A' | 'C','!=' | '='" |
استخدم الإعداد 'إجراء' لحماية العنصر على أساس الإجراء الحالي. على سبيل المثال، يمكن تحديد عناصر معينة فقط عند إضافة سجل. يجب على أي تغييرات لاحقة على السجل حماية العنصر من التغيير. عند استخدام هذا الخيار، تكون القيم الصالحة التي تخص 'value' هي A (إضافة) وC (تغيير). |
لا يتم دعم مسافات مضمنة في قيم السلسلة المفصولة بالفاصلات لهذه السمة.
قد يتم استخدم تلميح واجهة المستخدم للحماية في عُقد المجموعة وعٌقد القائمة والعناصر - باستثناء العناصر الموجودة في قائمة. لا يمكن حماية العناصر الموجودة في قائمة بشروط.
سيقوم تلميح واجهة المستخدم التالي بحماية فئة الإحصائيات عندما يكون الإجراء بالقيمة 'C'.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<statisticsCategory dataType="lookup" mapField="STAT_CATEGORY_FLG"
lookup="STAT_CATEGORY_FLG" uiHint:protect="'action','C','='"/>
...
</schema>
تحفيز سلوك العناصر التابعة
يتم استخدام سمة العناصر التابعة لتحفيز السلوك في العنصر الفرعي عند تغيير العنصر الرئيسي.
الصياغة | القيم |
---|---|
uiHint:dependents=" " |
قائمة بعنصر تابع واحد أو أكثر مفصولة بواسطة فاصلات منقوطة. |
يوضح المثال التالي أن القائمة المنسدلة لعنصر واحد يتم تشغيلها حسب قيمة عنصر آخر. في هذا المثال، عند تغيير الدولة، يجب تغيير قائمة الولايات التي يجب الاختيار منها لتعرض فقط ولايات الدولة المشار إليها.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<country label="Country" uiHint:select="table:CI_COUNTRY" uiHint:dependents="state"/>
<state label="State" uiHint:select="ss:CM-RetrieveCountryStates"
uiHint:selectIn="input/country:country;" uiHint:selectOut="valuePath:output/state/stateCode;
descPath:output/state/stateDesc"/>
...
</schema>
قد تقوم أهداف العناصر التابعة بتسمية العناصر فقط وليس عُقد القائمة أو المجموعة.
لا تقم بتعديل قيمة سمة "المعرف" للعناصر الرئيسية والتابعة. يتم ملء البيانات في العنصر التابع على أساس قيمة سمة "المعرف".
التحكم في عرض الهدف
بشكل افتراضي، تكون كل العناصر التي لم يتم إيقافها مرئية في مخطط العرض ومخطط المدخلات. استخدم السمة visibleOn لتحديد تضمين أحد العناصر في مخطط العرض أو مخطط المدخلات.
الصياغة | القيم |
---|---|
uiHint:visibleOn= |
"displayMap" |
"inputMap" |
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<uiHint:includeMap map="StandardActionButtons" visibleOn="displayMap"
...
</schema>
إنشاء منطقة نصوص
بشكل افتراضي، يتم عرض مربع النص القياسي في مخطط مدخلات لأي عنصر سلسلة. إذا كان الحقل أكبر وأردت الحصول على منطقة نصوص أكبر (بشريط تمرير)، فاستخدم السمة textArea.
الصياغة |
---|
uiHint:textArea="true" |
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<message label="Message" uiHint:textArea="true"/>
...
</schema>
تعديل القيم الافتراضية لمرجع المفتاح الخارجي
بشكل افتراضي، عندما يتم عرض عنصر بنوع fkRef، يتم تمكين حقول بحث وتنقل وقائمة سياق وسلسلة معلومات (إذا تم تكوين مرجع المفتاح الخارجي وفقًا لذلك). يتم توفير صياغة لتتيح لك إيقاف أي من تلك الميزات اختياريًا.
الصياغة |
---|
uiHint:fkRef="info:false;context:false;navigation:false;search:false;" |
يجب تحديد الميزة التي تريد إيقافها فقط. يوضح المثال التالي إيقاف تشغيل إمكانية التنقل، بمعنى أنه لن يتم عرض النص كنص تشعبي.
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<attachmentID fkRef="F1-ATTCH" primeKey="true" suppress="input" uiHint:fkRef="navigation:false;"/>
...
</schema>
إيقاف تنسيق الأرقام آليًا
بشكل افتراضي، يتم تنسيق الحقول الرقمية (dataType="number") كأرقام. يتم توفير إحدى السمات لتطبيق التنسيق الأبجدي الرقمي بدلاً من ذلك.
ملاحظة: في حالة عدم تحديد قيمة dataType بشكل صريح، يتم اشتقاقها من mdField أو mapField.
الصياغة |
---|
uiHint:alphaFormat="true|false" |
بشكل افتراضي، يتم إعداد القيمة على false (وبالتالي يمكن تركها تمامًا).
أمثلة:
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
...
<numberCount mdField="" dataType="number" uiHint:alphaFormat="true"/>
...
</schema>
تنسيق بيانات المدخلات بحروف كبيرة آليًا
يوفر uiHint صياغة لتنسيق بيانات المدخلات بحروف كبيرة آليًا.
الصياغة |
---|
uiHint:capitalize="true|false" |
بشكل افتراضي، يتم إعداد القيمة على false (وبالتالي يمكن تركها تمامًا).
<schema xmlns:uiHint="http://oracle.com/ouafUIHints">
<toDoTypeCd mdField="TD_TYPE_CD" uiHint:capitalize='true' isPrimeKey="true"/>
</schema>
تتوفر السمة فقط في مصمم المخطط عند تعيين isPrimeKey على القيمة true. يمكن إضافة السمة إلى أي عنصر سلسلة عند استخدام عارض المصدر.