Manual Scrollable Master Detail Page in oracle apex part-2
** Please find the previous part-1 text instruction in :
https://learnoracle21.blogspot.com/2024/01/manual-scrollable-master-detail-page-in.html
Manual Scrollable Master Detail Page in oracle apex part-2
Add a plugins named Select2 in shared component for item visualization.
Download plugins using url: http://apex.oracle.com/pls/apex/f?p=64237:20
Step-1
Create a static region names
Employee Detail Info and add a server side condition =ITEM IS NOT NUll item = P16_ID (To display the region))
add the following item in employee_Detail_info region:
P16_TEMP_ID
type=hidden value protected= no
add a dynamic action called store_temp_id:
action= execute server side code:
begin
for i in (SELECT ID,EMPLOYEE_ID,EMPLOYEE_BASIC_ID,DEPT_ID,SAL_GRA_BAS_ID,SBU_ID,UNIT_ID,DIVISSION_ID,DISTRICT_ID,THANA_ID,
DESIGNATION_ID,GRADE_ID,EMPLOYEE_TYPE_ID,SHIFT_ID,ZONE_ID,BRANCH_ID ,IS_ACTIVE,SYSTEM_DATE,service_type ,service_catagory,emp_cat,EMP_DUTY_TYPE
from EMPLOYEE_BASIC_CONTEMPORARY
where id = :P16_TEMP_ID)
loop
:P16_TEMP_EMP_ID := i.EMPLOYEE_ID;
:P16_EMP_BA_ID := i.EMPLOYEE_BASIC_ID;
:P16_TEM_DEPT_ID := i.DEPT_ID;
:P16_TEM_SALARY_BAS_ID := i.SAL_GRA_BAS_ID;
:P16_TEM_SBU_ID := i.SBU_ID;
:P16_TEM_UNIT_ID := i.UNIT_ID;
:P16_TEM_DIVISSION_ID := i.DIVISSION_ID;
:P16_TEM_DISTRICT_ID := i.DISTRICT_ID;
:P16_TEM_THANA_ID := i.THANA_ID;
:P16_TEM_DESIG_ID := i.DESIGNATION_ID;
:P16_TEMP_GRA_ID := i.GRADE_ID;
:P16_TEMP_EMP_TYPE_ID := i.EMPLOYEE_TYPE_ID;
:P16_TEMP_SHIFT_ID := i.SHIFT_ID;
:P16_TEMP_ZONE_ID := i.ZONE_ID;
:P16_TEMP_BRANCH_ID := i.BRANCH_ID;
:P16_IS_ACTIVE := i.IS_ACTIVE;
:P16_SYSTEM_DATE := i.SYSTEM_DATE;
:P16_SER_TYPE := i.service_type;
:P16_SER_CATG := i.service_catagory;
:P16_EMP_CAT := i.emp_cat;
:P16_EMP_DUTY_TYPE:=i.EMP_DUTY_TYPE;
end loop;
end;
items to submit = P16_TEMP_ID
items to return = P16_TEMP_EMP_ID,P16_EMP_BA_ID,P16_TEM_DEPT_ID,P16_TEM_SALARY_BAS_ID,P16_TEM_SBU_ID,P16_TEM_UNIT_ID,P16_TEM_DIVISSION_ID,P16_TEM_DISTRICT_ID,P16_TEM_THANA_ID,P16_TEM_DESIG_ID,P16_TEMP_GRA_ID,P16_TEMP_EMP_TYPE_ID,P16_TEMP_SHIFT_ID,P16_TEMP_ZONE_ID,P16_TEMP_BRANCH_ID,P16_IS_ACTIVE,P16_SYSTEM_DATE,P16_SER_TYPE,P16_SER_CATG,P16_EMP_CAT,P16_EMP_DUTY_TYPE
P16_EMP_BA_ID as select list
LOV= sql query:
select FAST_NAME||' '||MNAME||' '||LNAME d,ID r
from employee_basic
where id = :P16_ID;
P16_TEM_DEPT_ID
as select2 plugins
LOV= sql query:
select name,id from department_info;
P16_TEM_DESIG_ID
as select2 plugins
label= Designation
LOV= sql query:
select name,id from designation
order by grade_id;
P16_TEM_SBU_ID
as select2 plugins
label= Office
LOV= sql query:
select name,id from sbu;
P16_TEM_UNIT_ID
as select2 plugins
Label= Unit
LOV= sql query:
select name,id from unit;
P16_TEMP_GRA_ID
as select2 plugins
Label= Grade
LOV= sql query:
select G.DISPLAY_NAME , G.ID
from designation d, GRADE G
where D.GRADE_ID=G.ID
and D.ID=:P16_TEM_DESIG_ID;
Cascading List of Values:
Parent Item(s)=P16_TEM_DESIG_ID
Items to Submit=P16_TEMP_GRA_ID
Parent Required=yes
P16_TEM_DIVISSION_ID
as select2 plugins
Label= Division
LOV= sql query:
select name,id from division;
P16_TEM_DISTRICT_ID
as select2 plugins
Label= District
LOV= sql query:
select name,id from district
where DIVISION_ID=:P16_TEM_DIVISSION_ID;
Cascading List of Values:
Parent Item(s)=P16_TEM_DIVISSION_ID
Parent Required=yes
P16_TEM_THANA_ID
as select2 plugins
Label= Thana
LOV= sql query:
select name,id from thana
where DISTRICT_ID=:P12_TEM_DISTRICT_ID;
Cascading List of Values:
Parent Item(s)=P12_TEM_DISTRICT_ID
Parent Required=yes
P16_TEMP_BRANCH_ID
as select2 plugins
Label= Branch
LOV= sql query:
select name,id from branch_info;
P16_TEMP_ZONE_ID
as select2 plugins
Label= Zone
LOV= sql query:
select name,id from zone_info;
P16_EMP_DUTY_TYPE
as select2 plugins
Label= Duty Type
LOV= Static value: General-G, Shift-S.
P16_TEMP_SHIFT_ID
as select2 plugins
Label= Shift Type
LOV= sql query:
select SHIFT_NAME,SHIFT_ID
from ATT_shift_info
WHERE DUTY_TYPE=:P16_EMP_DUTY_TYPE;
Cascading List of Values:
Parent Item(s)=P16_EMP_DUTY_TYPE
Parent Required=yes
P16_SER_TYPE
as select2 plugins
Label= Service Type
LOV= Static value: In-Service - IS, Retirement=R, LPR=L, Terminate=T
P16_SER_CATG
as select2 plugins
Label= Service Category
LOV= Static value: Permanent - P, Intern=I, Temporary=T
P16_EMP_CAT
as select2 plugins
Label= Employee Category
LOV= Static value: Officer - O, Staff=S
P16_TEMP_EMP_TYPE_ID as hidden
as hidden
Default static=1
P16_TEM_SALARY_BAS_ID
as hidden
P16_IS_ACTIVE
as hidden
Default static=Y
P16_SYSTEM_DATE
as hidden default
PLSQL: sysdate
Also a sub region type interactive report named temp_view using this SQL Query:
select ID,EMPLOYEE_ID,
(select FAST_NAME||' '||MNAME||' '||LNAME "Full Name" from employee_basic where id = a.EMPLOYEE_BASIC_ID) employee,
--(select FNAME||' '||MIDLENAME||' '|| LNAME as name from EMPLOYEE_INFORMATION where id=a.EMPLOYEE_BASIC_ID) employee,
(select name from department_info where id=a.DEPT_ID) department,
(select BASIC_VALUE from salary_grade_basic where id=a.SAL_GRA_BAS_ID) "salary grade basic",
(select name from sbu where id=a.SBU_ID) sbu,
(select name from unit where id=a.UNIT_ID) unit,
(select name from division where id=a.DIVISSION_ID) division,
(select name from district where id=a.DISTRICT_ID) district,
(select name from thana where id=a.THANA_ID) thana,
(select name from designation where id=a.DESIGNATION_ID) designation,
(select name from grade where id=a.GRADE_ID) grade,
(select EMP_TYPE_DIS from employee_type where sl=a.EMPLOYEE_TYPE_ID) "employee type",
decode(service_type,'IS','In-Service','R','Retirement','L','LPR','R','RPR','T','Terminate',service_type) service_type,
decode(service_catagory, 'P','Permanent','PV','Provition', 'I','Intern','T','Temporary','D','Daly Basis',service_catagory) service_catagory,
decode(emp_cat,'O','Officer','S','Staff',emp_cat) Employee_Catagory,
decode(EMP_DUTY_TYPE,'G','General','S','Shift') "Duty TYPE",
(select SHIFT_NAME from ATT_shift_info where SHIFT_ID=a.SHIFT_ID) shift,
SYSTEM_DATE,--IS_ACTIVE,
decode(IS_ACTIVE,'Y','Is active','N','Inactive') is_active,
ZONE_ID,BRANCH_ID
from EMPLOYEE_BASIC_CONTEMPORARY a
where a.EMPLOYEE_BASIC_ID = :P16_ID
IN Employee Detail Info region:
add 4 Buttons for transaction
Button1: temp_clear
add a dynamic action name: temp_clear
event=click
selection type=button
true action=clear
Affected Elements= P16_TEMP_EMP_ID, P16_EMP_BA_ID, P16_TEM_DEPT_ID, P16_TEM_SALARY_BAS_ID, P16_TEM_SBU_ID, P16_TEM_UNIT_ID, P16_TEM_DIVISSION_ID, P16_TEM_DISTRICT_ID, P16_TEM_THANA_ID, P16_TEM_DESIG_ID, P16_TEMP_GRA_ID, P16_TEMP_EMP_TYPE_ID, P16_TEMP_SHIFT_ID, P16_TEMP_ZONE_ID, P16_TEMP_BRANCH_ID,P16_SYSTEM_DATE,P16_SER_TYPE,P16_SER_CATG,P16_EMP_CAT,P16_EMP_DUTY_TYPE
Button2: temp_insert
add a dynamic action name: temp_create
event=click
selection type=button
true action section add 4 true action
Act-1- Action= Execute Server Side Code
Language= PL-SQL Code:
begin
if :P16_TEMP_EMP_ID Is not NULL THEN
INSERT INTO EMPLOYEE_BASIC_CONTEMPORARY(
ID,
EMPLOYEE_ID,
EMPLOYEE_BASIC_ID,
DEPT_ID,
SAL_GRA_BAS_ID,
SBU_ID,
UNIT_ID,
DIVISSION_ID,
DISTRICT_ID,
THANA_ID,
DESIGNATION_ID,
GRADE_ID,
EMPLOYEE_TYPE_ID,
SHIFT_ID,
ZONE_ID,
BRANCH_ID,
SYSTEM_DATE,
IS_ACTIVE,service_type ,service_catagory,emp_cat,EMP_DUTY_TYPE,JOINING_DATE
)
VALUES(
SEQ_EMPLOYEE_BASIC_CONT.nextval,
:P16_TEMP_EMP_ID,
:P16_EMP_BA_ID,
:P16_TEM_DEPT_ID,
:P16_TEM_SALARY_BAS_ID,
:P16_TEM_SBU_ID,
:P16_TEM_UNIT_ID,
:P16_TEM_DIVISSION_ID,
:P16_TEM_DISTRICT_ID,
:P16_TEM_THANA_ID,
:P16_TEM_DESIG_ID,
:P16_TEMP_GRA_ID,
:P16_TEMP_EMP_TYPE_ID,
:P16_TEMP_SHIFT_ID,
:P16_TEMP_ZONE_ID,
:P16_TEMP_BRANCH_ID,
:P16_SYSTEM_DATE,
:P16_IS_ACTIVE,:P16_SER_TYPE,:P16_SER_CATG, :P16_EMP_CAT, :P16_EMP_DUTY_TYPE,:P16_JOINING_DATE
);
ELSE
RAISE_APPLICATION_ERROR(-29863,'Some item data is missing....!');
END IF;
end;
Items to submit= P16_TEMP_EMP_ID, P16_EMP_BA_ID, P16_TEM_DEPT_ID, P16_TEM_SALARY_BAS_ID, P16_TEM_SBU_ID, P16_TEM_UNIT_ID, P16_TEM_DIVISSION_ID, P16_TEM_DISTRICT_ID, P16_TEM_THANA_ID, P16_TEM_DESIG_ID, P16_TEMP_GRA_ID, P16_TEMP_EMP_TYPE_ID, P16_TEMP_SHIFT_ID, P16_TEMP_ZONE_ID, P16_TEMP_BRANCH_ID,P16_SER_TYPE,P16_SER_CATG,P16_EMP_CAT,P16_IS_ACTIVE,P16_SYSTEM_DATE,P16_EMP_DUTY_TYPE
* Act-2- add a dynamic action name action:clear
selection type=items
Affected Elements= P16_TEMP_EMP_ID, P16_EMP_BA_ID, P16_TEM_DEPT_ID, P16_TEM_SALARY_BAS_ID, P16_TEM_SBU_ID, P16_TEM_UNIT_ID, P16_TEM_DIVISSION_ID, P16_TEM_DISTRICT_ID, P16_TEM_THANA_ID, P16_TEM_DESIG_ID, P16_TEMP_GRA_ID, P16_TEMP_EMP_TYPE_ID, P16_TEMP_SHIFT_ID, P16_TEMP_ZONE_ID, P16_TEMP_BRANCH_ID,P16_SER_TYPE,P16_SER_CATG,P16_EMP_CAT,P16_IS_ACTIVE,P16_SYSTEM_DATE
Act-3- add a dynamic action name action:refresh
affected elements section: selection type=region
region=temp_view
Act-4- add a dynamic action name
action:submit page
Button3: temp_update
Add a dynamic action name: temp_update
true action section add 3 true action
* Act-1- Action= Execute Server Side Code
Language= PL-SQL Code:
begin
if :P16_TEMP_ID is not null then
update EMPLOYEE_BASIC_CONTEMPORARY
set
EMPLOYEE_ID = :P16_TEMP_EMP_ID,
EMPLOYEE_BASIC_ID = :P16_EMP_BA_ID,
DEPT_ID = :P16_TEM_DEPT_ID,
SAL_GRA_BAS_ID = :P16_TEM_SALARY_BAS_ID,
SBU_ID = :P16_TEM_SBU_ID,
UNIT_ID = :P16_TEM_UNIT_ID,
DIVISSION_ID = :P16_TEM_DIVISSION_ID,
DISTRICT_ID = :P16_TEM_DISTRICT_ID,
THANA_ID = :P16_TEM_THANA_ID,
DESIGNATION_ID = :P16_TEM_DESIG_ID,
GRADE_ID = :P16_TEMP_GRA_ID,
EMPLOYEE_TYPE_ID = :P16_TEMP_EMP_TYPE_ID,
SHIFT_ID = :P16_TEMP_SHIFT_ID,
ZONE_ID = :P16_TEMP_ZONE_ID,
BRANCH_ID = :P16_TEMP_BRANCH_ID,
SYSTEM_DATE = :P16_SYSTEM_DATE,
IS_ACTIVE = :P16_IS_ACTIVE,
service_type = :P16_SER_TYPE,
service_catagory = :P16_SER_CATG,
emp_cat = :P16_EMP_CAT,
EMP_DUTY_TYPE = :P16_EMP_DUTY_TYPE
where
id = :P16_TEMP_ID;
else
raise_application_error(-20456, 'this is not updated value....');
end if;
end;
items to submit= P16_TEMP_EMP_ID, P16_EMP_BA_ID, P16_TEM_DEPT_ID, P16_TEM_SALARY_BAS_ID, P16_TEM_SBU_ID, P16_TEM_UNIT_ID, P16_TEM_DIVISSION_ID, P16_TEM_DISTRICT_ID, P16_TEM_THANA_ID, P16_TEM_DESIG_ID, P16_TEMP_GRA_ID, P16_TEMP_EMP_TYPE_ID, P16_TEMP_SHIFT_ID, P16_TEMP_ZONE_ID, P16_TEMP_BRANCH_ID,P16_IS_ACTIVE,P16_SYSTEM_DATE,P16_SER_CATG,P16_SER_TYPE,P16_EMP_CAT,P16_EMP_DUTY_TYPE
* Act-2- add a dynamic action name action:clear
selection type=items
Affected Elements= P16_TEMP_EMP_ID, P16_EMP_BA_ID, P16_TEM_DEPT_ID, P16_TEM_SALARY_BAS_ID, P16_TEM_SBU_ID, P16_TEM_UNIT_ID, P16_TEM_DIVISSION_ID, P16_TEM_DISTRICT_ID, P16_TEM_THANA_ID, P16_TEM_DESIG_ID, P16_TEMP_GRA_ID, P16_TEMP_EMP_TYPE_ID, P16_TEMP_SHIFT_ID, P16_TEMP_ZONE_ID, P16_TEMP_BRANCH_ID,P16_SYSTEM_DATE,P16_SER_TYPE,P16_SER_CATG,P16_EMP_CAT
Act-3- add a dynamic action name action:refresh
affected elements section: selection type=region
region=temp_view
Button4: temp_delete
Add a dynamic action name: temp_delete
true action section add 4 true action
Act-1: Execute server side code:
begin
if :P16_TEMP_ID is not null then
delete from EMPLOYEE_BASIC_CONTEMPORARY
where id = :P16_TEMP_ID ;
end if;
end;
items to submit= P16_TEMP_ID
* Act-2- add a dynamic action name action:clear
selection type=items
Affected Elements= P16_TEMP_EMP_ID, P16_EMP_BA_ID, P16_TEM_DEPT_ID, P16_TEM_SALARY_BAS_ID, P16_TEM_SBU_ID, P16_TEM_UNIT_ID, P16_TEM_DIVISSION_ID, P16_TEM_DISTRICT_ID, P16_TEM_THANA_ID, P16_TEM_DESIG_ID, P16_TEMP_GRA_ID, P16_TEMP_EMP_TYPE_ID, P16_TEMP_SHIFT_ID, P16_TEMP_ZONE_ID, P16_TEMP_BRANCH_ID,P16_SYSTEM_DATE,P16_SER_TYPE,P16_SER_CATG,P16_EMP_CAT
Act-3- add a dynamic action name action:refresh
affected elements section: selection type=region
region=temp_view
Act-4- add a dynamic action name
action:submit page
Now save and run the page.
Comments
Post a Comment