Browse Source

Merge pull request #23 in FUI/fineui from ~GUY/fineui:master to master

* commit '88328fa52c631ebf8bf3618030cc42e2a72730cf':
  add
  add
  表格demo
  add
es6
guy 8 years ago
parent
commit
d2735d9d5c
  1. 1
      bi/base.js
  2. 28
      bi/case.js
  3. 8
      bi/widget.js
  4. 8
      demo/js/config/widget.js
  5. 214
      demo/js/widget/table/demo.page_table.js
  6. 159
      demo/js/widget/table/demo.sequence_table.js
  7. 1
      dist/base.js
  8. 28
      dist/case.js
  9. 8
      dist/widget.js
  10. 8
      src/case/table/table.adaptive.js
  11. 5
      src/case/table/table.dynamicsummarylayertree.js
  12. 8
      src/case/table/table.dynamicsummarytree.js
  13. 3
      src/case/table/table.layertree.js
  14. 4
      src/case/table/table.tree.js
  15. 2
      src/widget/pagetable/pagetable.js
  16. 2
      src/widget/sequencetable/sequencetable.js

1
bi/base.js

@ -17960,6 +17960,7 @@ BI.TextAreaEditor = BI.inherit(BI.Single, {
setValue: function (value) {
this.content.element.val(value);
this._checkWaterMark();
},
setStyle: function (style) {

28
bi/case.js

@ -9361,10 +9361,6 @@ BI.AdaptiveTable = BI.inherit(BI.Widget, {
regionColumnSize: [],
headerCellStyleGetter: BI.emptyFn,
summaryCellStyleGetter: BI.emptyFn,
sequenceCellStyleGetter: BI.emptyFn,
header: [],
items: [], //二维数组
@ -9401,10 +9397,6 @@ BI.AdaptiveTable = BI.inherit(BI.Widget, {
regionColumnSize: data.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: o.header,
items: o.items,
//交叉表头
@ -9586,6 +9578,8 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, {
mergeRule: BI.emptyFn,
columnSize: [],
minColumnSize: [],
maxColumnSize: [],
headerRowSize: 25,
footerRowSize: 25,
rowSize: 25,
@ -9769,9 +9763,6 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});
@ -9918,6 +9909,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, {
mergeRule: BI.emptyFn,
columnSize: [],
minColumnSize: [],
maxColumnSize: [],
headerRowSize: 25,
footerRowSize: 25,
rowSize: 25,
@ -9967,15 +9960,13 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, {
mergeRule: o.mergeRule,
columnSize: o.columnSize,
minColumnSize: o.minColumnSize,
maxColumnSize: o.maxColumnSize,
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});
@ -10427,9 +10418,6 @@ BI.LayerTreeTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});
@ -10681,10 +10669,6 @@ BI.TableTree = BI.inherit(BI.Widget, {
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});

8
bi/widget.js

@ -5222,7 +5222,7 @@ BI.DatePaneWidget = BI.inherit(BI.Widget, {
direction: "top",
element: this,
logic: {
dynamic: true
dynamic: false
},
type: "bi.navigation",
tab: this.datePicker,
@ -5250,7 +5250,7 @@ BI.DatePaneWidget = BI.inherit(BI.Widget, {
var calendar = BI.createWidget({
type: "bi.calendar",
logic: {
dynamic: true
dynamic: false
},
min: this.options.min,
max: this.options.max,
@ -12905,7 +12905,7 @@ BI.PageTable = BI.inherit(BI.Widget, {
vpage: vpage,
hpage: hpage
}, function (items, header, crossItems, crossHeader) {
self.table.setVPage ? self.table.setVPage(vpage) : self.table.setCurrentPage(vpage);
self.table.setVPage ? self.table.setVPage(vpage) : self.table.setValue(vpage);
self.table.setHPage && self.table.setHPage(hpage);
self.populate.apply(self, arguments);
});
@ -15973,7 +15973,7 @@ BI.SequenceTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
width: 60,
height: o.height - BI.GridTableScrollbar.SIZE,
height: o.height && o.height - BI.GridTableScrollbar.SIZE,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,

8
demo/js/config/widget.js

@ -13,6 +13,14 @@ Demo.WIDGET_CONFIG = [{
pId: 401,
text: "bi.responsive_table",
value: "demo.responsive_table"
}, {
pId: 401,
text: "bi.sequence_table",
value: "demo.sequence_table"
}, {
pId: 401,
text: "bi.page_table",
value: "demo.page_table"
}, {
pId: 4,
text: "bi.multi_select_combo",

214
demo/js/widget/table/demo.page_table.js

@ -0,0 +1,214 @@
Demo.Func = BI.inherit(BI.Widget, {
props: {
baseCls: "demo-func"
},
render: function () {
var items = [{
children: [{
type: "bi.page_table_cell",
text: "node1",
children: [{
type: "bi.page_table_cell",
text: "childnode1",
values: [{type: "bi.page_table_cell", text: 101}, {
type: "bi.page_table_cell",
text: 102
}, {type: "bi.page_table_cell", text: 101}, {
type: "bi.page_table_cell",
text: 102
}, {type: "bi.page_table_cell", text: 101}]
}, {
type: "bi.page_table_cell",
text: "childnode2",
values: [{type: "bi.page_table_cell", text: 201}, {
type: "bi.page_table_cell",
text: 202
}, {type: "bi.page_table_cell", text: 201}, {
type: "bi.page_table_cell",
text: 202
}, {type: "bi.page_table_cell", text: 201}]
}],
values: [{type: "bi.page_table_cell", text: 1001}, {
type: "bi.page_table_cell",
text: 1002
}, {type: "bi.page_table_cell", text: 1001}, {
type: "bi.page_table_cell",
text: 1002
}, {type: "bi.page_table_cell", text: 1001}]
}], values: [{type: "bi.page_table_cell", text: 12001}, {
type: "bi.page_table_cell",
text: 12002
}, {type: "bi.page_table_cell", text: 12001}, {
type: "bi.page_table_cell",
text: 12002
}, {type: "bi.page_table_cell", text: 12001}]
}];
var header = [{
type: "bi.page_table_cell",
text: "header1"
}, {
type: "bi.page_table_cell",
text: "header2"
}, {
type: "bi.page_table_cell",
text: "jine",
tag: 1
}, {
type: "bi.page_table_cell",
text: "jine",
tag: 2
}, {
type: "bi.page_table_cell",
text: "jine",
tag: 3
}, {
type: "bi.page_table_cell",
text: "金额汇总",
tag: 4
}, {
type: "bi.page_table_cell",
text: "金额汇总2",
tag: 5
}];
var crossHeader = [{
type: "bi.page_table_cell",
text: "cross1"
}, {
type: "bi.page_table_cell",
text: "cross2"
}];
var crossItems = [{
children: [{
type: "bi.page_table_cell",
text: "node1",
values: [1, 2, 3]
}, {
type: "bi.page_table_cell",
text: "node3",
values: [1, 2]
}],
//values: [1, 2]
}];
var table1 = BI.createWidget({
type: "bi.page_table",
el: {
type: "bi.sequence_table",
showSequence: true,
el: {
type: "bi.dynamic_summary_tree_table",
el: {
type: "bi.adaptive_table",
el: {
type: "bi.resizable_table",
el: {
type: "bi.collection_table"
}
}
},
},
sequence: {
type: "bi.sequence_table_dynamic_number"
}
},
summaryCellStyleGetter: function (isLast) {
return isLast ? {
backgroundColor: "#6495ED",
color: "#ffffff"
} : {
backgroundColor: "#B0C4DE",
color: "#ffffff"
}
},
sequenceCellStyleGetter: function (index) {
return {
backgroundColor: "#87CEEB",
color: "#ffffff"
}
},
headerCellStyleGetter: function () {
return {
backgroundColor: "#6495ED",
color: "#ffffff"
}
},
pager: {
horizontal: {
pages: false, //总页数
curr: 1, //初始化当前页, pages为数字时可用
hasPrev: function (page) {
return page > 1;
},
hasNext: function (page) {
return page < 3;
}
},
vertical: {
pages: false, //总页数
curr: 1, //初始化当前页, pages为数字时可用
hasPrev: function (page) {
return page > 1;
},
hasNext: function (page) {
return page < 3;
}
}
},
itemsCreator: function (op, populate) {
var vpage = op.vpage || "";
var hpage = op.hpage || "";
BI.each(header, function (i, h) {
h.text = h.text + "V" + vpage + "H" + hpage;
});
populate(items, header, crossItems, crossHeader);
},
width: 600,
height: 400,
columnSize: [100, 100, 100, 100, 100, 100, 100],
minColumnSize: [100, 100, 100, 100, 100, 100, 100],
isNeedMerge: true,
isNeedFreeze: true,
mergeCols: [0, 1],
mergeRule: function (col1, col2) {
if (col1 === col2) {
return true;
}
if (col1.tag && col2.tag) {
return col1.tag === col2.tag;
}
return col1 === col2;
},
freezeCols: [0, 1],
header: header,
items: items,
crossHeader: crossHeader,
crossItems: crossItems
});
// table1.populate(items, header, crossItems, crossHeader);
BI.createWidget({
type: "bi.absolute",
element: this,
items: [{
el: {
type: "bi.grid",
columns: 1,
rows: 1,
items: [[{
el: table1
}]]
},
left: 10,
right: 10,
top: 10,
bottom: 10
}]
})
}
});
BI.shortcut("demo.page_table", Demo.Func);

159
demo/js/widget/table/demo.sequence_table.js

@ -0,0 +1,159 @@
Demo.Func = BI.inherit(BI.Widget, {
props: {
baseCls: "demo-func"
},
render: function () {
var items = [{
children: [{
text: "节点1",
children: [{
text: "子节点1",
children: [{
text: "叶节点1",
values: [{text: 11}, {text: 12}, {text: 11}, {text: 12}, {text: 11}, {text: 12}, {text: 112}]
}, {
text: "叶节点2",
values: [{text: 21}, {text: 22}, {text: 21}, {text: 22}, {text: 21}, {text: 22}, {text: 122}]
}],
values: [{text: 101}, {text: 102}, {text: 101}, {text: 102}, {text: 101}, {text: 102}, {text: 1102}]
}, {
text: "子节点2",
children: [{
text: "叶节点3",
values: [{text: 31}, {text: 32}, {text: 31}, {text: 32}, {text: 31}, {text: 32}, {text: 132}]
}, {
text: "叶节点4",
values: [{text: 41}, {text: 42}, {text: 41}, {text: 42}, {text: 41}, {text: 42}, {text: 142}]
}],
values: [{text: 201}, {text: 202}, {text: 201}, {text: 202}, {text: 201}, {text: 202}, {text: 1202}]
}, {
text: "子节点3",
children: [{
text: "叶节点5",
values: [{text: 51}, {text: 52}, {text: 51}, {text: 52}, {text: 51}, {text: 52}, {text: 152}]
}],
values: [{text: 301}, {text: 302}, {text: 301}, {text: 302}, {text: 301}, {text: 302}, {text: 1302}]
}],
values: [{text: 1001}, {text: 1002}, {text: 1001}, {text: 1002}, {text: 1001}, {text: 1002}, {text: 11002}]
}, {
text: "节点2",
values: [{text: 2001}, {text: 2002}, {text: 2001}, {text: 2002}, {text: 2001}, {text: 2002}, {text: 12002}]
}],
values: [{text: 12001}, {text: 12002}, {text: 12001}, {text: 12002}, {text: 12001}, {text: 12002}, {text: 112002}]
}];
var header = [{
text: "header1"
}, {
text: "header2"
}, {
text: "header3"
}, {
text: "金额",
tag: 1
}, {
text: "金额",
tag: 2
}, {
text: "金额",
tag: 3
}, {
text: "金额",
tag: 4
}, {
text: "金额",
tag: 5
}, {
text: "金额",
tag: 6
}, {
text: "金额",
tag: 7
}];
var crossHeader = [{
text: "cross1"
}, {
text: "cross2"
}];
var crossItems = [{
children: [{
text: "节点1",
children: [{
text: "子节点1"
}, {
text: "子节点2"
}],
values: [0]
}, {
text: "节点2",
children: [{
text: "子节点3"
}, {
text: "子节点4"
}],
values: [0]
}],
values: [0]
}];
var table = BI.createWidget({
type: "bi.sequence_table",
el: {
type: "bi.tree_table",
el: {
type: "bi.adaptive_table",
el: {
type: "bi.resizable_table",
el: {
type: "bi.collection_table"
}
}
},
},
sequence: {
type: "bi.sequence_table_tree_number"
},
showSequence: true,
width: 600,
height: 400,
isNeedResize: true,
isNeedMerge: true,
mergeRule: function (row1, row2) {
return row1 === row2;
},
columnSize: [100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
minColumnSize: [100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
isNeedFreeze: true,
freezeCols: [0, 1, 2],
mergeCols: [0, 1, 2],
header: header,
items: items,
crossHeader: crossHeader,
crossItems: crossItems
});
BI.createWidget({
type: "bi.absolute",
element: this,
items: [{
el: {
type: "bi.grid",
columns: 1,
rows: 1,
items: [{
column: 0,
row: 0,
el: table
}]
},
left: 10,
right: 10,
top: 10,
bottom: 50
}]
})
}
});
BI.shortcut("demo.sequence_table", Demo.Func);

1
dist/base.js vendored

@ -17960,6 +17960,7 @@ BI.TextAreaEditor = BI.inherit(BI.Single, {
setValue: function (value) {
this.content.element.val(value);
this._checkWaterMark();
},
setStyle: function (style) {

28
dist/case.js vendored

@ -9361,10 +9361,6 @@ BI.AdaptiveTable = BI.inherit(BI.Widget, {
regionColumnSize: [],
headerCellStyleGetter: BI.emptyFn,
summaryCellStyleGetter: BI.emptyFn,
sequenceCellStyleGetter: BI.emptyFn,
header: [],
items: [], //二维数组
@ -9401,10 +9397,6 @@ BI.AdaptiveTable = BI.inherit(BI.Widget, {
regionColumnSize: data.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: o.header,
items: o.items,
//交叉表头
@ -9586,6 +9578,8 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, {
mergeRule: BI.emptyFn,
columnSize: [],
minColumnSize: [],
maxColumnSize: [],
headerRowSize: 25,
footerRowSize: 25,
rowSize: 25,
@ -9769,9 +9763,6 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});
@ -9918,6 +9909,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, {
mergeRule: BI.emptyFn,
columnSize: [],
minColumnSize: [],
maxColumnSize: [],
headerRowSize: 25,
footerRowSize: 25,
rowSize: 25,
@ -9967,15 +9960,13 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, {
mergeRule: o.mergeRule,
columnSize: o.columnSize,
minColumnSize: o.minColumnSize,
maxColumnSize: o.maxColumnSize,
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});
@ -10427,9 +10418,6 @@ BI.LayerTreeTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});
@ -10681,10 +10669,6 @@ BI.TableTree = BI.inherit(BI.Widget, {
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});

8
dist/widget.js vendored

@ -5222,7 +5222,7 @@ BI.DatePaneWidget = BI.inherit(BI.Widget, {
direction: "top",
element: this,
logic: {
dynamic: true
dynamic: false
},
type: "bi.navigation",
tab: this.datePicker,
@ -5250,7 +5250,7 @@ BI.DatePaneWidget = BI.inherit(BI.Widget, {
var calendar = BI.createWidget({
type: "bi.calendar",
logic: {
dynamic: true
dynamic: false
},
min: this.options.min,
max: this.options.max,
@ -12905,7 +12905,7 @@ BI.PageTable = BI.inherit(BI.Widget, {
vpage: vpage,
hpage: hpage
}, function (items, header, crossItems, crossHeader) {
self.table.setVPage ? self.table.setVPage(vpage) : self.table.setCurrentPage(vpage);
self.table.setVPage ? self.table.setVPage(vpage) : self.table.setValue(vpage);
self.table.setHPage && self.table.setHPage(hpage);
self.populate.apply(self, arguments);
});
@ -15973,7 +15973,7 @@ BI.SequenceTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
width: 60,
height: o.height - BI.GridTableScrollbar.SIZE,
height: o.height && o.height - BI.GridTableScrollbar.SIZE,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,

8
src/case/table/table.adaptive.js

@ -34,10 +34,6 @@ BI.AdaptiveTable = BI.inherit(BI.Widget, {
regionColumnSize: [],
headerCellStyleGetter: BI.emptyFn,
summaryCellStyleGetter: BI.emptyFn,
sequenceCellStyleGetter: BI.emptyFn,
header: [],
items: [], //二维数组
@ -74,10 +70,6 @@ BI.AdaptiveTable = BI.inherit(BI.Widget, {
regionColumnSize: data.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: o.header,
items: o.items,
//交叉表头

5
src/case/table/table.dynamicsummarylayertree.js

@ -25,6 +25,8 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, {
mergeRule: BI.emptyFn,
columnSize: [],
minColumnSize: [],
maxColumnSize: [],
headerRowSize: 25,
footerRowSize: 25,
rowSize: 25,
@ -208,9 +210,6 @@ BI.DynamicSummaryLayerTreeTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});

8
src/case/table/table.dynamicsummarytree.js

@ -25,6 +25,8 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, {
mergeRule: BI.emptyFn,
columnSize: [],
minColumnSize: [],
maxColumnSize: [],
headerRowSize: 25,
footerRowSize: 25,
rowSize: 25,
@ -74,15 +76,13 @@ BI.DynamicSummaryTreeTable = BI.inherit(BI.Widget, {
mergeRule: o.mergeRule,
columnSize: o.columnSize,
minColumnSize: o.minColumnSize,
maxColumnSize: o.maxColumnSize,
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});

3
src/case/table/table.layertree.js

@ -188,9 +188,6 @@ BI.LayerTreeTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});

4
src/case/table/table.tree.js

@ -79,10 +79,6 @@ BI.TableTree = BI.inherit(BI.Widget, {
regionColumnSize: o.regionColumnSize,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,
sequenceCellStyleGetter: o.sequenceCellStyleGetter,
header: data.header,
items: data.items
});

2
src/widget/pagetable/pagetable.js

@ -137,7 +137,7 @@ BI.PageTable = BI.inherit(BI.Widget, {
vpage: vpage,
hpage: hpage
}, function (items, header, crossItems, crossHeader) {
self.table.setVPage ? self.table.setVPage(vpage) : self.table.setCurrentPage(vpage);
self.table.setVPage ? self.table.setVPage(vpage) : self.table.setValue(vpage);
self.table.setHPage && self.table.setHPage(hpage);
self.populate.apply(self, arguments);
});

2
src/widget/sequencetable/sequencetable.js

@ -66,7 +66,7 @@ BI.SequenceTable = BI.inherit(BI.Widget, {
headerRowSize: o.headerRowSize,
rowSize: o.rowSize,
width: 60,
height: o.height - BI.GridTableScrollbar.SIZE,
height: o.height && o.height - BI.GridTableScrollbar.SIZE,
headerCellStyleGetter: o.headerCellStyleGetter,
summaryCellStyleGetter: o.summaryCellStyleGetter,

Loading…
Cancel
Save