public static CellSetData Deserialize(String str) { if (!String.IsNullOrEmpty(str)) { StringReader str_reader = new StringReader(str); XmlReader reader = XmlReader.Create(str_reader); return(CellSetData.Deserialize(reader)); } else { return(null); } }
private void AddKpiRowToStorage(CellSetData cs_descr) { if (cs_descr.Axes.Count > 0) { if (cs_descr.Cells.Count > 1 && cs_descr.Cells[0].Value != null && !m_KpiStorage.ContainsKey(cs_descr.Cells[0].Value.Value.ToString())) { var row = new KpiView(); string key = cs_descr.Cells[0].Value.Value.ToString(); row.Caption = key; double num; row.KpiValue = cs_descr.Cells.Count > 1 && double.TryParse(cs_descr.Cells[1].Value.Value.ToString(), out num) ? num : double.NaN; double num1; row.KpiGoal = cs_descr.Cells.Count > 2 && double.TryParse(cs_descr.Cells[2].Value.Value.ToString(), out num1) ? num1 : double.NaN; double num2; row.KpiVariance = cs_descr.Cells.Count > 3 && double.TryParse(cs_descr.Cells[3].Value.Value.ToString(), out num2) ? num2 : double.NaN; row.KpiStatus = cs_descr.Cells.Count > 4 ? cs_descr.Cells[4].Value.Value.ToString() : String.Empty; row.KpiTrend = cs_descr.Cells.Count > 5 ? cs_descr.Cells[5].Value.Value.ToString() : String.Empty; row.KpiWeight = cs_descr.Cells.Count > 6 ? cs_descr.Cells[6].Value.Value.ToString() : String.Empty; m_KpiStorage.Add(key, row); } } if (this.RowIndex > -1) { this.RowIndex = this.ExecuteQueryForRow(++this.RowIndex); } }
public CellSetDataProvider(CellSetData cs_descr) { m_CellSet_Descr = cs_descr; }
protected virtual void Initialize(CellSetData cs_descr) { try { Dictionary<String, SortDescriptor> axis1_sortInfo = null; Dictionary<String, SortDescriptor> axis0_sortInfo = null; if (m_CellSetProvider != null) { axis0_sortInfo = m_CellSetProvider.ColumnsSortInfo; axis1_sortInfo = m_CellSetProvider.RowsSortInfo; } ResetSettings(); IsWaiting = true; DateTime start = DateTime.Now; //System.Diagnostics.Debug.WriteLine("UpdateablePivotGrid initializing start: " + start.ToString()); m_CSDescr = cs_descr; if (cs_descr != null) { m_CellSetProvider = new CellSetDataProvider(cs_descr, DataReorganizationType); if (axis0_sortInfo != null) { foreach (var hierarchyUniqueName in axis0_sortInfo.Keys) { m_CellSetProvider.Sort(0, hierarchyUniqueName, axis0_sortInfo[hierarchyUniqueName]); } } if (axis1_sortInfo != null) { foreach (var hierarchyUniqueName in axis1_sortInfo.Keys) { m_CellSetProvider.Sort(1, hierarchyUniqueName, axis1_sortInfo[hierarchyUniqueName]); } } ImportSizeInfo(); } PivotGrid.Initialize(m_CellSetProvider); UpdateButtons(); DateTime stop = DateTime.Now; //System.Diagnostics.Debug.WriteLine("UpdateablePivotGrid initializing stop: " + stop.ToString()); System.Diagnostics.Debug.WriteLine("UpdateablePivotGrid initializing time: " + (stop - start).ToString()); } finally { IsWaiting = false; } }
void OnDatesLoaded(CellSetData cs_descr) { m_LoadedMembers.Clear(); if (cs_descr.Axes.Count > 0) { foreach (PositionData position in cs_descr.Axes[0].Positions) { if (position.Members.Count > 0) { if (!m_LoadedMembers.ContainsKey(cs_descr.Axes[0].Members[position.Members[0].Id].UniqueName)) m_LoadedMembers.Add(cs_descr.Axes[0].Members[position.Members[0].Id].UniqueName, cs_descr.Axes[0].Members[position.Members[0].Id]); } } } }
private List<MemberDataWrapper> GetMembers(CellSetData cs_descr) { List<MemberDataWrapper> result = new List<MemberDataWrapper>(); if (cs_descr != null) { // Сами элементы - по оси 0 // По оси 1 - св-ва элементов if (cs_descr.Axes.Count > 0) { int colIndex = 0; foreach (PositionData posColumn in cs_descr.Axes[0].Positions) { if (posColumn.Members.Count > 0) { MemberDataWrapper wrapper = new MemberDataWrapper(cs_descr.Axes[0].Members[posColumn.Members[0].Id]); if (cs_descr.Axes.Count > 1) { int rowIndex = 0; foreach (PositionData posRow in cs_descr.Axes[1].Positions) { if (posRow.Members.Count > 0) { PropertyData prop = new PropertyData(); prop.Name = cs_descr.Axes[1].Members[posRow.Members[0].Id].Caption; // Название свойства имеет специальный вид -IsDataMember- // В качестве названия будем использовать подстроку между символами "-" //String caption = posRow.Members[0].Caption; //if (caption.StartsWith("-") && caption.EndsWith("-")) // caption = caption.Trim('-'); // Если такого атрибута нет, то будет исключение CellData cell_descr = null; try { cell_descr = cs_descr.GetCellDescription(colIndex, rowIndex); } catch (AdomdErrorResponseException) { } if (cell_descr != null && cell_descr.Value != CellValueData.Empty && !cell_descr.Value.IsError) { prop.Value = cell_descr.Value.Value; wrapper.Member.MemberProperties.Add(prop); } } rowIndex++; } } result.Add(wrapper); } colIndex++; } } } return result; }
long GetCount(CellSetData cs_descr) { long result = 0; if (cs_descr != null) { // Сами элементы - по оси 0 // По оси 1 - св-ва элементов if (cs_descr.Axes.Count > 0) { result = cs_descr.Axes[0].Positions.Count; } //// Сами элементы - по оси 0 //// По оси 1 - св-ва элементов //if (cs_descr.Axes.Count == 1 && cs_descr.Axes[0].Positions.Count == 1 && cs_descr.Cells.Count == 1) //{ // if (cs_descr.Cells[0] != null && cs_descr.Cells[0].Value != null && cs_descr.Cells[0].Value.Value != null) // { // try // { // result = Convert.ToInt64(cs_descr.Cells[0].Value.Value); // } // catch // { // } // } //} } return result; }
void InitializeTuple(CellSetData cs_descr) { if (cs_descr != null) { CellSetDataProvider cellSetProvider = new CellSetDataProvider(cs_descr); CellInfo cell = cellSetProvider.GetCellInfo(0, 0); if (cell != null) { IDictionary<String, MemberWrap> slice = new Dictionary<String, MemberWrap>(); IDictionary<String, MemberInfo> tuple = cell.GetTuple(); foreach (String hierarchyUniqueName in tuple.Keys) { slice.Add(hierarchyUniqueName, new MemberWrap(tuple[hierarchyUniqueName])); } m_CopyControl.Initialize(slice); } } }
internal static CellSetData Deserialize(XmlReader reader) { if (reader != null) { try { if (!(reader.NodeType == XmlNodeType.Element && reader.Name == XML_CellSetData)) { reader.ReadToFollowing(XML_CellSetData); } CellSetData target = new CellSetData(); // Начало - CellSetData reader.ReadStartElement(XML_CellSetData); var data = Jayrock.Json.Conversion.JsonConvert.Import(reader.Value) as JsonArray; // Имя куба target.CubeName = data[0] != null ? data[0].ToString() : String.Empty; // Соединение var connection = data.GetArray(1); target.Connection.ConnectionID = connection[0].ToString(); target.Connection.ConnectionString = connection[1].ToString(); reader.Read(); // Оси reader.ReadStartElement("Axes"); var axes = Jayrock.Json.Conversion.JsonConvert.Import(reader.Value) as JsonArray; for (int a = 0; a < axes.Count; a++) { var axis_data = axes.GetArray(a); AxisData axis = new AxisData(); axis.AxisNum = a; // Название оси axis.Name = axis_data[0].ToString(); // Позиции var positions = axis_data.GetArray(1); for (int p = 0; p < positions.Count; p++) { var position_data = positions.GetArray(p); PositionData pos = new PositionData(); for (int m = 0; m < position_data.Count; m++) { var member_data = position_data.GetArray(m); PositionMemberData member = new PositionMemberData(Convert.ToInt32(member_data[0])); member.DrilledDown = Convert.ToBoolean(member_data[1]); pos.Members.Add(member); } axis.Positions.Add(pos); } // Названаия свойств var PropertiesNames = axis_data.GetArray(2); // Названаия пользовательских свойств var MemberPropertiesNames = axis_data.GetArray(3); // Элементы оси var members = axis_data.GetArray(4); // Варианты стиля var equalsMemberProps = axis_data.GetArray(5); // Описание стиля var equalsMemberPropertiesNames = axis_data.GetArray(6); for (int m = 0; m < members.Count; m++) { var member_data = members.GetArray(m); var Settings = member_data.GetArray(0); var PropertiesValues = member_data.GetArray(1); var MemberPropertiesValues = member_data.GetArray(2); int MemberPropertiesStyleId = Convert.ToInt32(member_data[3]); MemberData member = new MemberData(); int x = 0; member.Caption = Settings[x++].ToString(); member.Description = Settings[x++].ToString(); member.Name = Settings[x++].ToString(); member.UniqueName = Settings[x++].ToString(); member.ChildCount = Convert.ToInt32(Settings[x++].ToString()); member.DrilledDown = Convert.ToBoolean(Settings[x++].ToString()); member.LevelDepth = Convert.ToInt32(Settings[x++].ToString()); member.LevelName = Settings[x++].ToString(); member.HierarchyUniqueName = Settings[x++].ToString(); member.ParentSameAsPrevious = Convert.ToBoolean(Settings[x++].ToString()); for (int j = 0; j < PropertiesValues.Length; j++) { member.Properties.Add(new PropertyData(PropertiesNames[j].ToString(), ConvertFromJson(PropertiesValues[j]))); } for (int j = 0; j < MemberPropertiesValues.Length; j++) { member.MemberProperties.Add(new PropertyData(MemberPropertiesNames[j].ToString(), ConvertFromJson(MemberPropertiesValues[j]))); } var member_equalsPropsValues = equalsMemberProps.GetArray(MemberPropertiesStyleId); for (int k = 0; k < equalsMemberPropertiesNames.Length; k++) { var propName = equalsMemberPropertiesNames[k].ToString(); member.MemberProperties.Add(new PropertyData(propName, ConvertFromJson(member_equalsPropsValues[k]))); } axis.Members.Add(axis.Members.Count, member); } target.Axes.Add(axis); } reader.Read(); if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Axes") { reader.ReadEndElement(); } // Ячейки reader.ReadStartElement("Cells"); var strData = reader.Value; target.DeserializeData(strData); reader.Read(); if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Cells") { reader.ReadEndElement(); } // Конец - CellSetData if (reader.NodeType == XmlNodeType.EndElement && reader.Name == XML_CellSetData) { reader.ReadEndElement(); } return(target); } catch (XmlException) { throw; } } return(null); }
public CellSetData RefreshQuery(Func<MdxObject, MdxObject> objectConsumerPattern) { CellSetData res = null; if (!string.IsNullOrEmpty(Query)) { using (MdxDomProvider provider = MdxDomProvider.CreateProvider()) { StringBuilder sb = new StringBuilder(); provider.GenerateMdxFromDom(this.CreateWrappedStatement(), sb, new MdxGeneratorOptions()); String new_Query = sb.ToString(); res = ExecuteQuery(new_Query); //if (!String.IsNullOrEmpty(res)) //{ // Application[QUERY] = new_Query; //} } } else { // Пустой запрос res = new CellSetData(); } return res; }
protected virtual void Initialize(CellSetData cs_descr) { try { ResetSettings(); IsWaiting = true; DateTime start = DateTime.Now; //System.Diagnostics.Debug.WriteLine("UpdateablePivotGrid initializing start: " + start.ToString()); m_CSDescr = cs_descr; if (cs_descr != null) { m_CellSetProvider = new CellSetDataProvider(cs_descr); ImportSizeInfo(); } PivotGrid.Initialize(m_CellSetProvider); UpdateButtons(); DateTime stop = DateTime.Now; //System.Diagnostics.Debug.WriteLine("UpdateablePivotGrid initializing stop: " + stop.ToString()); System.Diagnostics.Debug.WriteLine("UpdateablePivotGrid initializing time: " + (stop - start).ToString()); } finally { IsWaiting = false; } }
internal static CellSetData Deserialize(XmlReader reader) { if (reader != null) { try { if (!(reader.NodeType == XmlNodeType.Element && reader.Name == XML_CellSetData)) { reader.ReadToFollowing(XML_CellSetData); } CellSetData target = new CellSetData(); // Начало - CellSetData reader.ReadStartElement(XML_CellSetData); var data = Jayrock.Json.Conversion.JsonConvert.Import(reader.Value) as JsonArray; // Имя куба target.CubeName = data[0] != null ? data[0].ToString() : String.Empty; // Соединение var connection = data.GetArray(1); target.Connection.ConnectionID = connection[0].ToString(); target.Connection.ConnectionString = connection[1].ToString(); reader.Read(); // Оси reader.ReadStartElement("Axes"); var axes = Jayrock.Json.Conversion.JsonConvert.Import(reader.Value) as JsonArray; for (int a = 0; a < axes.Count; a++) { var axis_data = axes.GetArray(a); AxisData axis = new AxisData(); axis.AxisNum = a; // Название оси axis.Name = axis_data[0].ToString(); // Позиции var positions = axis_data.GetArray(1); for (int p = 0; p < positions.Count; p++) { var position_data = positions.GetArray(p); PositionData pos = new PositionData(); for (int m = 0; m < position_data.Count; m++) { var member_data = position_data.GetArray(m); PositionMemberData member = new PositionMemberData(Convert.ToInt32(member_data[0])); member.DrilledDown = Convert.ToBoolean(member_data[1]); pos.Members.Add(member); } axis.Positions.Add(pos); } // Названаия свойств var PropertiesNames = axis_data.GetArray(2); // Названаия пользовательских свойств var MemberPropertiesNames = axis_data.GetArray(3); // Элементы оси var members = axis_data.GetArray(4); // Варианты стиля var equalsMemberProps = axis_data.GetArray(5); // Описание стиля var equalsMemberPropertiesNames = axis_data.GetArray(6); for (int m = 0; m < members.Count; m++) { var member_data = members.GetArray(m); var Settings = member_data.GetArray(0); var PropertiesValues = member_data.GetArray(1); var MemberPropertiesValues = member_data.GetArray(2); int MemberPropertiesStyleId = Convert.ToInt32(member_data[3]); MemberData member = new MemberData(); int x = 0; member.Caption = Settings[x++].ToString(); member.Description = Settings[x++].ToString(); member.Name = Settings[x++].ToString(); member.UniqueName = Settings[x++].ToString(); member.ChildCount = Convert.ToInt32(Settings[x++].ToString()); member.DrilledDown = Convert.ToBoolean(Settings[x++].ToString()); member.LevelDepth = Convert.ToInt32(Settings[x++].ToString()); member.LevelName = Settings[x++].ToString(); member.HierarchyUniqueName = Settings[x++].ToString(); member.ParentSameAsPrevious = Convert.ToBoolean(Settings[x++].ToString()); for (int j = 0; j < PropertiesValues.Length; j++) { member.Properties.Add(new PropertyData(PropertiesNames[j].ToString(), ConvertFromJson(PropertiesValues[j]))); } for (int j = 0; j < MemberPropertiesValues.Length; j++) { member.MemberProperties.Add(new PropertyData(MemberPropertiesNames[j].ToString(), ConvertFromJson(MemberPropertiesValues[j]))); } var member_equalsPropsValues = equalsMemberProps.GetArray(MemberPropertiesStyleId); for (int k = 0; k < equalsMemberPropertiesNames.Length; k++) { var propName = equalsMemberPropertiesNames[k].ToString(); member.MemberProperties.Add(new PropertyData(propName, ConvertFromJson(member_equalsPropsValues[k]))); } axis.Members.Add(axis.Members.Count, member); } target.Axes.Add(axis); } reader.Read(); if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Axes") { reader.ReadEndElement(); } // Ячейки reader.ReadStartElement("Cells"); var strData = reader.Value; target.DeserializeData(strData); reader.Read(); if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Cells") { reader.ReadEndElement(); } // Конец - CellSetData if (reader.NodeType == XmlNodeType.EndElement && reader.Name == XML_CellSetData) { reader.ReadEndElement(); } return target; } catch (XmlException) { throw; } } return null; }