Javascript 使用Java脚本将anychart添加到Apex 5
我想在我的Apex应用程序上有一个100%可定制的图表。为此,我想添加一个带有Java脚本的Anychart,并使用自定义xml 我将OracleAnyChart.swf和preload.swf文件添加到共享组件->静态应用程序文件中 我在“页面加载时执行”下有此代码 我的随需应变流程“GET_BEXML”使用正确的XML设置项目BE_数据,但图表不会呈现 我试着打电话Javascript 使用Java脚本将anychart添加到Apex 5,javascript,oracle-apex-5,anychart,Javascript,Oracle Apex 5,Anychart,我想在我的Apex应用程序上有一个100%可定制的图表。为此,我想添加一个带有Java脚本的Anychart,并使用自定义xml 我将OracleAnyChart.swf和preload.swf文件添加到共享组件->静态应用程序文件中 我在“页面加载时执行”下有此代码 我的随需应变流程“GET_BEXML”使用正确的XML设置项目BE_数据,但图表不会呈现 我试着打电话 var chart = getChartById('be_chart'); chart.setData($v('BE_DAT
var chart = getChartById('be_chart');
chart.setData($v('BE_DATA'));
chart.refresh();
从一个动态操作中,我似乎无法调用动态操作范围中的任何anychart函数,它说“getCharById it not defined”
我遗漏了什么吗?您正在调用一个不存在的方法。 您需要像这样引用AnyChart对象(并且可能更改变量名,以便不覆盖原始图表对象): 实际上…
我已回复您getChartById呼叫失败的原因。
我意识到这不是真正的问题。
您是否尝试过将数据直接传递给done()回调函数?
这种方法有效。它真正伟大的地方在于,您可以返回的数据没有32K限制
-- Apex Application Process "GET_BEXML"
declare
v_limit constant pls_integer := 32767;
v_buff varchar2(32767);
v_data clob;
v_os pls_integer := 1;
v_len pls_integer := 0;
begin
v_data := get_anydata_xml_doc; -- a PL/SQL function returning your AnyData xml
v_len := dbms_lob.getlength(v_data);
while v_os < v_len
loop
dbms_lob.read(v_data, v_limit, v_os, v_buff);
htp.prn(v_buff);
v_os := v_os + v_limit;
end loop;
end;
当然,您也可以在Apex中动态创建任意数据xml clob
var mychart = AnyChart.getChartById('be_chart');
-- Apex Application Process "GET_BEXML"
declare
v_limit constant pls_integer := 32767;
v_buff varchar2(32767);
v_data clob;
v_os pls_integer := 1;
v_len pls_integer := 0;
begin
v_data := get_anydata_xml_doc; -- a PL/SQL function returning your AnyData xml
v_len := dbms_lob.getlength(v_data);
while v_os < v_len
loop
dbms_lob.read(v_data, v_limit, v_os, v_buff);
htp.prn(v_buff);
v_os := v_os + v_limit;
end loop;
end;
// "Execute when Page Loads"
var jqxhr = apex.server.process('GET_BEXML', {}, {dataType:'text'});
jqxhr.done(function(pData) {
console.log(pData.substring(1,50));
chart.setData(pData);
chart.write('container_be');
});