Thursday, October 3, 2019

Set Default Value of selectOneChoice from Bean in ADF 12c

Hello 


1  -  Create selectOneChoice manually
2  -  Set default value of selectOneChoice from bean
3  -  Get selected value in bean

for this post i am using jdeveloper 12.2.1.2.0

Lets start

1  -  Create selectOneChoice manually

Steps  1 -  Create new application
Steps  2 -  Create connection
Steps  3 -  Create Department view Object and then a jsf page

Steps  3 -  Click on the source tab of jsf page and then you need to create the af:selectOneChoice manually

Steps  4 -  Select  af:selectOneChoice and drop a af:forEach component on it
Steps  5 -  Then drop f:selectItem on af:forEach



Steps  6 -  Go to the Bindings tab of your jsf page and create a Tree Binding of Department vo

Steps  6 - Select af:forEach then go to properties pallet select Items value form binding and create a variable d


Steps  7 - Select f:selectItem from structure window and go to properties pallet and set the value of
item Label and item Value like following


Now Run your page

2  -  Set default value of selectOneChoice from bean

To set default value of selectOneChoice

Steps  1 -  Create value binding of selectOneChoice with bean and initialize the property in bean with the department id that you want to set as a default value


Now Run your jsf page you will see the Department Name againt Department id 90


3  -  Get selected value in bean

To get the selected Department Id in bean

Steps  1 -  Create valueChangeListener binding of selectOneChoice with bean
Steps  2 -  set autoSubmit =true of selectOneChoice


Run your page change the value of selectOneChoice

nvoke Database Procedure and Function in ADF

Hello 

In this post we will learn how to invoke database Procedure and Function from ADF Application

Steps we need to perform
1-Create procedure in database
2-Create method in AppModuleImpl to invoke procedure
3- Run AppModule to test


1-Create procedure in database
        First we need to create procedure in database
        i have created the following procedure in HR Schema




2-Create method in AppModuleImpl to invoke procedure

    Second we need to write a method in AppModuleImpl class to invoke the DB Procedure for that we need
1-go to AppModuleImple class and create method




                           


2- add method to application module client interface



3- Run AppModule to test
       just run your AppModule
       1- Double click on AppModule
       2- Pass parameter value
       3- and click on Execute

Groovy Examples in ADF (current date , current date and time)


today i will show you some Groovy Examples


Note:- For this post i am using Department and Employees tables of HR Schema (oracle database 11g)
       
Examples
1- to get current date   (adf.currentDate)
2- to get current date and time   (adf.currentDateTime)




1- to get current date
    to get current date using groovy you need to perform the following steps
    i) create a transient attribute with Date datatype in Departments view object.
    ii) write the following groovy in Expression  (adf.currentDate)




1- to get current date and time 
    to get current date and time using groovy you need to perform the following steps
    i) create a transient attribute with Date datatype in Departments view object.
    ii) write the following groovy in Expression  (adf.currentDateTime)    



Groovy Examples in ADF (count and sum examples using groovy)

Hello 

In this post i will show you how to perform count and sum using groovy



Note:- For this post i am using Department and Employees tables of HR Schema (oracle database 11g)

Examples
1-count employees department wise (adf.object.EmployeesView.count("EmployeeId"))
2-department wise employees salary sum (adf.object.EmployeesView.sum("Salary"))


1-count employees department wise
    As we know there is relationship  between Departments and Employees table (DepartmentID refer in Employees Table)
this relation in ADF is known as View Link 
so by using this view link we can access EmployeesViewObjecs attributes in DepartmentViewObject
we just need accessor name to access attributes
to get accessor name we need to perform the following setps

1-open view link definition file
2-click on Edit accessors
3- copy the employees view object accessor name



4-go to Departments view object and create a new transient attribute
5-and append  adf.object (it means the current object ) before accessor name and .count  (count is the mehtod name) after accessor name
following is the complete groovy
     adf.object.EmployeesView.count("EmployeeId")




2-department wise employees salary sum
    Secondly if you want department wise salary sum
   you need to perform the following steps
   1-perform first 3 steps that describe above
   2-create transient attribute in Department view object and set Type BigDecimal
   2- write the following groovy in Expression of transient attribute

    adf.object.EmployeesView.sum("Salary")

Groovy Examples in ADF (column sum using Groovy)

Hello 

In this post i'll show you how we can add total of a column in table using Groovy

To show total we need
1- create transient attribute in employees view object and set Type BigDecimal
2-write the following groovy in expression
object.getRowSet().sum('Salary')


3-create a .jsf page and drag and drop employees view object on .jsf page as table
To show footer you need to do the following steps

from structure window right click on salary column go to Facets-Column and select Footer from small window


4-create attribute value
to create attribute value we need to go page bindings
click on green plus button
from insert Item window select AttributeValues and click ok



5-create attribute binding
when we click on OK a new window will appear name as create attribute Binding
select data source and attribute according to following image and click ok

6- finally we need to assign footer value
go back to page Design tab
from component palette  drag and drop output text on footer
select output text and write expression according to image








Dynamic Menus in ADF

Hi everyone this tutorial is about, how we can create menus dynamically in ADF


For this post i am using jdeveloper 11.1.2.3.0

1 ) First you need to create a table in database and insert data


2) Create two Query Base VO in ADF Application
after that create view link between Main_menu VO and Sub_menu VO
For creating view link select MId from Main_menu and select ParentId from Sub_menu





3 ) Then create a Home.jsf page and then drag and drop Menu bar on it from components then af:iterator drop on Menu bar , then  drop Menu on  the iterator then again drop af:iterator on Menu and then MenuItem on the second af:iterator , the structure of the jsf page shows in the next pic , try to create the same jsf page like the following structure



4 ) Now go to the Bindings of jsf page
click on green + icon of Bindings part ..
From the InsertItem window select tree and hit ok

After clicking the ok a new window will appear name as "Create Tree Binding"
click on Add button


Then from the "Add Data Source " window select Main_menu1 and click ok

Then click on the green + icon and click on AddRule


Then Select MId and MName as Display as Display Attributes
Again Click on green + icon and then click on AddRule and select select sub_menu, and select all the attributes as Display Attributes


After adding tree item your jsf page Bindings will be looks like this

Now go to Structure window select first af:iterator and set its value
to set the iterator value
clikc on Expression Builder of Value attribute , then open Bindings , then open Main_menu1 and select collectionModel

then set the value 'M' of var attribute  (properties of first iterator)


Then select the af:menu from Structure window and set Text property with the following value

#{M.MName}


until now if you Run your Home.jsf page , the Main Menu will print on screen

To set the value of second iterator , first we need to get the accessor name of Sub_menu
to get the accessor name open the view link 'Main_sub_VL' that we have created between Main_menu and Sub_menu , click on Relationship tab , click on Edit accessor and copy the name of the accessor

and write the following expression in the value property of second af:iterator
also write 'S' for var property


Select the af:commandMenuItem from the Structure window and write the following expression int 'Text' property  #{S.MName}

Now Run your Home.jsf page and see the Results , it will be

Second Part

Now to get the path of jsff or jsf pages by clicking on Menu item

Select the af:commandMenuItem from structure window and  drop a attribute from component palette on it.

write the name of attribute 'P'
and write the following expression in value  #{S.MPath}

Then select af:commandMenuItem from structure window and create a ActionListener binding with a request scope been (in this example the been name is MenuBeen)

Edit your data base table and save the path in M_Path attribute , for this example i just saving a string


Open your MenuBeen and write the following code

Run your Home.jsf page click on SALE RTN menu and see the result on console