در برنامههای کاربردی همیشه فرمهایی وجود دارند که یک فیلد آن لیستی از مقادیر میباشد که کاربر باید از بین آنها انتخاب نماید. این لیست مقادیر گاه میتواند از یک جدول دیگر در پایگاه داده باشد و گاه میتواند یک لیست استاتیک از مقادیر باشد. برای روشن شدن بیشتر موضوع در خلال این مقاله مثالی طرح میگردد و گام به گام مراحل مورد نیاز شرح داده میشود. برای مثال از جدول کارمندان و دپارتمانها در HR استفاده میکنیم و لیست دپارتمانها را به صورت لیست مقادیر در فرم کارمند پیادهسازی مینماییم.
شرح
در ابتدا entity و view و ارتباطات بین کارمندان و دپارتمانها را ایجاد کرده. قابل ذکر است که ارتباطات بین کارمند و دپارتمان تاثیری بر ساخت لیست مقادیر فیلد دپارتمان در فرم کارمند ندارد پس نگران اینکه چه ارتباطی لازم است ایجاد گردد نباشید و از ویزارد Jdeveloper کمک گرفته و بگذارید این مورد به صورت خودکار انجام گیرد. برای این مثال من فقط مدل را میسازم و با نرمافزار تستر نتیجه را به شما نشان خواهم داد.
حال باید پس از ایجاد Viewهای مورد نیاز به سراغ مواردی برویم که برای ساخت لیست مقادیر به آنها نیاز داریم. در این مثال View کارمندان را باز کنید. برای ساخت لیست مقادیر در ابتدا باید View Accessors مورد نیاز را ایجاد نمایید. برای اینکار به قسمت View Accessors در view کارمند بروید.
با زدن دکمه مثبت سبز ( سمت راست بالا) فرم مخصوص برای ایجاد View Accessors باز میگردد. در سمت چپ این فرم لیست تمام View موجود نمایش داده میشود تا بتوانید از بین آنها Viewهای مورد نیاز خود را پیدا و انتخاب نمایید
در این فرم شما باید Viewهایی که میخواهید به صورت یک لیست مقادیر در View اصلی در اختیار کاربر قرار دهید را انتخاب و آنها را به سمت راست و زیر View اصلی ببرید. در این مثال چون قصد داریم لیست دپارتمانها را به صورت لیستی از مقادیر نمایش دهیم در سمت چپ View دپارتمان را انتخاب (۱) و با زدن فلش وسط(۲) به سمت راست برده و در زیر View کارمند(۳) قرار میدهیم.
در همینجا شما میتوانید قبل از اینکه آنرا به سمت راست ارسال نمایید اسم دلخواهتان را با استفاده از inputbox زیرین آن(۴) مشخص نمایید. این اسم کمک میکند تا خوانایی برنامهتان با استفاده از اسامی مناسب و با معنی بالاتر برود.
در برخی از حالات ما نیاز پیدا خواهیم کرد که لیست موجود را فیلتر نماییم. مثلا لیست دپارتمانهایی که در یک مکان خاص وجود دارند را نشان داده و همه لیست را در اختیار کاربر قرار ندهیم تا انتخاب محدودتری داشته باشد. برای این منظور باید از امکان View Criteria در ADF استفاده نمود. پس از ارسال View به سمت راست با انتخاب آن در سمت راست دکمه Edit بالای کادر View Accessors فعال میگردد. با زدن آن فرمی باز میگردد که View Criteriaهای تعریف شده در View را نمایش میدهد که شما میتوانید هر کدام از آنها را که خواستید انتخاب و با زدن فلش به سمت راست ارسال نمایید تا فعال شوند و لیست مقادیر را فیلتر نماید. برای نشان دادن این مورد یک View Criteria بر اساسCounty id در View دپارتمان ایجاد کردهام و لیست مقادیر را برای مکان با شناسه ۱۷۰۰ فیلتر مینمایم تا فقط دپارتمانهای آن مکان نشان داده شود.
* دوستانی که با نحوه ایجاد View Criteria آشنایی ندارند میتوانند از سایر منابع یا پستهای بنده برای آشنایی با آن استفاده نمایند.
تا اینجا مرحله اول کار یعنی source دادههایی که میخواهیم به صورت لیست مقادیر نشان دهیم را ساختهایم. حال باید فقط مشخص کنیم که این لیست مقادیر را برای کدام فیلد میخواهیم نمایش دهیم تا کاربر از بین آنها یکی را انتخاب نماید. در View کارمند به قسمت Attributes بروید و فیلد شناسه دپارتمان (DepartmentId) را انتخاب نمایید تا برای این فیلد لیست مقادیر ایجاد نمایید.
حال با زدن دکمه مثبت سبز در قسمت List of Values (همانطور که در تصویر قبل مشخص شده است) فرم مربوط به ساخت لیست مقادیر نشان داده میشود. در این فرم دو تب Configuration و UI Hints ملاحظه مینمایید که هرکدام را به صورت جداگانه توضیح میدهم.
تب Configuration
در این تب باید دیتا سورس مربوط به لیست مقادیر این فیلد(DepartmentId) را مشخص کرد و همچنین مقادیری که باید این لیست مقادیر به View اصلی باز گرداند که عموما شامل شناسه میباشد. با کلیک بر روی قسمت List Data Source نام View Accessors که در مرحله قبل ایجاد کردید را ملاحظه مینمایید. آنرا انتخاب نمایید. در قسمتList Attribute باید فیلد مورد نظر برای بازگشت مقدار آن به View کارمند را مشخص نمایید که عموما شناسه میباشد. ما فیلد DepartmentId را انتخاب مینماییم. در اینجا کار ما با این تب به اتمام میرسد.
تب UI Hints
این تب شامل تنظیماتی است که نحوه نمایش این لیست مقادیر در قسمت واسط کاربر(UI) را مشخص مینماید. تنظیماتی از قبیل چه کامپوننتی برای نمایش استفاده شود . چه فیلدهایی از View دپارتمان به جای شناسه آن نمایش داده شود و سایر تنظیماتی که تاثیر آن را فقط در واسط کاربر خود خواهید دید. در این تب من فقط DepartmentName را در قسمت Display Attributes انتخاب میکنم که آن را به جای شناسه نمایش دهد سایر موارد را به صورت پیشفرض خود رها مینمایم. در صورت علاقه به دانستن جزییات بیشتر به منابع رسمی مراجعه نمایید.
در نهایت فیلد DepartmentId در View کارمند شما شامل یک LOV از نام دپارتمانها شده است
تبریک میگویم شما با موفقیت تمام مراحل مورد نیاز را پشت سرگذاشتید و حال با اجرای مدل توسط تستر در فرم کارمند میتوانید نتیجه تلاش خود را ملاحظه نمایید.
فایل مثال
فایل PDF
امیدوارم که این مطلب برایتان مفید بوده باشد.
با تشکر
نظر خود را وارد کنید: