ORACLE APEX 18 JET图表动态系列



我在Apex 5中的所有图表都使用AnyChart。现在我升级到了18.2,AnyChart现在是"遗留"。所以,我想更新我的图表以使用JET图表。

我的图表使用了"PL/SQL函数体返回SQL查询"。我的PL/SQL函数体构建了我的查询动态,我显示的系列数量可能会有所不同。由于我不知道我会有多少系列,我无法在图表中设置我的系列。

这是我的PL/SQL函数体:

DECLARE
l_selected  APEX_APPLICATION_GLOBAL.VC_ARR2;
l_sql       VARCHAR2(4000) := '';
BEGIN
--
-- Convert the colon separated string of values into a PL/SQL array 
l_sql := l_sql || 'SELECT NULL       link  ';
l_sql := l_sql || '      ,year_month label ';
l_selected := APEX_UTIL.STRING_TO_TABLE(:P16_SELECT_LIST);
--
-- Loop over array to insert department numbers and sysdate
IF l_selected.count = 0 THEN
l_sql := l_sql || '      ,NULL "no data" ';
ELSE
FOR i IN 1..l_selected.count LOOP
l_sql := l_sql || ',MIN(DECODE(sqn, '''||l_selected(i)||''', srt_cnt, NULL)) "'||l_selected(i)|| CASE WHEN REGEXP_LIKE(TRIM(l_selected(i)), '^[[:digit:]]') THEN ' Sqn' ELSE NULL END||'"';
END LOOP;
END IF;
l_sql := l_sql || '  FROM flight_and_mmh t ';
l_sql := l_sql || ' WHERE snapshot_fk = :P27_SNAPSHOT_LIST ';
l_sql := l_sql || '   AND INSTR('':'' || :P16_SELECT_LIST || '':'' , '':'' || sqn || '':'') > 0 ';
l_sql := l_sql || ' GROUP BY t.year_month ';
l_sql := l_sql || ' ORDER BY t.year_month ';
RETURN l_sql;
END;

我的系列的列映射

现在apex中的多个系列不需要使用动态sql。

  1. 在系列区域中选择:系列=>源=>区域源

  2. 然后将您的sql查询放入主区域源代码中。

  3. 回到系列=>列映射中,您需要选择查询的相应列的VALUELABELseries NAME

最新更新