diff --git a/superx/xml/js/d3/viz_functions.js b/superx/xml/js/d3/viz_functions.js index 00ac6b9..657a868 100644 --- a/superx/xml/js/d3/viz_functions.js +++ b/superx/xml/js/d3/viz_functions.js @@ -50,7 +50,7 @@ this.getValueResultset = function () { { if(rsMetaData[j].colcaption==defaultValue) isDefault=true; - var o=new chartPropertyValue(rsMetaData[j].nr,rsMetaData[j].colcaption,rsMetaData[j].nr,isDefault); + var o=new chartPropertyValue(rsMetaData[j].nr,rsMetaData[j].colcaption,rsMetaData[j].colname,isDefault); valueOptions[optionCounter]=o; optionCounter++; } @@ -318,7 +318,7 @@ if(document.getElementById("viz_category_dim").value=="" || } */ var data=[]; -data=prepareData(); +//data=prepareData(); var valueLabelWidth = getCommonChartProperty("valueLabelWidth"); var fontFamily=getCommonChartProperty("fontFamily"); @@ -326,7 +326,7 @@ var gridLabelHeight = getCommonChartProperty("gridLabelHeight"); var gridChartOffset = getCommonChartProperty("gridChartOffset"); var chartWidth=getCommonChartProperty("chartWidth"); var fontSize=getCommonChartProperty("fontSize"); - +svg,data document.getElementById("chartDiv").innerHTML=""; //reset canvas var svg = d3.select("#chartDiv").append("svg") .attr("width", chartWidth) //maxBarWidth + barLabelWidth + valueLabelWidth) @@ -339,15 +339,21 @@ var svg = d3.select("#chartDiv").append("svg") switch (chartType) { - case "bar_x": +case "sample": + makeSample(); + break; +case "bar_x": + makeBarX(); + break; + case "bar_x_alt": makeBarX(svg,data); break; case "bar_y": - makeBarY(svg,data); + makeBarY(); break; case "line": - makeLine(svg,data); + makeLine(); break; default: alert("Please select a chart type"); @@ -356,7 +362,7 @@ switch (chartType) } -function makeBarX(svg,data) +function makeBarX_alt(svg,data) { var barHeight = 18; var barLabelWidth = 500; @@ -408,7 +414,7 @@ function makeBarX(svg,data) .text(d => d.name); } -function makeLine(svg,data) { +function makeLine_alt(svg,data) { var xLabel=rsMetaData[document.getElementById("viz_category_dim").value-1].colcaption; var yLabel=rsMetaData[document.getElementById("viz_measure_dim").value-1].colcaption; var fontSize=getCommonChartProperty("fontSize"); @@ -448,8 +454,122 @@ var options = { document.getElementById("chartDiv").appendChild(Plot.plot(options)); } +function makeSample() +{ + var sales = [4]; + sales = [ + {units: 10, fruit: "fig"}, + {units: 20, fruit: "date"}, + {units: 40, fruit: "plum"}, + {units: 30, fruit: "plum"} + ]; + document.getElementById("chartDiv").appendChild(Plot.dot(sales, + {x: "units", y: "fruit"} + ).plot()); + + } +function getChartOptions(categoryDim,measureDim,marksArray,chartOrientationVertical) +{ + var options; + var categoryDim=document.getElementById("viz_category_dim").value; + var measureDim=document.getElementById("viz_measure_dim").value; + var fontSizeDefault=getCommonChartProperty("fontSize"); + var chartWidth=getCommonChartProperty("chartWidth"); + var marginLeftDefault=chartWidth/5; //20% liner Rand + var marginBottomDefault=100; + var categoryLabel=getColumnCaption(categoryDim); + var measureLabel=getColumnCaption(measureDim); + + if(chartOrientationVertical) + { + options={ + marginLeft:marginLeftDefault, + marginBottom:marginBottomDefault, + fontSize:fontSizeDefault, + x: { + tickRotate: -45, + label:categoryLabel + }, + // set y axis options + y: { + grid:true, + label: measureLabel + }, + marks: marksArray + } + } + else + { + options={ + marginLeft:marginLeftDefault, + marginBottom:marginBottomDefault, + fontSize:fontSizeDefault, + y: { + label:categoryLabel + }, + x: { + tickRotate: -45, + grid:true, + label: measureLabel + }, + marks: marksArray + + } + + } + document.getElementById("chartOptions").innerHTML=JSON.stringify(options); -function makeBarY(svg,data) { + return options; +} +function makeBarX() { + var categoryDim=document.getElementById("viz_category_dim").value; + var measureDim=document.getElementById("viz_measure_dim").value; + var marksArray=new Array(); + marksArray[0]=Plot.barX(rs, + { + x: measureDim, + y: categoryDim + }); + + var options= getChartOptions(categoryDim,measureDim,marksArray,false); + + document.getElementById("chartDiv").appendChild(Plot.plot(options)); + } +function makeBarY() { + var categoryDim=document.getElementById("viz_category_dim").value; + var measureDim=document.getElementById("viz_measure_dim").value; + var marksArray=new Array(); + marksArray[0]=Plot.barY(rs, + { + y: measureDim, + x: categoryDim + }); + + var options= getChartOptions(categoryDim,measureDim,marksArray,true); + + document.getElementById("chartDiv").appendChild(Plot.plot(options)); + } +function makeLine() { + var categoryDim=document.getElementById("viz_category_dim").value; + var measureDim=document.getElementById("viz_measure_dim").value; + var marksArray=new Array(); + marksArray[0]=Plot.line(rs, + { + y: measureDim, + x: categoryDim, + curve: "linear" + }); + marksArray[1]=Plot.dot(rs, + { + y: measureDim, + x: categoryDim + }); + + var options= getChartOptions(categoryDim,measureDim,marksArray,true); + + document.getElementById("chartDiv").appendChild(Plot.plot(options)); + } +function makeBarY_alt(svg,data) { var xLabel=rsMetaData[document.getElementById("viz_category_dim").value-1].colcaption; var yLabel=rsMetaData[document.getElementById("viz_measure_dim").value-1].colcaption; var fontSize=getCommonChartProperty("fontSize"); @@ -530,7 +650,11 @@ document.getElementById("chartSrcFields").style.visibility="visible"; alert("Angezeigte Tabelle wurde in die Zwischenablage kopiert."); */ } +function showOptionsCode() +{ +document.getElementById("chartOptionsFields").style.visibility="visible"; +} function copySrcCode(mydiv) { var ergtabelle=document.getElementById(mydiv); @@ -610,3 +734,14 @@ function switchWord1and2ff(theString) ret+=" "+ word1; return ret.trim(); } + +function getColumnCaption(columnName) +{ + let rsMetaDataLen = rsMetaData.length; + var colCaption=columnName; + for (let i = 0; i < rsMetaDataLen; i++) { + if(rsMetaData[i].colname ==columnName) + colCaption=rsMetaData[i].colcaption; + } + return colCaption; +} diff --git a/superx/xml/viz_html_chart.xsl b/superx/xml/viz_html_chart.xsl index 8f8e1b9..1839a4a 100644 --- a/superx/xml/viz_html_chart.xsl +++ b/superx/xml/viz_html_chart.xsl @@ -1094,6 +1094,29 @@ this.colcaption=colcaption; this.coltype=coltype; } +function dataRow(rownr + +, + + + + + +) + { + this.rownr=rownr; + + +this. + += + + +; + + +} + var rsMetaData=new Array(); var rs= new Array(); @@ -1135,19 +1158,10 @@ rsMetaData[].colty - -rs[] = new Array(); - - +rs.push(new dataRow( - - - - - -rs[][ -]= +, ' @@ -1155,21 +1169,24 @@ rs[][ ' +null + -; + +)); - - + - +
Diagrammtyp:
Ausgabetyp:

- + +

+
- + + + + + + + + + + +