internal ExcelPivotTablePageFieldSettings(XmlNamespaceManager ns, XmlNode topNode, ExcelPivotTableField field, int index) : base(ns, topNode) { Index = index; Hier = -1; _field = field; }
internal ExcelPivotTableDataField(XmlNamespaceManager ns, XmlNode topNode,ExcelPivotTableField field) : base(ns, topNode) { Index = field.Index; BaseField = 0; BaseItem = 0; Field = field; }
internal ExcelPivotTablePageFieldSettings(XmlNamespaceManager ns, XmlNode topNode, ExcelPivotTableField field, int index) : base(ns, topNode) { if (GetXmlNodeString("@hier")=="") { Hier = -1; } _field = field; }
internal ExcelPivotTableDataField(XmlNamespaceManager ns, XmlNode topNode,ExcelPivotTableField field) : base(ns, topNode) { if (topNode.Attributes.Count == 0) { Index = field.Index; BaseField = 0; BaseItem = 0; } Field = field; }
private ExcelPivotTableField AddField(eDateGroupBy groupBy,DateTime startDate, DateTime endDate,ref bool firstField) { if (firstField == false) { //Pivot field var topNode = _table.PivotTableXml.SelectSingleNode("//d:pivotFields", _table.NameSpaceManager); var fieldNode = _table.PivotTableXml.CreateElement("pivotField", ExcelPackage.schemaMain); fieldNode.SetAttribute("compact", "0"); fieldNode.SetAttribute("outline", "0"); fieldNode.SetAttribute("showAll", "0"); fieldNode.SetAttribute("defaultSubtotal", "0"); topNode.AppendChild(fieldNode); var field = new ExcelPivotTableField(_table.NameSpaceManager, fieldNode, _table, _table.Fields.Count, Index); field.DateGrouping = groupBy; XmlNode rowColFields; if (IsRowField) { rowColFields=TopNode.SelectSingleNode("../../d:rowFields", NameSpaceManager); } else { rowColFields = TopNode.SelectSingleNode("../../d:colFields", NameSpaceManager); } int fieldIndex, index = 0; foreach (XmlElement rowfield in rowColFields.ChildNodes) { if (int.TryParse(rowfield.GetAttribute("x"), out fieldIndex)) { if (_table.Fields[fieldIndex].BaseIndex == BaseIndex) { var newElement = rowColFields.OwnerDocument.CreateElement("field", ExcelPackage.schemaMain); newElement.SetAttribute("x", field.Index.ToString()); rowColFields.InsertBefore(newElement, rowfield); break; } } index++; } if (IsRowField) { _table.RowFields.Insert(field, index); } else { _table.ColumnFields.Insert(field, index); } _table.Fields.AddInternal(field); AddCacheField(field, startDate, endDate); return field; } else { firstField = false; DateGrouping = groupBy; Compact = false; SetDateGroup(groupBy, startDate, endDate); return this; } }
private void AddCacheField(ExcelPivotTableField field, DateTime startDate, DateTime endDate) { //Add Cache definition field. var cacheTopNode = _table.CacheDefinition.CacheDefinitionXml.SelectSingleNode("//d:cacheFields", _table.NameSpaceManager); var cacheFieldNode = _table.CacheDefinition.CacheDefinitionXml.CreateElement("cacheField", ExcelPackage.schemaMain); cacheFieldNode.SetAttribute("name", field.DateGrouping.ToString()); cacheFieldNode.SetAttribute("databaseField", "0"); cacheTopNode.AppendChild(cacheFieldNode); field.SetCacheFieldNode(cacheFieldNode); field.SetDateGroup(field.DateGrouping, startDate, endDate); }
private void LoadFields() { //Fields.Clear(); //int ix=0; //foreach(XmlElement fieldNode in PivotXml.SelectNodes("//d:pivotFields/d:pivotField",NameSpaceManager)) //{ // Fields.AddInternal(new ExcelPivotTableField(NameSpaceManager, fieldNode, this, ix++)); //} int index = 0; //Add fields. foreach (XmlElement fieldElem in TopNode.SelectNodes("d:pivotFields/d:pivotField", NameSpaceManager)) { var fld = new ExcelPivotTableField(NameSpaceManager, fieldElem, this, index, index++); Fields.AddInternal(fld); } //Add fields. index = 0; foreach (XmlElement fieldElem in _cacheDefinition.TopNode.SelectNodes("d:cacheFields/d:cacheField", NameSpaceManager)) { var fld = Fields[index++]; fld.SetCacheFieldNode(fieldElem); } }
internal ExcelPivotTablePageFieldSettings(XmlNamespaceManager ns, XmlNode topNode, ExcelPivotTableField field, int index) : base(ns, topNode) { if (GetXmlNodeString("@hier") == "") { Hier = -1; } _field = field; }
internal ExcelPivotTableFieldItem(XmlNamespaceManager ns, XmlNode topNode, ExcelPivotTableField field) : base(ns, topNode) { _field = field; }
private ExcelPivotTableField AddField(eDateGroupBy groupBy, DateTime startDate, DateTime endDate, ref bool firstField, int interval) { if (firstField == false) { //Pivot field var topNode = _table.PivotTableXml.SelectSingleNode("//d:pivotFields", _table.NameSpaceManager); var fieldNode = _table.PivotTableXml.CreateElement("pivotField", ExcelPackage.schemaMain); fieldNode.SetAttribute("compact", "0"); fieldNode.SetAttribute("outline", "0"); fieldNode.SetAttribute("showAll", "0"); fieldNode.SetAttribute("defaultSubtotal", "0"); topNode.AppendChild(fieldNode); var field = new ExcelPivotTableField(_table.NameSpaceManager, fieldNode, _table, _table.Fields.Count, Index); field.DateGrouping = groupBy; XmlNode rowColFields; if (IsRowField) { rowColFields = TopNode.SelectSingleNode("../../d:rowFields", NameSpaceManager); } else { rowColFields = TopNode.SelectSingleNode("../../d:colFields", NameSpaceManager); } int fieldIndex, index = 0; foreach (XmlElement rowfield in rowColFields.ChildNodes) { if (int.TryParse(rowfield.GetAttribute("x"), out fieldIndex)) { if (_table.Fields[fieldIndex].BaseIndex == BaseIndex) { var newElement = rowColFields.OwnerDocument.CreateElement("field", ExcelPackage.schemaMain); newElement.SetAttribute("x", field.Index.ToString()); rowColFields.InsertBefore(newElement, rowfield); break; } } index++; } if (IsRowField) { _table.RowFields.Insert(field, index); } else { _table.ColumnFields.Insert(field, index); } _table.Fields.AddInternal(field); AddCacheField(field, startDate, endDate, interval); return(field); } else { firstField = false; DateGrouping = groupBy; Compact = false; SetDateGroup(groupBy, startDate, endDate, interval); return(this); } }
internal ExcelPivotTableFieldItemsCollection(ExcelPivotTableField field) : base() { _field = field; _cache = field.Cache; }
/// <summary> /// Creates an instance of a <see cref="ExcelPivotTableFieldItem"/>. /// </summary> /// <param name="namespaceManager">The namespace of the worksheet.</param> /// <param name="parentNode">The xml top node.</param> /// <param name="field">The pivot table field.</param> /// <param name="value">The value of the 'x' attribute.</param> internal ExcelPivotTableFieldItem(XmlNamespaceManager namespaceManager, XmlNode parentNode, ExcelPivotTableField field, int value) : base(namespaceManager, parentNode) { if (namespaceManager == null) { throw new ArgumentNullException(nameof(namespaceManager)); } if (parentNode == null) { throw new ArgumentNullException(nameof(parentNode)); } if (field == null) { throw new ArgumentNullException(nameof(field)); } if (value < 0) { throw new ArgumentOutOfRangeException(nameof(value)); } myField = field; base.TopNode = parentNode.OwnerDocument.CreateElement("item", parentNode.NamespaceURI); var attr = parentNode.OwnerDocument.CreateAttribute("x"); base.TopNode.Attributes.Append(attr); this.X = value; }
/// <summary> /// Creates an instance of a <see cref="ExcelPivotTableFieldItem"/>. /// </summary> /// <param name="namespaceManager">The namespace of the worksheet.</param> /// <param name="topNode">The xml top node.</param> /// <param name="field">The pivot table field.</param> internal ExcelPivotTableFieldItem(XmlNamespaceManager namespaceManager, XmlNode topNode, ExcelPivotTableField field) : base(namespaceManager, topNode) { if (namespaceManager == null) { throw new ArgumentNullException(nameof(namespaceManager)); } if (topNode == null) { throw new ArgumentNullException(nameof(topNode)); } if (field == null) { throw new ArgumentNullException(nameof(field)); } myField = field; }
/// <summary> /// Creates a new <see cref="PivotTableHeader"/> object. /// </summary> /// <param name="cacheRecordsUsed">The list of cache record indices the header uses.</param> /// <param name="recordIndices">The list tuple of cacheRecord indices and pivot field item index.</param> /// <param name="field">The pivot table field.</param> /// <param name="dataFieldCollectionIndex">The index of the data field in the collection.</param> /// <param name="isGrandTotal">A value indicating if it is a grand total.</param> /// <param name="isLeafNode">A value indicating if it is a leaf node.</param> /// <param name="isDataField">A value indicating if it is a data field node.</param> /// <param name="totalType">The itemType value of the <see cref="RowColumnItem"/>.</param> /// <param name="isAboveDataField">A value indicating if it is above a data field node.</param> /// <param name="indent">The level of indentation for the items that correspond to this header.</param> public PivotTableHeader(List <int> cacheRecordsUsed, List <Tuple <int, int> > recordIndices, ExcelPivotTableField field, int dataFieldCollectionIndex, bool isGrandTotal, bool isLeafNode, bool isDataField, string totalType = null, bool isAboveDataField = false, int indent = 0) { this.UsedCacheRecordIndices = cacheRecordsUsed; this.CacheRecordIndices = recordIndices; this.PivotTableField = field; this.DataFieldCollectionIndex = dataFieldCollectionIndex; this.IsGrandTotal = isGrandTotal; this.IsLeafNode = isLeafNode; this.IsDataField = isDataField; this.IsAboveDataField = isAboveDataField; this.TotalType = totalType; this.Indent = indent; }
/// <summary> /// Creates an instance of a <see cref="ExcelPivotTableFieldCollection"/>. /// </summary> /// <param name="namespaceManager">The namespace manager.</param> /// <param name="topNode">The xml node.</param> /// <param name="table">The existing pivot table.</param> /// <param name="field">The <see cref="ExcelPivotTableField"/> of this collection.</param> public ExcelPivotTableFieldItemCollection(XmlNamespaceManager namespaceManager, XmlNode topNode, ExcelPivotTable table, ExcelPivotTableField field) : base(namespaceManager, topNode, table) { if (field == null) { throw new ArgumentNullException(nameof(field)); } this.Field = field; }