Skip to main content

Display User Rating Icons Dynamically in Oracle APEX Report

Here I am giving an example to display user rating icons dynamically in oracle apex report.

Step 1: Create a new blank page.

Step 2: Function Call: Create a function get_user_ratings. 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_user_ratings(p_value IN NUMBER)
    RETURN VARCHAR2
  IS
    l_return     VARCHAR2 (4000);
    l_checked    VARCHAR2(240) := '<span class="fa fa-star" style="color:orange;"></span>';
    l_un_checked VARCHAR2(240) := '<span class="fa fa-star" style="color:grey;"></span>';
    l_max_value  NUMBER        := 5;
    l_remaining  NUMBER;
  BEGIN
    IF p_value BETWEEN 1 AND 5 THEN -- Check given values are in the range
      l_remaining := l_max_value - p_value;
      /* Add checked user ratings */
      FOR i IN 1..p_value
      loop
        l_return := l_return||' '||l_checked;
      END loop;
      /* Add unchecked user rating if remaining is greater than Zero */
      IF l_remaining > 0 THEN
        FOR j IN 1..l_remaining
        loop
          l_return := l_return||' '||l_un_checked;
        END loop;
      END IF;
    ELSE
      l_return := NULL;
    END IF;
    RETURN l_return;
  END get_user_ratings;
     
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, 
       get_user_ratings(user_rating) user_rating
FROM fxgn_fund_progress 
ORDER BY fund_id ASC;

Step 4: Go to report attribute user_rating 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