Skip to main content

Highlight Data That Meet Certain Criteria in Oracle APEX Report

 

Here I am giving an example to highlight data when it meets certain criteria in oracle apex report.

Step 1: Create a new blank page.

Step 2: Function Call: Create a function get_data_highlighter. If you want to render it in multiple places, it would be good practice to put this code in a package and call it in your query.

Sample function in a package called FXGN_GENERAL

create or replace FUNCTION get_data_highlighter(
      p_value IN NUMBER)
    RETURN VARCHAR2
  IS
    l_return           VARCHAR2 (4000);
  BEGIN
    IF p_value    >= 95 THEN -- Very Strong
      l_return               := '<span class="t-Badge t-Badge--basic t-Badge--small is-success w100p">Very Strong</span>';
    elsif p_value >= 66 THEN -- Strong
      l_return               := '<span class="t-Badge t-Badge--basic t-Badge--small is-success w100p">Strong</span>';
    elsif p_value >= 33 THEN -- Moderate
      l_return               := '<span class="t-Badge t-Badge--basic t-Badge--small is-warning w100p">Moderate</span>';
    elsif p_value >= 10 THEN -- Weak
      l_return               := '<span class="t-Badge t-Badge--basic t-Badge--small is-danger w100p">Weak</span>';
    ELSE -- Very Weak
      l_return := '<span class="t-Badge t-Badge--basic t-Badge--small is-danger w100p">Very Weak</span>';
    END IF;
    
    RETURN l_return;
  END;
     
Step 3: Create a new classical report or interactive report (whichever you want), then your query would then look something like this,

SELECT fund_id, 
       fund_name, 
       to_char(start_date, 'DD-Mon-RRRR') start_date, 
       fxgn_general.get_data_highlighter(growth) growth
FROM fxgn_fund_progress 
ORDER BY fund_id ASC;

Step 4: Go to report attribute growth and set Escape special characters = Yes

Output: Then your output would then look like this,

The demo is here.

That's it.

Happy APEXing!!!...

Comments

Popular posts from this blog

Printing Page Numbers in RTF Template [Oracle BI Publisher]

Here I am giving an example to print the page numbers dynamically in the RTF (Rich Text Format) template. Step 1:  Go to page footer and copy and paste the below script. Page |  <?fo:page-number?>  of  <?fo:page-number-citation:xdofo:lastpage-joinseq?> <fo:page-number> :   This is the object, which is used to represent the current page-number. <?fo:page-number-citation:xdofo:lastpage-joinseq?> :  This is the syntax, which is used to represent the total number of pages. Step 2:  Load the XML and preview the result. Output: That's it. References: fo:page-number Printing Page Number Code in Oracle XMLP RTF Template

Generating the report with APEX_DATA_EXPORT

With the APEX_DATA_EXPORT package, you are able to export data from Oracle Application Express in the following file types: PDF, XLSX, HTML, CSV, XML, and JSON. Step 1: Create a table and populate it with some sample records. CREATE TABLE emp   (     empno        NUMBER,     first_name   VARCHAR2(240),     last_name    VARCHAR2(240),     mgr          NUMBER,     deptno       NUMBER,     sal          NUMBER,     created_date TIMESTAMP (6),     comm         NUMBER,     hiredate     DATE,     JOB          VARCHAR2(240),     ename        VARCHAR2(240),     PRIMARY KEY (empno) USING INDEX ENABLE   ); /    INSERT INTO emp (empno, first_name, last_name, mgr,                   deptno, sal, created_date)         VALUES                 (1, 'Larry', 'Ellison', ,                  10, 5000, LOCALTIMESTAMP);   INSERT INTO emp (empno, first_name, last_name, mgr,                   deptno, sal, created_date)         VALUES                 (2, 'Juan', 'Juan', 1,  

Save Selected Interactive Grid Records into a Collection - Oracle APEX

Here I am giving an example to save selected interactive grid records into a oracle apex collection. Step 1: Create a new blank page. Note: Mine was page 20. You will need to update reference to " P20 " with your page number if it's different. Step 2: Create a new interactive grid report region to the page using below query. Set Static Id "EmpDetails" to the region. SELECT  *     FROM   ( SELECT  emp . empno ,                emp . ename ,                emp . JOB ,                dept . dname department ,                dept . loc  LOCATION ,                mgr . ename  manager ,                emp . hiredate ,                 nvl ( emp . sal , 0 )  salary ,                 nvl ( emp . comm , 0 )  commission            FROM  eba_demo_chart_emp emp ,                eba_demo_chart_dept dept ,                eba_demo_chart_emp mgr           WHERE  emp . deptno = dept . deptno             AND  emp . mgr      = mgr . empno  ( + )           ORDER   BY  emp . ename