Annual Report 2023
",
}
};
var chartOptionBase = {
'chart': {
'spacingBottom': 20,
'spacingTop': 10,
'marginTop': 35,
'marginLeft': 40,
'marginBottom': 40,
'marginRight': 19,
'height': (3 / 4 * 100) - 10 + '%',
'styledMode': true // notwendig um die Styles aus den CSS zu bekommen
},
plotOptions: {
series: {
marker: {
radius: 0
}
}
},
};
var today = new Date()
// das letzte Jahr
var startday = today.getFullYear()-1 + today.toJSON().substr(5, 2) + today.toJSON().substr(8, 2)
var inputDataChart1 = {
"USD": urlBase + "/isaws/dashboard_data.do?lang=DE&hierid=2412&pos=VDBKUREFEURUSD&typ=rier&freq=D&starttime=" + startday ,
"CHF": urlBase + "/isaws/dashboard_data.do?lang=DE&hierid=2412&pos=VDBKUREFEURCHF&typ=rier&freq=D&starttime=" + startday ,
};
var chartObj1 = {
chartName: 'exchange rate EUR against USD and CHF',
xLabel: 'National currency unit per euro',
source: 'source: ECB',
sourceUrl: 'https://www.ecb.europa.eu/',
legendTrans:'VDBKUREFEURCHF:CHF;VDBKUREFEURUSD:USD',
legendEnabled: true
};
// die letzten 2 Jahre
var startday = today.getFullYear()-3 + today.toJSON().substr(5, 2) + today.toJSON().substr(8, 2)
var inputDataChart2 = {
"UDRB": urlBase + "/isaws/dashboard_data.do?lang=DE&hierid=24&pos=VDBZIUDRB&typ=rier&freq=D&starttime=" + startday,
};
var chartObj2 = {
chartName: 'average government bond yields',
xLabel: '% per annum',
source: 'source: OeNB',
sourceUrl: 'https://www.oenb.at/en',
legendTrans:'VDBZIUDRB:',
legendEnabled: false
};
// das letzten Jahre
var startday = today.getFullYear()-3 + today.toJSON().substr(5, 2) + today.toJSON().substr(8, 2)
var inputDataChart3 = {
"HVPI": urlBase+ "/isaws/dashboard_data.do?lang=DE&hierid=6&pos=VDBPLHVPIGVJ&typ=rier&freq=M&starttime=" + startday,
};
var chartObj3 = {
chartName: 'index of consumer prices',
xLabel: 'annual change in %',
source: 'source: ST.AT, Eurostat',
sourceUrl: 'https://www.statistikaustria.at',
legendTrans:'VDBPLHVPIGVJ:',
legendEnabled: false
};
var startday = today.getFullYear()-3 + today.toJSON().substr(5, 2) + today.toJSON().substr(8, 2)
var inputDataChart4 = {
"BIP": urlBase + "/isaws/dashboard_data.do?lang=DE&hierid=75&pos=VDBVR10BIPMRVJ&typ=rier&freq=Q&starttime=" + startday ,
};
var chartObj4 = {
chartName: 'gross domestic product',
xLabel: 'quarterly change in %',
source: 'source: ST.AT, WIFO',
sourceUrl: 'https://www.statistikaustria.at',
legendTrans:'VDBVR10BIPMRVJ:',
legendEnabled: false
};
preprocessChartData(inputDataChart1, chartObj1, 'container01', series01)
preprocessChartData(inputDataChart2, chartObj2, 'container02', series02)
preprocessChartData(inputDataChart3, chartObj3, 'container03', series03)
preprocessChartData(inputDataChart4, chartObj4, 'container04', series04)
function preprocessChartData(inputData, meta, container, series) {
var catsAvailable = false; // Daten werden nur einmal aus den eingelesenen Datensätzen extrahiert, auch wenn sie in allen drin sind
var categories = []; // Array der Kategorien
const urlKeys = Object.keys(inputData)
const urlValues = Object.values(inputData)
var i= 0;
for (element of urlValues) {
var key = urlKeys[i]
$.ajax({
url: urlValues[i],
dataType: 'xml',
success: function (xhr) {
var serie = {'name': '','data': [] };
timeFreq = xhr.getElementsByTagName('series')[0].getAttribute('FREQ')
poscode = xhr.getElementsByTagName('group')[0].getAttribute('POS_CODE');
requestedData = xhr.getElementsByTagName('obs');
j = 0
for (i = 0; i < requestedData.length; i++) {
if (!catsAvailable) {
categories.push(requestedData[j].getAttribute('TIME_PERIOD'));
};
serie['name'] = poscode;
legend = poscode
legendTrans = meta.legendTrans
if (meta.legendEnabled) {
if (legendTrans != '') {
legendArr = legendTrans.split(';')
for (k = 0; k < legendArr.length; k++) {
pos = legendTrans.search(legend);
if (legendArr[k].indexOf(legend) >= 0) {
var legendMap = legendArr[k].split(":");
serie.name = legendMap[1];
}
}
} else {
serie.name = legend;
}
}
datapair = [];
datapair.push(requestedData[i].getAttribute('TIME_PERIOD'));
datapair.push(parseFloat(requestedData[i].getAttribute('OBS_VALUE')));
serie['data'].push(datapair);
};
series.push(serie);
catsAvailable = true;
// umgewandelte Objekte werden in ein gemeinsames Highcharts-Property-Objekt umgewandelt
chartOptions = handleData(categories, series, container, chartIndex, meta);
mkHCChart(container, $.extend(true, chartOptions, chartOptionBase), localOptions, []);
},
complete: function () {
},
statusCode: {
404: function () {
console.log('There was a problem with the server. Try again soon!');
}
}
});
chartIndex++
i++
}
return false
}
function handleData(categories, series, div, index, meta) {
var options = {
'chart': {
'renderTo': div,
},
'title': {
'text':meta.chartName,
'align': 'left',
'x': -7,
},
'xAxis': {
'type':'category',
'labels': {
'enabled': true,
'rotation': 1,
'formatter': function() {
if (this.value.length == 10) {
returnValue = this.value.substr(8,2) + dateDelimiter + this.value.substr(5,2) + dateDelimiter + this.value.substr(2,2)
} else if (this.value.search('Q') >= 0) {
returnValue = this.value
} else {
returnValue = this.value
}
return (returnValue);
}
},
},
'yAxis': {
'title': {
'text': '',
},
'labels': {
'step': 0.5,
'formatter': function() {
// if((this.isFirst == true) || (this.isLast == true))
// {
return Highcharts.numberFormat(this.value, yDecimal)
// }
},
},
},
'tooltip': {
'shared': true,
'formatter': function () {
var retVal = '';
if (this.points[0].key.length == 10) {
cat = this.points[0].key.substr(8,2) + dateDelimiter + this.points[0].key.substr(5,2) + dateDelimiter + this.points[0].key.substr(2,2)
} else if (this.points[0].key.search('Q') >= 0) {
cat = this.points[0].key
} else {
cat = this.points[0].key
}
retVal = retVal + '
' + cat + '';
this.points.forEach(function (p, i) {
var serieName = ''
legend = p.series.name
legendTrans = meta.legendTrans
if (meta.legendEnabled) {
if (legendTrans != '') {
legendArr = legendTrans.split(';')
for (k = 0; k < legendArr.length; k++) {
pos = legendTrans.search(legend);
if (legendArr[k].indexOf(legend) >= 0) {
var legendMap = legendArr[k].split(":");
serieName = legendMap[1];
}
}
}
}
retVal = retVal + '
\u25CF ';
retVal = retVal + serieName + ' ';
retVal = retVal + '
' + Highcharts.numberFormat(p.y, yDecimal ) + '';
});
return retVal;
}
},
'legend': {
'enabled': meta.legendEnabled,
'align': 'center',
'x': 25,
'y': 5,
},
'categories': categories,
'series': series,
'credits': {'enabled': true,
'href': meta.sourceUrl,
'position': {'align': 'left',
'x': 15},
'text': meta.source},
'exporting': {'enabled': false}
};
return options;
};
});