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,
Happy APEXing!!!...
Comments
Post a Comment