Hey, Dev!
Are you looking for a forum full of active developers to help you?
So if you want to:
➡️ Get answers for your development issues
➡️ Help others
➡️ Write an article
➡️ Get rewarded for your active participation
Then this place is just for you and it is 100% FREE.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Need to displayed Total in Interactive Report
afzal
STEP -1 CREATE REPORT LIKE-- select SAL AS "SALARY", NVL(COMM,0) AS "COMMISION", DEPTNO from EBA_DEMO_CHART_EMP NOTE--STATIC ID --- emp step-2 column-- SALARY HTML Expression-- <span style="display:block; min-width:110px">#SALARY#</span> static id -- SAL column-- COMMISION HTML ExpressioRead more
STEP -1
CREATE REPORT LIKE--
select
SAL AS "SALARY",
NVL(COMM,0) AS "COMMISION",
DEPTNO
from EBA_DEMO_CHART_EMP
NOTE--STATIC ID --- emp
step-2
column-- SALARY
HTML Expression-- <span style="display:block; min-width:110px">#SALARY#</span>
static id -- SAL
column-- COMMISION
HTML Expression-- <span style="display:block; min-width:110px">#COMMISION#</span>
static id-- COMM
column-- DEPTNO
HTML Expression-- <span style="display:block; min-width:110px">#DEPTNO#</span>
static id-- DEPTNO
step-3 create ajax callback process--
name--AGG_PRO
pl/sql --
DECLARE
STR VARCHAR2(3000) :='';
BEGIN
APEX_JSON.OPEN_OBJECT;
SELECT JSON_OBJECT(
'SAL' VALUE SUM(SAL),
'COMM' VALUE SUM(COMM),
'DEPTNO' VALUE SUM(DEPTNO),
'DUMMY' VALUE TO_CHAR(SUM(1))
FORMAT JSON
) INTO STR
ROM EBA_DEMO_CHART_EMP;
apex_json.write('AGG', STR);
apex_json.close_object;
apex_json.close_all;
END;
step -4 create javascrip functin "add_agg_row" and keep this function code at "Function and Global Variable Declaration"
function add_agg_row(){
if( !$('#emp tbody tr:last').hasClass('gnr_agg')){
apex.server.process( "AGG_PRO", {
x01: "test",
}, {
success: function( data ) {
// if control break exist
if ($('#emp_control_panel').length > 0){
insert_agg_rec_control_break(data);
}
else{
insert_agg_rec(data);
}
},
error: function( jqXHR, textStatus, errorThrown ) {
}
} );
}
function insert_agg_rec(data){
var obj= JSON.parse(data.AGG);
var last_rec= $('#emp tbody tr:last');
var cell_html='';
var cell_txt='';
var agg_rec ='';
last_rec.children().each(function(index,element){
if($(this).text().length ==0){
$(this).text('^');
}
});
last_rec.children().each(function(index,element){
cell_html=element.outerHTML;
//console.log($(cell_html).text());
cell_txt=$(this).text();
if (typeof obj[$(this).attr('headers')] !=='undefined'){
cell_html=cell_html.replace('min-width:110px','$$$$');
cell_html=cell_html.replace(cell_txt,obj[$(this).attr('headers')]);
cell_html=cell_html.replace('$$$$','min-width:110px');
agg_rec=agg_rec+cell_html;
}else{
cell_html=cell_html.replace(cell_txt,'');
agg_rec=agg_rec+cell_html;
}
if($(this).text() =='^'){
$(this).text('');
}
});
$('#emp tbody tr:last').after('<tr class="gnr_agg">'+agg_rec+'</tr>'); //first
$('#emp .gnr_agg').children().each(function(){
if ($(this).text().length > 0){
$(this).css("background-color","yellow");
}
});
}
//console.log($('#emp_control_panel').length);
function insert_agg_rec_control_break(data){
var obj= JSON.parse(data.AGG);
var last_rec= $('#emp tbody tr:nth-child(3)');
var cell_html='';
var cell_txt='';
var agg_rec ='',
cell_headers='';;
last_rec.children().each(function(index,element){
cell_html=element.outerHTML;
cell_txt=$(this).text();
console.log($(this).attr('headers').split(' '));
cell_headers=($(this).attr('headers').split(' '));
if (typeof obj[cell_headers[0]] !=='undefined'){
cell_html=cell_html.replace(cell_headers[1],'');
cell_html=cell_html.replace('min-width:110px','$$$$');
cell_html=cell_html.replace(cell_txt,obj[(cell_headers[0]).trim()]);
cell_html=cell_html.replace('$$$$','min-width:110px');
agg_rec=agg_rec+cell_html;
}else{
cell_html=cell_html.replace(cell_txt,'');
agg_rec=agg_rec+cell_html;
}
});
$('#emp tbody tr:last').after('<tr class="gnr_agg">'+agg_rec+'</tr>'); //last
$('#emp .gnr_agg').children().each(function(){
if ($(this).text().length > 0){
$(this).css("background-color","yellow");
}
});
}
}
step -5 keep below defined code at "Function and Global Variable Declaration"
apex.jQuery( apex.gPageContext$ ).on( "apexreadyend", function( e ) {
add_agg_row();
} );
step -6 create a dynamic action
See lessname- refresh report
event - after refresh
select type -region
region -- your report region
action- javascript code
add_agg_row();
How to change color of a particular cell in Editable Interactive Grid in Apex conditionally through Javascript
afzal
can you see o/p of console.log($(this).attr('class')); ?
can you see o/p of console.log($(this).attr('class')); ?
See lessHow to change color of a particular cell in Editable Interactive Grid in Apex conditionally through Javascript
afzal
hi, check step no.3 STEP 3.. ASSIGN CLASS NAME IN YOUR "COL1" COLUMN OF IG Appearance-->CSS Classes-->COL_1
hi,
check step no.3
STEP 3..
See lessASSIGN CLASS NAME IN YOUR "COL1" COLUMN OF IG
Appearance-->CSS Classes-->COL_1
How to change color of a particular cell in Editable Interactive Grid in Apex conditionally through Javascript
afzal
STEP 1.. ASSIGN CLASS NAME IN YOUR INTERACTIVE GRIDE Appearance-->CLASS--> highlight STEP 2.. ASSIGN CLASS NAME IN YOUR "DATA TYPE" COLUMN OF IG Appearance-->CSS Classes--> DATA_TYP STEP 3.. ASSIGN CLASS NAME IN YOUR "COL1" COLUMN OF IG Appearance-->CSS Classes-->COL_1 STEP 4.. CRERead more
STEP 1..
ASSIGN CLASS NAME IN YOUR INTERACTIVE GRIDE
Appearance-->CLASS--> highlight
STEP 2..
ASSIGN CLASS NAME IN YOUR "DATA TYPE" COLUMN OF IG
Appearance-->CSS Classes--> DATA_TYP
STEP 3..
ASSIGN CLASS NAME IN YOUR "COL1" COLUMN OF IG
Appearance-->CSS Classes-->COL_1
STEP 4..
CREATE JAVASCRIPT FUNCTION -- AND KEEP AT "Function and Global Variable Declaration"
function color_ig_cells() {
// for each cell in marked column
$('.highlight td.DATA_TYP').each(function() {
// get cell text
cellData = $(this).text();
if (cellData == 'Change_color'){
$(this).closest('tr').children().each(function(){
//console.log($(this).attr('class'));
var str=$(this).attr('class');
if (str.includes('COL_1')){
$(this).css({"color":"red"});
}
});
}
})
};
STEP 5-- CALL THIS ABOVE FUNCTION color_ig_cells() from "Execute when Page Loads" section
step 6-- create after refresh ig dynamic action and call this function "color_ig_cells()"
See lessHow to create time duration item in Oracle APEX?
afzal
STEP 1-- CREATE ITEM "P115_START_TIME" AS SELECT LIST QUERY-- select to_char(TO_DATE('01/01/2021 09:00:00','DD/MM/YYYY HH24:MI:SS') + (1/1440*(level-1)*15),'HH24:MI') d , to_char(TO_DATE('01/01/2021 09:00:00','DD/MM/YYYY HH24:MI:SS') + (1/1440*(level-1)*15),'DD/MM/YYYY HH24:MI:SS') r from dual CONNERead more
STEP 1-- CREATE ITEM "P115_START_TIME" AS SELECT LIST
QUERY--
select to_char(TO_DATE('01/01/2021 09:00:00','DD/MM/YYYY HH24:MI:SS') + (1/1440*(level-1)*15),'HH24:MI') d ,
to_char(TO_DATE('01/01/2021 09:00:00','DD/MM/YYYY HH24:MI:SS') + (1/1440*(level-1)*15),'DD/MM/YYYY HH24:MI:SS') r
from dual CONNECT BY LEVEL<97;
NOTE- Format Mask===>DD/MM/YYYY HH24:MI:SS
Display Extra Values=> NO
STEP 2-- CREATE SECOND ITEM "P115_END_TIME" AS SELECT LIST
QUERY--
select TO_CHAR(to_date(:P115_START_TIME,'DD/MM/YYYY HH24:MI:SS') + (1/1440*(level-1)*15),'HH24:MI')||
CASE WHEN (((level-1)*15))/60 >1 THEN
CASE WHEN MOD(((level-1)*15),60)> 0 THEN '( '|| FLOOR((((level-1)*15))/60)||' HOURS '|| MOD(((level-1)*15),60)||' MINUTES )'
ELSE '( '||(((level-1)*15))/60||' HOURS)'
END
ELSE
CASE WHEN ((level-1)*15)=0 THEN '( 0 MINUTES )'
ELSE
CASE WHEN MOD(((level-1)*15),60) = 0 THEN '( 1 HOURS )'
ELSE '( '||MOD(((level-1)*15),60)||' MINUTES )'
END
END
END AS DD ,
((level-1)*15) RR
from dual CONNECT BY LEVEL<97
Cascading List of Values --
See lessPARENT ITEM-- P115_START_TIME
How to create time duration item in Oracle APEX?
afzal
STEP 1-- CREATE ITEM "P115_START_TIME" AS SELECT LIST QUERY-- select to_char(TO_DATE('01/01/2021 09:00:00','DD/MM/YYYY HH:MI:SS') + (1/1440*(level-1)*15),'HH:MI AM') DISPLAY , to_char(TO_DATE('01/01/2021 09:00:00','DD/MM/YYYY HH:MI:SS') + (1/1440*(level-1)*15),'DD/MM/YYYY HH:MI AM') RETURN_VAL fromRead more
STEP 1-- CREATE ITEM "P115_START_TIME" AS SELECT LIST
QUERY--
select to_char(TO_DATE('01/01/2021 09:00:00','DD/MM/YYYY HH:MI:SS') + (1/1440*(level-1)*15),'HH:MI AM') DISPLAY ,
to_char(TO_DATE('01/01/2021 09:00:00','DD/MM/YYYY HH:MI:SS') + (1/1440*(level-1)*15),'DD/MM/YYYY HH:MI AM') RETURN_VAL
from dual CONNECT BY LEVEL<97;
NOTE- Format Mask===>DD/MM/YYYY HH:MI AM
STEP 2-- CREATE SECOND ITEM "P115_END_TIME" AS SELECT LIST
QUERY--
select TO_CHAR(TO_DATE(:P115_START_TIME,'DD/MM/YYYY HH:MI AM') + (1/1440*(level-1)*15),'HH:MI AM')||
CASE WHEN (((level-1)*15))/60 >1 THEN
CASE WHEN MOD(((level-1)*15),60)> 0 THEN '( '|| FLOOR((((level-1)*15))/60)||' HOURS '|| MOD(((level-1)*15),60)||' MINUTES )'
ELSE '( '||(((level-1)*15))/60||' HOURS)'
END
ELSE
CASE WHEN ((level-1)*15)=0 THEN '( 0 MINUTES )'
ELSE
CASE WHEN MOD(((level-1)*15),60) = 0 THEN '( 1 HOURS )'
ELSE '( '||MOD(((level-1)*15),60)||' MINUTES )'
END
END
END AS DD ,
((level-1)*15) RR //--RETURN VALUE AS YOUR REQUIREMENT
from dual CONNECT BY LEVEL<97
Cascading List of Values --
See lessPARENT ITEM-- P115_START_TIME
How to validate Cell Value in interactive Grid Oracle APEX?
afzal
step 1 assign static id for "order_value" column like "order_val" step 2 create dynamic action name-- order value validation event- change colmun- order_value action-- execute javascript var min_val = apex.item('p114_min').getValue(); var max_val = apex.item('p114_max').getValue(); var order=apex.itRead more
step 1 assign static id for "order_value" column like "order_val"
step 2 create dynamic action
name-- order value validation
event- change
colmun- order_value
action-- execute javascript
var min_val = apex.item('p114_min').getValue();
var max_val = apex.item('p114_max').getValue();
var order=apex.item("order_val");
var v_order= order.getValue();
if (v_order >= min_val && v_order <=max_val){
See lessorder.node.setCustomValidity("");
}else{
order.node.setCustomValidity("invalid number");//--customize your error message as your requirement
}
how to send an email from an IR report (APEX) attaching a Html file but sending only the selected rows in the IR.
afzal
step 1.. create a employee report with checkbox like -- select apex_item.checkbox2( p_idx => 1, p_value => EMPNO, p_attributes => 'class="empno"', p_checked_values => :P35_EMPNO, p_checked_values_delimiter => ',') CHECKBOX, ENAME,JOB,HIREDATE from EBA_DEMO_CHART_EMP step 2.. create aRead more
step 1.. create a employee report with checkbox like --
select apex_item.checkbox2(
p_idx => 1,
p_value => EMPNO,
p_attributes => 'class="empno"',
p_checked_values => :P35_EMPNO,
p_checked_values_delimiter => ',') CHECKBOX, ENAME,JOB,HIREDATE from EBA_DEMO_CHART_EMP
step 2.. create a hidden item --P35_EMPNO , and set value protected off
step 3.. create another hidden dummy employee report without checkbox name="DummyReport" like
select EMPNO,ENAME,JOB,HIREDATE from EBA_DEMO_CHART_EMP
WHERE EMPNO IN (select column_value from apex_string.split(:P35_EMPNO, ','))
SUBMIT-- P35_EMPNO
---define these setting in this report region-- to hide this report
STATIC ID= emp
custom attribute= style="display:none;"
step 4.. keep the selected row empno in "P35_EMPNO" item using dynamic action like-- 101,102,103
step 5..create a button "downloadReport" with static id "btn"
step 6.. keep javascript code like- var popup=null; "at function and global variable declartion section of the page"
step 7.. create dynamic action
name="refresh report"
event- click
selection type- button
button- "downloadReport"
action--javascript code
popup = apex.util.showSpinner( $( "#btn" ) );
apex.region('emp').refresh();
step 8.. create dynamic action
name= "open download popup"
event- after refresh
selection type- region
region--- DummyReport
action -- javascript code
popup.remove();
$('#emp_actions_menu').menu('find','irDownload').action();
How to highlight row based on condition using Classic Report
afzal
create a dynamic action "after refresh" report region action == execute javascript code like– //– replace your conditional column with HIREDATE $(‘.emp [headers=”HIREDATE”]’).each(function(index,element){ var x= element.innerHTML; //console.log($(element).children().attr(‘data-id’)); var text= parseRead more
create a dynamic action
"after refresh" report region
action == execute javascript code
like–
//– replace your conditional column with HIREDATE
$(‘.emp [headers=”HIREDATE”]’).each(function(index,element){
var x= element.innerHTML;
//console.log($(element).children().attr(‘data-id’));
var text= parseInt($(element).children().attr(‘data-id’));
if (text > 1){
See less$(this).closest(“tr”).children().css({“background-color”:”red”});
}
});
How to highlight row based on condition using Classic Report
afzal
step 1--- report query like-- select EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO, to_date(to_char(sysdate,'dd-mm-yyyy'),'dd-mm-yyyy')-to_date(to_char(HIREDATE,'dd-mm-yyyy'),'dd-mm-yyyy') as dummy from EBA_DEMO_CHART_EMP step-2 column-name-- HIREDATE KEEP HTML EXPRESSION LIKE -- <span dataRead more
step 1---
report query like--
select EMPNO,
ENAME,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO,
to_date(to_char(sysdate,'dd-mm-yyyy'),'dd-mm-yyyy')-to_date(to_char(HIREDATE,'dd-mm-yyyy'),'dd-mm-yyyy') as dummy
from EBA_DEMO_CHART_EMP
step-2 column-name-- HIREDATE
KEEP HTML EXPRESSION LIKE -- <span data-id=#DUMMY#>#HIREDATE#</span>
step-3 make dummy column as hidden column
step-4
give class name for your report like– emp
at report region , appearance section “CSS Classes” => emp
step-5
create a dynamic action at page load
action == execute javascript code
like–
//– replace your conditional column with HIREDATE
$('.emp [headers="HIREDATE"]').each(function(index,element){
var x= element.innerHTML;
//console.log($(element).children().attr('data-id'));
var text= parseInt($(element).children().attr('data-id'));
if (text > 1){
See less$(this).closest("tr").children().css({"background-color":"red"});
}
});