void initPivotGridButton_Click(object sender, RoutedEventArgs e) { // pivotGridControl.URL = WSDataUrl; pivotGridControl.Connection = ConnectionStringId; pivotGridControl.Query = tbMdxQuery.Text; pivotGridControl.UpdateScript = tbUpdateScript.Text; pivotGridControl.MembersViewMode = (Ranet.AgOlap.Controls.ViewModeTypes)cbMembersViewMode.SelectedIndex; pivotGridControl.MemberVisualizationType = (Ranet.Olap.Core.Data.MemberVisualizationTypes)cbMemberVisualizationType.SelectedIndex; pivotGridControl.DataReorganizationType = (Ranet.Olap.Core.Providers.DataReorganizationTypes)cbDataReorganizationType.SelectedIndex; pivotGridControl.DefaultMemberAction = (Ranet.AgOlap.Controls.MemberClickBehaviorTypes)cbDefaultMemberAction.SelectedIndex; pivotGridControl.ColumnTitleClickBehavior = (Ranet.AgOlap.Controls.ColumnTitleClickBehavior)cbColumnTitleClickBehavior.SelectedIndex; pivotGridControl.DrillDownMode = (Ranet.AgOlap.Controls.DrillDownMode)cbDrillDownMode.SelectedIndex; pivotGridControl.IsUpdateable = ckbIsUpdateable.IsChecked.Value; pivotGridControl.AutoWidthColumns = ckbAutoWidthColumns.IsChecked.Value; pivotGridControl.ColumnsIsInteractive = ckbColumnsIsInteractive.IsChecked.Value; pivotGridControl.RowsIsInteractive = ckbRowsIsInteractive.IsChecked.Value; pivotGridControl.UseColumnsAreaHint = ckbUseColumnsAreaHint.IsChecked.Value; pivotGridControl.UseRowsAreaHint = ckbUseRowsAreaHint.IsChecked.Value; pivotGridControl.UseCellsAreaHint = ckbUseCellsAreaHint.IsChecked.Value; pivotGridControl.UseCellConditionsDesigner = ckbUseCellConditionsDesigner.IsChecked.Value; if (!pivotGridControl.UseCellConditionsDesigner) { var conds = new CellConditionsDescriptor("[Measures].[Internet Sales Amount]"); var cellApp = new CellAppearanceObject(Colors.Cyan, Colors.Black, Colors.Black); cellApp.Options.UseBackColor = true; // cellApp.Options.UseBorderColor=true; var cond = new CellCondition(CellConditionType.GreaterOrEqual, 1000000.0, 1000000.0, cellApp); conds.Conditions.Add(cond); pivotGridControl.CustomCellsConditions = new List<CellConditionsDescriptor>(); pivotGridControl.CustomCellsConditions.Add(conds); } pivotGridControl.Initialize(); }
public void Initialize(CellConditionsDescriptor descriptor) { m_Descriptor = descriptor; IsEnabled = Descriptor != null; MemberControl.Text = Descriptor != null ? Descriptor.MemberUniqueName : String.Empty; ConditionsList.Initialize(Descriptor != null ? Descriptor.Conditions.ToList <CellCondition>() : null); ConditionDetails.Initialize((Descriptor != null && Descriptor.Conditions.Count > 0) ? Descriptor.Conditions[0] : null); }
public void Initialize(CellConditionsDescriptor descriptor) { m_Descriptor = descriptor; IsEnabled = Descriptor != null; MemberControl.Text = Descriptor != null ? Descriptor.MemberUniqueName : String.Empty; ConditionsList.Initialize(Descriptor != null ? Descriptor.Conditions.ToList<CellCondition>() : null); ConditionDetails.Initialize((Descriptor != null && Descriptor.Conditions.Count > 0) ? Descriptor.Conditions[0] : null); }
public static CellConditionsDescriptor Deserialize(String str) { if (!String.IsNullOrEmpty(str)) { StringReader str_reader = new StringReader(str); XmlReader reader = XmlReader.Create(str_reader); return(CellConditionsDescriptor.Deserialize(reader)); } else { return(null); } }
/// <summary> /// Возвращает список условий, который удовлетворяет значение ячейки /// </summary> /// <param name="value">Значение ячейки. double.NaN если значение равно NULL</param> /// <param name="conditions"></param> /// <returns></returns> public static List <CellCondition> TestToConditions(double value, CellConditionsDescriptor conditionDescriptor) { if (conditionDescriptor == null) { return(null); } List <CellCondition> list = new List <CellCondition>(); foreach (CellCondition cond in conditionDescriptor.Conditions) { // Если значение ячейки равно null, то value == double.NaN // В этом случае пройдут только условия CellConditionType.None. Остальные во избежание казусов прокидываем if (value == double.NaN && cond.ConditionType != CellConditionType.None) { continue; } double val1, val2; try { val1 = Convert.ToDouble(cond.Value1); val2 = Convert.ToDouble(cond.Value2); } catch { continue; } bool ok = false; switch (cond.ConditionType) { case CellConditionType.Between: if (val1 < value && value < val2) { ok = true; } break; case CellConditionType.NotBetween: if (value <= val1 || val2 <= value) { ok = true; } break; case CellConditionType.Equal: if (val1 == value) { ok = true; } break; case CellConditionType.Greater: if (value > val1) { ok = true; } break; case CellConditionType.GreaterOrEqual: if (value >= val1) { ok = true; } break; case CellConditionType.Less: if (value < val1) { ok = true; } break; case CellConditionType.LessOrEqual: if (value <= val1) { ok = true; } break; case CellConditionType.NotEqual: if (value != val1) { ok = true; } break; case CellConditionType.None: ok = true; break; } if (ok) { list.Add(cond); } } return(list); }
static CellConditionsDescriptor Deserialize(XmlReader reader) { if (reader != null) { try { CellConditionsDescriptor target = null; if (!(reader.NodeType == XmlNodeType.Element && reader.Name == XML_CellConditionsDescriptor)) { reader.ReadToFollowing(XML_CellConditionsDescriptor); } if (reader.NodeType == XmlNodeType.Element && reader.Name == XML_CellConditionsDescriptor) { target = new CellConditionsDescriptor(); reader.Read(); var data = Jayrock.Json.Conversion.JsonConvert.Import(reader.Value) as JsonArray; target.MemberUniqueName = data[0] != null?CellSetData.ConvertFromJson(data[0]).ToString() : String.Empty; var conditions = data.GetArray(1); for (int i = 0; i < conditions.Length; i++) { var cond_data = conditions.GetArray(i); CellCondition cond = new CellCondition(); String type = cond_data.GetValue(0) != null?cond_data.GetValue(0).ToString() : CellConditionType.None.ToString(); cond.ConditionType = (CellConditionType)(CellConditionType.Parse(typeof(CellConditionType), type, true)); cond.Value1 = Convert.ToDouble(cond_data.GetValue(1)); cond.Value2 = Convert.ToDouble(cond_data.GetValue(2)); var cellAppearance = cond_data.GetArray(3); cond.Appearance.BackColor = FromJsonColor(cellAppearance.GetArray(0)); cond.Appearance.BorderColor = FromJsonColor(cellAppearance.GetArray(1)); cond.Appearance.ForeColor = FromJsonColor(cellAppearance.GetArray(2)); cond.Appearance.CustomImageUri = Convert.ToString(cellAppearance.GetValue(3)); var options = cellAppearance.GetArray(4); cond.Appearance.Options.IgnoreAllOptions = Convert.ToBoolean(options[0]); cond.Appearance.Options.ShowValue = Convert.ToBoolean(options[1]); cond.Appearance.Options.UseAllOptions = Convert.ToBoolean(options[2]); cond.Appearance.Options.UseBackColor = Convert.ToBoolean(options[3]); cond.Appearance.Options.UseBorderColor = Convert.ToBoolean(options[4]); cond.Appearance.Options.UseForeColor = Convert.ToBoolean(options[5]); cond.Appearance.Options.UseImage = Convert.ToBoolean(options[6]); cond.Appearance.Options.UseProgressBar = Convert.ToBoolean(options[7]); var progressBarOptions = cellAppearance.GetArray(5); cond.Appearance.ProgressBarOptions.StartColor = FromJsonColor(progressBarOptions.GetArray(0)); cond.Appearance.ProgressBarOptions.EndColor = FromJsonColor(progressBarOptions.GetArray(1)); cond.Appearance.ProgressBarOptions.MinValue = Convert.ToDouble(progressBarOptions.GetValue(2)); cond.Appearance.ProgressBarOptions.MaxValue = Convert.ToDouble(progressBarOptions.GetValue(3)); cond.Appearance.ProgressBarOptions.IsIndeterminate = Convert.ToBoolean(progressBarOptions.GetValue(4)); target.Conditions.Add(cond); } if (reader.NodeType == XmlNodeType.EndElement && reader.Name == XML_CellConditionsDescriptor) { reader.ReadEndElement(); } } return(target); } catch (XmlException ex) { throw ex; //return null; } } return(null); }
/// <summary> /// Возвращает список условий, который удовлетворяет значение ячейки /// </summary> /// <param name="value">Значение ячейки. double.NaN если значение равно NULL</param> /// <param name="conditions"></param> /// <returns></returns> public static List<CellCondition> TestToConditions(double value, CellConditionsDescriptor conditionDescriptor) { if (conditionDescriptor == null) return null; List<CellCondition> list = new List<CellCondition>(); foreach (CellCondition cond in conditionDescriptor.Conditions) { // Если значение ячейки равно null, то value == double.NaN // В этом случае пройдут только условия CellConditionType.None. Остальные во избежание казусов прокидываем if (value == double.NaN && cond.ConditionType != CellConditionType.None) continue; double val1, val2; try { val1 = Convert.ToDouble(cond.Value1); val2 = Convert.ToDouble(cond.Value2); } catch { continue; } bool ok = false; switch (cond.ConditionType) { case CellConditionType.Between: if (val1 < value && value < val2) ok = true; break; case CellConditionType.NotBetween: if (value <= val1 || val2 <= value) ok = true; break; case CellConditionType.Equal: if (val1 == value) ok = true; break; case CellConditionType.Greater: if (value > val1) ok = true; break; case CellConditionType.GreaterOrEqual: if (value >= val1) ok = true; break; case CellConditionType.Less: if (value < val1) ok = true; break; case CellConditionType.LessOrEqual: if (value <= val1) ok = true; break; case CellConditionType.NotEqual: if (value != val1) ok = true; break; case CellConditionType.None: ok = true; break; } if (ok) list.Add(cond); } return list; }
static CellConditionsDescriptor Deserialize(XmlReader reader) { if (reader != null) { try { CellConditionsDescriptor target = null; if (!(reader.NodeType == XmlNodeType.Element && reader.Name == XML_CellConditionsDescriptor)) { reader.ReadToFollowing(XML_CellConditionsDescriptor); } if (reader.NodeType == XmlNodeType.Element && reader.Name == XML_CellConditionsDescriptor) { target = new CellConditionsDescriptor(); reader.Read(); var data = Jayrock.Json.Conversion.JsonConvert.Import(reader.Value) as JsonArray; target.MemberUniqueName = data[0] != null ? CellSetData.ConvertFromJson(data[0]).ToString() : String.Empty; var conditions = data.GetArray(1); for (int i = 0; i < conditions.Length; i++) { var cond_data = conditions.GetArray(i); CellCondition cond = new CellCondition(); String type = cond_data.GetValue(0) != null ? cond_data.GetValue(0).ToString() : CellConditionType.None.ToString(); cond.ConditionType = (CellConditionType)(CellConditionType.Parse(typeof(CellConditionType), type, true)); cond.Value1 = Convert.ToDouble(cond_data.GetValue(1)); cond.Value2 = Convert.ToDouble(cond_data.GetValue(2)); var cellAppearance = cond_data.GetArray(3); cond.Appearance.BackColor = FromJsonColor(cellAppearance.GetArray(0)); cond.Appearance.BorderColor = FromJsonColor(cellAppearance.GetArray(1)); cond.Appearance.ForeColor = FromJsonColor(cellAppearance.GetArray(2)); cond.Appearance.CustomImageUri = Convert.ToString(cellAppearance.GetValue(3)); var options = cellAppearance.GetArray(4); cond.Appearance.Options.IgnoreAllOptions = Convert.ToBoolean(options[0]); cond.Appearance.Options.ShowValue = Convert.ToBoolean(options[1]); cond.Appearance.Options.UseAllOptions = Convert.ToBoolean(options[2]); cond.Appearance.Options.UseBackColor = Convert.ToBoolean(options[3]); cond.Appearance.Options.UseBorderColor = Convert.ToBoolean(options[4]); cond.Appearance.Options.UseForeColor = Convert.ToBoolean(options[5]); cond.Appearance.Options.UseImage = Convert.ToBoolean(options[6]); cond.Appearance.Options.UseProgressBar = Convert.ToBoolean(options[7]); var progressBarOptions = cellAppearance.GetArray(5); cond.Appearance.ProgressBarOptions.StartColor = FromJsonColor(progressBarOptions.GetArray(0)); cond.Appearance.ProgressBarOptions.EndColor = FromJsonColor(progressBarOptions.GetArray(1)); cond.Appearance.ProgressBarOptions.MinValue = Convert.ToDouble(progressBarOptions.GetValue(2)); cond.Appearance.ProgressBarOptions.MaxValue = Convert.ToDouble(progressBarOptions.GetValue(3)); cond.Appearance.ProgressBarOptions.IsIndeterminate = Convert.ToBoolean(progressBarOptions.GetValue(4)); target.Conditions.Add(cond); } if (reader.NodeType == XmlNodeType.EndElement && reader.Name == XML_CellConditionsDescriptor) { reader.ReadEndElement(); } } return target; } catch (XmlException ex) { throw ex; //return null; } } return null; }