Skip to content

Commit 3c5f21c

Browse files
better example, protocol merge with latest MDX2JSON
1 parent 460e676 commit 3c5f21c

2 files changed

Lines changed: 28 additions & 12 deletions

File tree

example/index.html

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,38 @@
1616
<body>
1717
<div id="pivot" style="position: fixed; left: 20%; top: 20%; width: 60%; height: 60%;">
1818

19+
</div>
20+
<div>Variants:
21+
<a href="#0" onclick="window.location.reload(true);">0</a>,
22+
<a href="#1" onclick="window.location.reload(true);">1</a>,
23+
<a href="#2" onclick="window.location.reload(true);">2</a>,
24+
<a href="#3" onclick="window.location.reload(true);">3</a>,
25+
<a href="#4" onclick="window.location.reload(true);">4</a>,
26+
<a href="#5" onclick="window.location.reload(true);">5</a>,
27+
<a href="#6" onclick="window.location.reload(true);">6</a>,
28+
<a href="#7" onclick="window.location.reload(true);">7</a>,
29+
<a href="#8" onclick="window.location.reload(true);">8</a>
1930
</div>
2031
<script type="text/javascript">
32+
33+
var v = parseInt(location.hash.slice(1)) || 0,
34+
req = [
35+
"SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,NON EMPTY HEAD(NONEMPTYCROSSJOIN([Outlet].[H1].[Region].Members,[Outlet].[H1].[Country].Members),2000) ON 1 FROM [HoleFoods] %FILTER [Measures].[%COUNT]",
36+
"SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,NON EMPTY [DateOfSale].[Actual].[MonthSold].&[201003].children ON 1 FROM [HoleFoods] %FILTER [DateOfSale].[Actual].[YearSold].&[2010] %FILTER [DateOfSale].[Actual].[MonthSold].&[201003] %FILTER [Measures].[%COUNT]",
37+
"SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,NON EMPTY HEAD(NONEMPTYCROSSJOIN([DateOfSale].[Actual].[YearSold].Members,[DateOfSale].[Actual].[MonthSold].Members),2000) ON 1 FROM [HoleFoods] %FILTER [Measures].[%COUNT]",
38+
"SELECT NON EMPTY NONEMPTYCROSSJOIN([Product].[P1].[Product Category].Members,[Product].[P1].[Product Name].Members) ON 0,NON EMPTY HEAD(NONEMPTYCROSSJOIN([DateOfSale].[Actual].[YearSold].Members,[DateOfSale].[Actual].[MonthSold].Members),2000) ON 1 FROM [HoleFoods] %FILTER [Measures].[%COUNT]",
39+
"SELECT NON EMPTY NONEMPTYCROSSJOIN(NONEMPTYCROSSJOIN([Product].[P1].[Product Category].Members,[Product].[P1].[Product Name].Members),{%LABEL([Measures].[%COUNT],\"Кол-во\",\"\"),[Measures].[Units Sold]}) ON 0,NON EMPTY HEAD(NONEMPTYCROSSJOIN([DateOfSale].[Actual].[YearSold].Members,[DateOfSale].[Actual].[MonthSold].Members),2000) ON 1 FROM [HoleFoods]",
40+
"SELECT {[Measures].[%COUNT]} ON 0 FROM [HoleFoods] %FILTER [Measures].[%COUNT]",
41+
"SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,{[Measures].[%COUNT]} ON 1 FROM [HoleFoods] %FILTER [Measures].[%COUNT]",
42+
"SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0, NON EMPTY [Outlet].[H1].[Region].Members ON 1 FROM [HoleFoods]",
43+
"SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,NON EMPTY [DateOfSale].[Actual].[YearSold].&[2010].children ON 1 FROM [HoleFoods] %FILTER [DateOfSale].[Actual].[YearSold].&[2010] %FILTER [Measures].[%COUNT]"
44+
][v];
45+
2146
var lp = new LightPivotTable({
2247
container: document.getElementById("pivot"), // HTMLElement which will contain table.
2348
dataSource: {
2449
MDX2JSONSource: "http://localhost:57772/SAMPLES", // MDX2JSON server address
25-
basicMDX: "SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,NON EMPTY HEAD(NONEMPTYCROSSJOIN([Outlet].[H1].[Region].Members,[Outlet].[H1].[Country].Members),2000) ON 1 FROM [HoleFoods] %FILTER [Measures].[%COUNT]"
26-
//basicMDX: "SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,NON EMPTY [DateOfSale].[Actual].[MonthSold].&[201003].children ON 1 FROM [HoleFoods] %FILTER [DateOfSale].[Actual].[YearSold].&[2010] %FILTER [DateOfSale].[Actual].[MonthSold].&[201003] %FILTER [Measures].[%COUNT]"
27-
//basicMDX: "SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,NON EMPTY HEAD(NONEMPTYCROSSJOIN([DateOfSale].[Actual].[YearSold].Members,[DateOfSale].[Actual].[MonthSold].Members),2000) ON 1 FROM [HoleFoods] %FILTER [Measures].[%COUNT]"
28-
//basicMDX: "SELECT NON EMPTY NONEMPTYCROSSJOIN([Product].[P1].[Product Category].Members,[Product].[P1].[Product Name].Members) ON 0,NON EMPTY HEAD(NONEMPTYCROSSJOIN([DateOfSale].[Actual].[YearSold].Members,[DateOfSale].[Actual].[MonthSold].Members),2000) ON 1 FROM [HoleFoods] %FILTER [Measures].[%COUNT]"
29-
//basicMDX: "SELECT NON EMPTY NONEMPTYCROSSJOIN(NONEMPTYCROSSJOIN([Product].[P1].[Product Category].Members,[Product].[P1].[Product Name].Members),{%LABEL([Measures].[%COUNT],\"Кол-во\",\"\"),[Measures].[Units Sold]}) ON 0,NON EMPTY HEAD(NONEMPTYCROSSJOIN([DateOfSale].[Actual].[YearSold].Members,[DateOfSale].[Actual].[MonthSold].Members),2000) ON 1 FROM [HoleFoods]"
30-
//basicMDX: "SELECT {[Measures].[%COUNT]} ON 0 FROM [HoleFoods] %FILTER [Measures].[%COUNT]"
31-
//basicMDX: "SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,{[Measures].[%COUNT]} ON 1 FROM [HoleFoods] %FILTER [Measures].[%COUNT]"
32-
//basicMDX: "SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0, NON EMPTY [Outlet].[H1].[Region].Members ON 1 FROM [HoleFoods]"
33-
//basicMDX: "SELECT NON EMPTY [Product].[P1].[Product Category].Members ON 0,NON EMPTY [DateOfSale].[Actual].[YearSold].&[2010].children ON 1 FROM [HoleFoods] %FILTER [DateOfSale].[Actual].[YearSold].&[2010] %FILTER [Measures].[%COUNT]"
50+
basicMDX: req
3451
}
3552
})
3653
</script>

source/js/DataSource.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ DataSource.prototype._post = function (url, data, callback) {
2424

2525
var xhr = new XMLHttpRequest();
2626
xhr.open("POST", url);
27-
//xhr.setRequestHeader("Content-Type", "application/json");
2827
xhr.onreadystatechange = function () {
2928
if (xhr.readyState === 4 && xhr.status === 200) {
3029
callback(JSON.parse(xhr.responseText));
@@ -50,8 +49,8 @@ DataSource.prototype._convert = function (data) {
5049
try {
5150
return {
5251
dimensions: [
53-
(data["Cols"][0]["tuples"][0]["children"] || [])[0],
54-
(data["Cols"][1]["tuples"][0]["children"] || [])[0]
52+
data["Cols"][0]["tuples"],
53+
data["Cols"][1]["tuples"]
5554
],
5655
dataArray: data["Data"],
5756
info: data["Info"]

0 commit comments

Comments
 (0)