2017-08-28 20:56:18 -05:00
|
|
|
// Copyright 2017 Baliance. All rights reserved.
|
|
|
|
//
|
2017-09-09 10:21:47 -05:00
|
|
|
// DO NOT EDIT: generated by gooxml ECMA-376 generator
|
|
|
|
//
|
2017-08-28 20:56:18 -05:00
|
|
|
// Use of this source code is governed by the terms of the Affero GNU General
|
|
|
|
// Public License version 3.0 as published by the Free Software Foundation and
|
|
|
|
// appearing in the file LICENSE included in the packaging of this file. A
|
|
|
|
// commercial license can be purchased by contacting sales@baliance.com.
|
|
|
|
|
2017-09-23 08:23:34 -05:00
|
|
|
package sml
|
2017-08-28 20:56:18 -05:00
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/xml"
|
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
"strconv"
|
|
|
|
)
|
|
|
|
|
|
|
|
type CT_PivotField struct {
|
|
|
|
// Field Name
|
|
|
|
NameAttr *string
|
|
|
|
// Axis
|
|
|
|
AxisAttr ST_Axis
|
|
|
|
// Data Field
|
|
|
|
DataFieldAttr *bool
|
|
|
|
// Custom Subtotal Caption
|
|
|
|
SubtotalCaptionAttr *string
|
|
|
|
// Show PivotField Header Drop Downs
|
|
|
|
ShowDropDownsAttr *bool
|
|
|
|
// Hidden Level
|
|
|
|
HiddenLevelAttr *bool
|
|
|
|
// Unique Member Property
|
|
|
|
UniqueMemberPropertyAttr *string
|
|
|
|
// Compact
|
|
|
|
CompactAttr *bool
|
|
|
|
// All Items Expanded
|
|
|
|
AllDrilledAttr *bool
|
|
|
|
// Number Format Id
|
|
|
|
NumFmtIdAttr *uint32
|
|
|
|
// Outline Items
|
|
|
|
OutlineAttr *bool
|
|
|
|
// Subtotals At Top
|
|
|
|
SubtotalTopAttr *bool
|
|
|
|
// Drag To Row
|
|
|
|
DragToRowAttr *bool
|
|
|
|
// Drag To Column
|
|
|
|
DragToColAttr *bool
|
|
|
|
// Multiple Field Filters
|
|
|
|
MultipleItemSelectionAllowedAttr *bool
|
|
|
|
// Drag Field to Page
|
|
|
|
DragToPageAttr *bool
|
|
|
|
// Field Can Drag to Data
|
|
|
|
DragToDataAttr *bool
|
|
|
|
// Drag Off
|
|
|
|
DragOffAttr *bool
|
|
|
|
// Show All Items
|
|
|
|
ShowAllAttr *bool
|
|
|
|
// Insert Blank Row
|
|
|
|
InsertBlankRowAttr *bool
|
|
|
|
// Server-based Page Field
|
|
|
|
ServerFieldAttr *bool
|
|
|
|
// Insert Item Page Break
|
|
|
|
InsertPageBreakAttr *bool
|
|
|
|
// Auto Show
|
|
|
|
AutoShowAttr *bool
|
|
|
|
// Top Auto Show
|
|
|
|
TopAutoShowAttr *bool
|
|
|
|
// Hide New Items
|
|
|
|
HideNewItemsAttr *bool
|
|
|
|
// Measure Filter
|
|
|
|
MeasureFilterAttr *bool
|
|
|
|
// Inclusive Manual Filter
|
|
|
|
IncludeNewItemsInFilterAttr *bool
|
|
|
|
// Items Per Page Count
|
|
|
|
ItemPageCountAttr *uint32
|
|
|
|
// Auto Sort Type
|
|
|
|
SortTypeAttr ST_FieldSortType
|
|
|
|
// Data Source Sort
|
|
|
|
DataSourceSortAttr *bool
|
|
|
|
// Auto Sort
|
|
|
|
NonAutoSortDefaultAttr *bool
|
|
|
|
// Auto Show Rank By
|
|
|
|
RankByAttr *uint32
|
|
|
|
// Show Default Subtotal
|
|
|
|
DefaultSubtotalAttr *bool
|
|
|
|
// Sum Subtotal
|
|
|
|
SumSubtotalAttr *bool
|
|
|
|
// CountA
|
|
|
|
CountASubtotalAttr *bool
|
|
|
|
// Average
|
|
|
|
AvgSubtotalAttr *bool
|
|
|
|
// Max Subtotal
|
|
|
|
MaxSubtotalAttr *bool
|
|
|
|
// Min Subtotal
|
|
|
|
MinSubtotalAttr *bool
|
|
|
|
// Product Subtotal
|
|
|
|
ProductSubtotalAttr *bool
|
|
|
|
// Count
|
|
|
|
CountSubtotalAttr *bool
|
|
|
|
// StdDev Subtotal
|
|
|
|
StdDevSubtotalAttr *bool
|
|
|
|
// StdDevP Subtotal
|
|
|
|
StdDevPSubtotalAttr *bool
|
|
|
|
// Variance Subtotal
|
|
|
|
VarSubtotalAttr *bool
|
|
|
|
// VarP Subtotal
|
|
|
|
VarPSubtotalAttr *bool
|
|
|
|
// Show Member Property in Cell
|
|
|
|
ShowPropCellAttr *bool
|
|
|
|
// Show Member Property ToolTip
|
|
|
|
ShowPropTipAttr *bool
|
|
|
|
// Show As Caption
|
|
|
|
ShowPropAsCaptionAttr *bool
|
|
|
|
// Drill State
|
|
|
|
DefaultAttributeDrillStateAttr *bool
|
|
|
|
// Field Items
|
|
|
|
Items *CT_Items
|
|
|
|
// AutoSort Scope
|
|
|
|
AutoSortScope *CT_AutoSortScope
|
|
|
|
// Future Feature Data Storage Area
|
|
|
|
ExtLst *CT_ExtensionList
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewCT_PivotField() *CT_PivotField {
|
|
|
|
ret := &CT_PivotField{}
|
|
|
|
return ret
|
|
|
|
}
|
2017-09-01 15:19:23 -05:00
|
|
|
|
2017-08-28 20:56:18 -05:00
|
|
|
func (m *CT_PivotField) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
|
|
if m.NameAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "name"},
|
|
|
|
Value: fmt.Sprintf("%v", *m.NameAttr)})
|
|
|
|
}
|
|
|
|
if m.AxisAttr != ST_AxisUnset {
|
|
|
|
attr, err := m.AxisAttr.MarshalXMLAttr(xml.Name{Local: "axis"})
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
start.Attr = append(start.Attr, attr)
|
|
|
|
}
|
|
|
|
if m.DataFieldAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dataField"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DataFieldAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.SubtotalCaptionAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "subtotalCaption"},
|
|
|
|
Value: fmt.Sprintf("%v", *m.SubtotalCaptionAttr)})
|
|
|
|
}
|
|
|
|
if m.ShowDropDownsAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showDropDowns"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.ShowDropDownsAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.HiddenLevelAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "hiddenLevel"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.HiddenLevelAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.UniqueMemberPropertyAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "uniqueMemberProperty"},
|
|
|
|
Value: fmt.Sprintf("%v", *m.UniqueMemberPropertyAttr)})
|
|
|
|
}
|
|
|
|
if m.CompactAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "compact"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.CompactAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.AllDrilledAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "allDrilled"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.AllDrilledAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.NumFmtIdAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "numFmtId"},
|
|
|
|
Value: fmt.Sprintf("%v", *m.NumFmtIdAttr)})
|
|
|
|
}
|
|
|
|
if m.OutlineAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "outline"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.OutlineAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.SubtotalTopAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "subtotalTop"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.SubtotalTopAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.DragToRowAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dragToRow"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DragToRowAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.DragToColAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dragToCol"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DragToColAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.MultipleItemSelectionAllowedAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "multipleItemSelectionAllowed"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.MultipleItemSelectionAllowedAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.DragToPageAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dragToPage"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DragToPageAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.DragToDataAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dragToData"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DragToDataAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.DragOffAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dragOff"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DragOffAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.ShowAllAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showAll"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.ShowAllAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.InsertBlankRowAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "insertBlankRow"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.InsertBlankRowAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.ServerFieldAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "serverField"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.ServerFieldAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.InsertPageBreakAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "insertPageBreak"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.InsertPageBreakAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.AutoShowAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "autoShow"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.AutoShowAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.TopAutoShowAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "topAutoShow"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.TopAutoShowAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.HideNewItemsAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "hideNewItems"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.HideNewItemsAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.MeasureFilterAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "measureFilter"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.MeasureFilterAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.IncludeNewItemsInFilterAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "includeNewItemsInFilter"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.IncludeNewItemsInFilterAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.ItemPageCountAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "itemPageCount"},
|
|
|
|
Value: fmt.Sprintf("%v", *m.ItemPageCountAttr)})
|
|
|
|
}
|
|
|
|
if m.SortTypeAttr != ST_FieldSortTypeUnset {
|
|
|
|
attr, err := m.SortTypeAttr.MarshalXMLAttr(xml.Name{Local: "sortType"})
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
start.Attr = append(start.Attr, attr)
|
|
|
|
}
|
|
|
|
if m.DataSourceSortAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dataSourceSort"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DataSourceSortAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.NonAutoSortDefaultAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "nonAutoSortDefault"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.NonAutoSortDefaultAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.RankByAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "rankBy"},
|
|
|
|
Value: fmt.Sprintf("%v", *m.RankByAttr)})
|
|
|
|
}
|
|
|
|
if m.DefaultSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "defaultSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DefaultSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.SumSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "sumSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.SumSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.CountASubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "countASubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.CountASubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.AvgSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "avgSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.AvgSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.MaxSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "maxSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.MaxSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.MinSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "minSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.MinSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.ProductSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "productSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.ProductSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.CountSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "countSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.CountSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.StdDevSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "stdDevSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.StdDevSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.StdDevPSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "stdDevPSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.StdDevPSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.VarSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "varSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.VarSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.VarPSubtotalAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "varPSubtotal"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.VarPSubtotalAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.ShowPropCellAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showPropCell"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.ShowPropCellAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.ShowPropTipAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showPropTip"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.ShowPropTipAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.ShowPropAsCaptionAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "showPropAsCaption"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.ShowPropAsCaptionAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
if m.DefaultAttributeDrillStateAttr != nil {
|
|
|
|
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "defaultAttributeDrillState"},
|
2017-09-03 21:00:35 -05:00
|
|
|
Value: fmt.Sprintf("%d", b2i(*m.DefaultAttributeDrillStateAttr))})
|
2017-08-28 20:56:18 -05:00
|
|
|
}
|
|
|
|
e.EncodeToken(start)
|
|
|
|
if m.Items != nil {
|
2017-09-10 10:02:39 -05:00
|
|
|
seitems := xml.StartElement{Name: xml.Name{Local: "ma:items"}}
|
2017-08-28 20:56:18 -05:00
|
|
|
e.EncodeElement(m.Items, seitems)
|
|
|
|
}
|
|
|
|
if m.AutoSortScope != nil {
|
2017-09-10 10:02:39 -05:00
|
|
|
seautoSortScope := xml.StartElement{Name: xml.Name{Local: "ma:autoSortScope"}}
|
2017-08-28 20:56:18 -05:00
|
|
|
e.EncodeElement(m.AutoSortScope, seautoSortScope)
|
|
|
|
}
|
|
|
|
if m.ExtLst != nil {
|
2017-09-10 10:02:39 -05:00
|
|
|
seextLst := xml.StartElement{Name: xml.Name{Local: "ma:extLst"}}
|
2017-08-28 20:56:18 -05:00
|
|
|
e.EncodeElement(m.ExtLst, seextLst)
|
|
|
|
}
|
|
|
|
e.EncodeToken(xml.EndElement{Name: start.Name})
|
|
|
|
return nil
|
|
|
|
}
|
2017-09-01 15:19:23 -05:00
|
|
|
|
2017-08-28 20:56:18 -05:00
|
|
|
func (m *CT_PivotField) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
|
|
|
|
// initialize to default
|
|
|
|
for _, attr := range start.Attr {
|
|
|
|
if attr.Name.Local == "name" {
|
|
|
|
parsed, err := attr.Value, error(nil)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.NameAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "axis" {
|
|
|
|
m.AxisAttr.UnmarshalXMLAttr(attr)
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "dataField" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DataFieldAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "subtotalCaption" {
|
|
|
|
parsed, err := attr.Value, error(nil)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.SubtotalCaptionAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "showDropDowns" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.ShowDropDownsAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "hiddenLevel" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.HiddenLevelAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "uniqueMemberProperty" {
|
|
|
|
parsed, err := attr.Value, error(nil)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.UniqueMemberPropertyAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "compact" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.CompactAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "allDrilled" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.AllDrilledAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "numFmtId" {
|
|
|
|
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
pt := uint32(parsed)
|
|
|
|
m.NumFmtIdAttr = &pt
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "outline" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.OutlineAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "subtotalTop" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.SubtotalTopAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "dragToRow" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DragToRowAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "dragToCol" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DragToColAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "multipleItemSelectionAllowed" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.MultipleItemSelectionAllowedAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "dragToPage" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DragToPageAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "dragToData" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DragToDataAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "dragOff" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DragOffAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "showAll" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.ShowAllAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "insertBlankRow" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.InsertBlankRowAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "serverField" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.ServerFieldAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "insertPageBreak" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.InsertPageBreakAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "autoShow" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.AutoShowAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "topAutoShow" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.TopAutoShowAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "hideNewItems" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.HideNewItemsAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "measureFilter" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.MeasureFilterAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "includeNewItemsInFilter" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.IncludeNewItemsInFilterAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "itemPageCount" {
|
|
|
|
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
pt := uint32(parsed)
|
|
|
|
m.ItemPageCountAttr = &pt
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "sortType" {
|
|
|
|
m.SortTypeAttr.UnmarshalXMLAttr(attr)
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "dataSourceSort" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DataSourceSortAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "nonAutoSortDefault" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.NonAutoSortDefaultAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "rankBy" {
|
|
|
|
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
pt := uint32(parsed)
|
|
|
|
m.RankByAttr = &pt
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "defaultSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DefaultSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "sumSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.SumSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "countASubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.CountASubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "avgSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.AvgSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "maxSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.MaxSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "minSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.MinSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "productSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.ProductSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "countSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.CountSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "stdDevSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.StdDevSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "stdDevPSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.StdDevPSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "varSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.VarSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "varPSubtotal" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.VarPSubtotalAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "showPropCell" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.ShowPropCellAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "showPropTip" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.ShowPropTipAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "showPropAsCaption" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.ShowPropAsCaptionAttr = &parsed
|
|
|
|
}
|
|
|
|
if attr.Name.Local == "defaultAttributeDrillState" {
|
|
|
|
parsed, err := strconv.ParseBool(attr.Value)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
m.DefaultAttributeDrillStateAttr = &parsed
|
|
|
|
}
|
|
|
|
}
|
|
|
|
lCT_PivotField:
|
|
|
|
for {
|
|
|
|
tok, err := d.Token()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
switch el := tok.(type) {
|
|
|
|
case xml.StartElement:
|
2017-09-10 10:02:39 -05:00
|
|
|
switch el.Name {
|
|
|
|
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "items"}:
|
2017-08-28 20:56:18 -05:00
|
|
|
m.Items = NewCT_Items()
|
|
|
|
if err := d.DecodeElement(m.Items, &el); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2017-09-10 10:02:39 -05:00
|
|
|
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "autoSortScope"}:
|
2017-08-28 20:56:18 -05:00
|
|
|
m.AutoSortScope = NewCT_AutoSortScope()
|
|
|
|
if err := d.DecodeElement(m.AutoSortScope, &el); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2017-09-10 10:02:39 -05:00
|
|
|
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "extLst"}:
|
2017-08-28 20:56:18 -05:00
|
|
|
m.ExtLst = NewCT_ExtensionList()
|
|
|
|
if err := d.DecodeElement(m.ExtLst, &el); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
default:
|
2017-09-01 16:52:12 -05:00
|
|
|
log.Printf("skipping unsupported element on CT_PivotField %v", el.Name)
|
2017-08-28 20:56:18 -05:00
|
|
|
if err := d.Skip(); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case xml.EndElement:
|
|
|
|
break lCT_PivotField
|
|
|
|
case xml.CharData:
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
2017-09-01 15:19:23 -05:00
|
|
|
|
|
|
|
// Validate validates the CT_PivotField and its children
|
2017-08-28 20:56:18 -05:00
|
|
|
func (m *CT_PivotField) Validate() error {
|
|
|
|
return m.ValidateWithPath("CT_PivotField")
|
|
|
|
}
|
2017-09-01 15:19:23 -05:00
|
|
|
|
|
|
|
// ValidateWithPath validates the CT_PivotField and its children, prefixing error messages with path
|
2017-08-28 20:56:18 -05:00
|
|
|
func (m *CT_PivotField) ValidateWithPath(path string) error {
|
|
|
|
if err := m.AxisAttr.ValidateWithPath(path + "/AxisAttr"); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := m.SortTypeAttr.ValidateWithPath(path + "/SortTypeAttr"); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if m.Items != nil {
|
|
|
|
if err := m.Items.ValidateWithPath(path + "/Items"); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if m.AutoSortScope != nil {
|
|
|
|
if err := m.AutoSortScope.ValidateWithPath(path + "/AutoSortScope"); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if m.ExtLst != nil {
|
|
|
|
if err := m.ExtLst.ValidateWithPath(path + "/ExtLst"); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|