بلاگ

آخرین خبر ها و آپدیت ها

نمایش عنوان به جای شناسه در کامپوننت کمبو در صفحات

مشکل
تمام افرادی که فرم‌های شامل فیلد لیست مقادیر(LOV) در صفحات وب ایجاد کرده اند با این مساله روبرو بوده‌اند که کامپوننت کمبو استفاده شده برای این‌گونه فیلدها شناسه را به جای یک عنوان نشان می‌دهد.راه حل
در این مقاله راه‌حلی ارائه می‌گردد تا عنوان به جای شناسه انتخاب شده از لیست مقادیر نشان داده شود. به طور کلی از یک فیلد کمکی دیگر که به صورت موقت (transient) تعریف شده است استفاده می‌کنیم. مقدار این فیلد را درفرم در اختیار قرار می‌دهیم تا آن را تغییر دهد و با تغییر آن در پس زمینه مقدار فیلد اصلی تغییر داد می‌شود.

توضیح راه حل
برای ارائه این راه حل از مثال معروف کارمند و دپارتمان استفاده می‌نماییم. در این مثال فیلد انتخاب دپارتمان در فرم کارمند را با استفاده از این روش درست می‌نماییم تا عنوان دپارتمان به جای شناسه آن در فرم کارمند نمایش داده شود.
http://blogs.oracle.com/adf/resource/adf-faces/Combo_LOV.png

در ابتدا یک فیلد موقت(transient) به ویو کارمند اضافه نمایید.

http://blogs.oracle.com/adf/resource/adf-faces/Transient_Dname_Attr.png

یک لیست مقادیر کمبو بر اساس هر دو فیلد اسم دپارتمان و شناسه آن ایجاد کنید. استفاده از شناسه دپارتمان به ما برای مقداردهی کردن فیلد اصلی شناسه دپارتمان در رکورد کارمند کمک می‌کند.
برای لیست دیتا سورس از یک عنوان خوب و خوانا استفاده کنید و آنرا به خاطر بسپارید. به عنوان مثال DeptViewAccessor همانند تصویر زیر

در پایان عبارت groovy داخل تصویر را به عنوان مقدار پیش فرض فیلد موقت ایجاد شده در مراحل قبل قرار دهید.

افرادی که دوست ندارند از groovy استفاده نمایند می‌توانند کلاس جاوای آنرا پیاده‌سازی و کد بالا را در متد set فیلد موقت قرار دهند

حال دیگر باید پس از اجرا عنوان دپارتمان را به جای شناسه آن ملاحظه نمایید و با تغییر آن دپارتمان نیز به صورت خودکار برای کارمند تغییر نماید.

منبع

فایل پیوست:
ComboLOV.zip
royal visionنمایش عنوان به جای شناسه در کامپوننت کمبو در صفحات
Share this post

نظر خود را وارد کنید:

Related Posts