Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle-Apex中的动态图表区域_Oracle_Oracle Apex - Fatal编程技术网

Oracle-Apex中的动态图表区域

Oracle-Apex中的动态图表区域,oracle,oracle-apex,Oracle,Oracle Apex,在Apex中动态创建图表区域的建议方法是什么 我有一个团队表,每个团队都有一个图表区域,添加团队时应添加一个量表图表,删除团队时应删除该图表。我应用的解决方案是创建一个动态区域 在页眉中添加anychart库引用 创建用作容器的区域 创建一个pl/sql动态区域,它是上面的父区域 使用htp.p创建div 使用htp.script设置javascript代码 我使用循环和mod在每4个div处设置一个enter 结果如下: 代码如下所示: declare type v_valor is tab

在Apex中动态创建图表区域的建议方法是什么


我有一个团队表,每个团队都有一个图表区域,添加团队时应添加一个量表图表,删除团队时应删除该图表。

我应用的解决方案是创建一个动态区域

  • 在页眉中添加anychart库引用
  • 创建用作容器的区域
  • 创建一个pl/sql动态区域,它是上面的父区域
  • 使用htp.p创建div
  • 使用htp.script设置javascript代码
  • 我使用循环和mod在每4个div处设置一个enter

    结果如下:

    代码如下所示:

    declare
    type v_valor is table of number index by binary_integer;
    t_valor v_valor;
    v_index binary_integer;
    val number;
    enter varchar2(5);
    begin
    enter :='';
    t_valor(1) := 100;
    t_valor(2) := 150;
    t_valor(3) := 124;
    t_valor(4) := 159;
    t_valor(5) := 100;
    t_valor(6) := 150;
    t_valor(7) := 124;
    t_valor(8) := 159;
    v_index := t_valor.first;
    val := 0;
    ancho := (1/t_valor.last)*100;
    
    for i in 1..t_valor.last loop
    val := t_valor(v_index);  
    if mod(i,5)=0 then enter := '</br>'; end if;
    
    htp.p(''||enter||'<div id="anychart'||i||'" style="width: 330px; height:    330px; float: left; ">');
        enter :='';
    
        htp.script('
    
        anychart.onDocumentReady(function() {
    
          // create data set on our data
          var dataSet = anychart.data.set(['||val||',500]);
    
          // chart type
          var gauge = anychart.circularGauge();
    
          // set series padding
           gauge.data(dataSet).padding("4%");
    
            //axis settings
            var axis = gauge.axis()
            .radius(95)
            .width(2);
    
           //scale settings
            axis.scale()
            .minimum(0)
            .maximum(590)
            .ticks({interval: 73.75})
            .minorTicks({interval: 18.4375});
    
            //ticks settings
            axis.ticks()
            .enabled(true)
            .type(''trapezoid'')
            .length(8);
    
        //minor ticks settings
        axis.minorTicks()
        .enabled(true)
        .length("2");
    
        // second axis settings
        var axis_1 = gauge.axis(1)
        .radius(60)
        .width(3);
    
        // second scale settings
        axis_1.scale()
        .minimum(0)
        .maximum(600)
        .ticks({interval: 100})
        .minorTicks({interval: 20});
    
        // second ticks settings
        axis_1.ticks()
        .type("trapezoid")
        .length(8);
    
        // second minor ticks settings
        axis_1.minorTicks()
        .enabled(true)
        .length("3");
    
        //needle
        gauge.needle(0)
        .enabled(true)
        .startRadius(''-5%'')
        .endRadius(''80%'')
        .middleRadius(0)
        .startWidth(''0.1%'')
        .endWidth(''0.1%'')
        .middleWidth(''5%'');
    
        // marker
        gauge.marker(0)
        .axisIndex(1)
        .dataIndex(1)
        .size(7)
        .type("triangledown")
        .position("outside")
        .radius(60);
    
            // bar
            gauge.bar(0)
        .axisIndex(1)
        .position("i")
        .dataIndex(1)
        .width(3)
        .radius(60)
        .zIndex(10);
    
        //gauge label
        gauge.label()
        .text(''ALBANY'')
        .anchor(''center'') //set the position of the label
        .adjustFontSize(true)
        .hAlign(''center'')
        .offsetY(''15%'')
        .offsetX(''50%'')
        .width(''40%'')
        .height(''5%'')
        .zIndex(10);
    
      // draw chart
      gauge.container("anychart'||i||'").draw();
    });');
    htp.p('</div>');
    
    v_index := t_valor.next(v_index);
    
    end loop;
    end;
    
    声明
    v_valor类型是由二进制_整数组成的数字索引表;
    t_valor v_valor;
    v_指数二进制_整数;
    val数;
    输入varchar2(5);
    开始
    输入:='';
    t_valor(1):=100;
    t_valor(2):=150;
    t_valor(3):=124;
    t_valor(4):=159;
    t_valor(5):=100;
    t_valor(6):=150;
    t_valor(7):=124;
    t_valor(8):=159;
    v_指数:=t_valor.first;
    val:=0;
    主播:=(最后一个镜头)*100;
    对于1..t\u valor.last循环中的i
    val:=t_值(v_指数);
    如果mod(i,5)=0,则输入:='
    ';如果结束; htp.p(“| |输入| |”); 输入:=''; 脚本(' anychart.onDocumentReady(函数(){ //在我们的数据上创建数据集 var dataSet=anychart.data.set(['| | val | |',500]); //图表类型 var gauge=anychart.circularGauge(); //设置系列填充 仪表数据(数据集)。填充(“4%”; //轴设置 var轴=仪表轴() .半径(95) .宽度(2); //比例设置 轴刻度() .最低(0) .最高(590) .ticks({间隔:73.75}) .minorTicks({间隔:18.4375}); //滴答声设置 axis.ticks() .已启用(真) .类型(“梯形”) .长度(8); //小刻度设置 axis.minorTicks() .已启用(真) .长度(“2”); //第二轴设置 var轴_1=仪表轴(1) .半径(60) .宽度(3); //第二音阶设置 轴_1.刻度() .最低(0) .最高限额(600) .ticks({interval:100}) .minorTicks({间隔:20}); //第二滴答声设置 轴_1.刻度() .类型(“梯形”) .长度(8); //第二副刻度设置 轴_1.minorTicks() .已启用(真) .长度(“3”); //针头 仪表指针(0) .已启用(真) .startRadius(''-5%'') .端部半径(“80%”) .middleRadius(0) .startWidth('0.1%'') .端宽(“0.1%”) .中间宽度(“5%”); //标记 量规标记(0) .axisIndex(1) .数据索引(1) .尺寸(7) .类型(“三角形下降”) .职位(“外部”) .半径(60); //酒吧 标准杆(0) .axisIndex(1) .职位(“i”) .数据索引(1) .宽度(3) .半径(60) .zIndex(10); //仪表标签 gauge.label() .文本(“奥尔巴尼”) .anchor(“中心”)//设置标签的位置 .adjustFontSize(真) .hAlign(“中心”) .offsetY('15%'') .抵销('50%'') .宽度(“40%”) .高度('5%'') .zIndex(10); //绘制图表 gauge.container(“anychart'| | i | |'”).draw(); });'); htp.p(“”); v_指数:=t_值。下一个(v_指数); 端环; 结束;
    您能分享一下您到目前为止尝试过的代码吗?我在处理要显示的数据时刚刚添加了一个静态图表区域,当然后来我意识到必须根据团队表中现有的每个团队自动添加一个图表。我在考虑pl sql动态内容,但我不确定图表区域上是否有xml。。。