دسترسی به ViewAccessor و مقداردهی Bind Variable تعریف شده بر روی LOV

Number customerId = (Number)row.getAttribute("CustomerId");

RowSet rowSet = (RowSet)row.getAttribute("GuaranteeLOV1");

rowSet.setNamedWhereClauseParam("Bind_CustomerId", new Number(customerId));

 

منبع : AdfTips.com (نویسنده : مورالی پاپانا)


UI اولیه مربوطه به فرم قرارداد

اول فکر میکردم , برای هر مصوبه (confirmedId) , یک و فقط یک , قرارداد (ContractId) داریم ولی بعداً مشخص شد میشه از روی یک مصوبه چند تا قرارداد ایجاد کرد که نوع ارز متفاوت دارند بنابراین با توجه به اینکه همه زحمت هایی که روی این فرم کشیدم داره از بین میره بنابراین تصمیم گرفتم تا نکات فنی مرتبط رو یک جا مستند کنم تا بعداً درصورت نیاز از اونا استفاده کنم.

نکات مربوط به این فرم عبارتند از :

1.پیاده سازی متدها در VO مربوطه بجای AM برای کوچک تر شدن سایز AM

2.پیاده سازی LOV های مرتبط (cascade lov) , با استفاده از راهنمایی وبلاگ آرامامو

3.گرفتن confirmedId از instance قراردادی که از روی defenition مربوطه در کنسول حرفه ای وبلاجیک ایجاد شده است.

4.در اپلیکیشن نوع A که اینترفیس آن فاقد بی پی ام می باشد,پارامتر ورودی (confirmedId) بصورت دستی مقداردهی میشود.

5.در اپلیکیشن نوع B که اینترفیس آن مبتنی بی پی ام می باشد,پارامتر ورودی (confirmedId) از payload دریافت میشود.

UI اولیه مربوط به فرم قرارداد بصورت زیر می باشد:




نخوه اضافه کردن فیلد ردیف به af:table

متغیر varStatus="vs" را به af:table اضافه می کنیم و مطابق کد زیر از آن در داخل af:column استفاده می کنیم :

af:outputText value="#{vs.index+1}" id="ot19"

فراخوانی متدهای لایه ویو در Task Flow

سناریویی را در نظر بگیرید که در آن قصد داریم مقادیری را در session  ذخیره کنیم تا در قسمتهای دیگر پروژه از این مقادیر استفاده شود . برای این منظور همانند مثالی که در این لینک  معرفی میشود متد لایه ویو را از داخل taskflow فراخوانی میکنیم.

چگونه  با استفاده از برنامه نویسی Selected Row or Rows کامپوننت ADF Table را دریافت کنیم

1.ابتدا Iterator را پیدا میکنیم

        DCIteratorBinding iter = ADFUtils.findIterator("NAME");

2.از Iterator , ویو آبجکت مربوطه را دریافت میکنیم

        ViewObject voTableData = iter.getViewObject();

3.از ویو آبجکت , سطر جاری را دریافت میکنیم.

        Row rowSelected = voTableData.getCurrentRow();

4.از ویو آبجکت , مقدار ویژگی مورد نظر را دریافت میکنیم.

        Object xyz = rowSelected.getAttribute("NAME");

منبع :

سایت رسمی آقای John Brunswick

اپلیکیشن کامل adf

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

سناریو :

یک پیج اصلی داریم که داخل آن داریم دیتا رو مشاهده می کنیم (browse) و از داخل آن یک پیج دیگر را صدا میزنیم که بر اساس پارامتری که بهش پاس داده میشود , عملیات اضافه کردن (add) و یا ویرایش کردن (edit) رو انجام می دهیم. عملیات حذف (delete) شبیه به عملیات ویرایش می باشد.






چکار کنیم تا جداول af:table بصورت اتوماتیک استرچ شوند

ویژگی styleClass="AFStretchWidth" را به af:table اضافه می کنیم
ویژگی columnStretching را متناسب با هر ستونی که دوست داریم بصورت استرچ نمایش داده 
شود را تنظیم می کنیم.

منبع : وبلاگ TangHao

چگونه بصورت conditionally قسمتی از فرم را show / hide کنیم؟

فرض کنید در یک فرم JSF قصد داریم مجموعه ای از فیلدهایی را نمایش دهیم که نمایش و یا عدم نمایش آنها به یکدیگر وابسته می باشد.

مثلاً یک کمبو باکس بنام واحد سازمانی داریم که در آن مقادیر فروش , حسابداری , انبار و ... نگهداری میشود و درصورت انتخاب فروش , اطلاعات مرتبط با واحد فروش از کاربر دریافت و نمایش داده میشود و در صورت انتخاب حسابداری اطلاعات مرتبط با واحد حسابداری از کاربر دریافت و نمایش داده میشود.

برای انجام دادن این کار , مطابق مراحل گفته شده در وبلاگoralublog.wordpress عمل کنید.

نحوه پیاده سازی عملیات CRUD در OracleADF توسط Unbounded Task Flow و بصورت popup

پیاده سازی توسط آقای Andrejus Baranovskis قسمت 1

پیاده سازی توسط آقای Andrejus Baranovskis قسمت 2

پیاده سازی توسط آقای Andrejus Baranovskis قسمت 3

 

بنظر من اصلاً لازم نبود قسمت های 2 و 3 توسط آقای Andrejus Baranovskis مطرح بشه و اگه روی همون قسمت 1 بیشتر کار میکردند بهتر بود.

من موندم اینچنین شخص مهمی چرا باید این اشتباه رو بکنه . آخه همه دارن پست های آقای Andrejus Baranovskis را با دقت مطالعه میکنن .

شرکت Global E Business Solutions یه شرکت اروپایی هستش و در این پست این مشکل رو بطور کامل و دقیقاً مطابق با تکنیک های Oracle ADF برطرف کردن.

چه جوری کاری کنیم که وقتی دکمه سبز اجرای پروژه را در Jdeveloper  میزنیم پروژه سریعاً اجرا بشه

اگه در محیط Jdeveloper با کلیک بر روی دکمه سبز اجرای پروژه پیغام زیر رو مشاهده میکنید

Set Default Run Target to TaskFlow Activity

و دوست دارید این رویه رو تغییر بدین تا با کلیک بر روی این دکمه پروژه سریعاً اجرا بشه.

به وبلاگ maybe-interesting مراجعه کنید و مطابق مراحل گفته شده عمل کنید تا مشکل برطرف شود.