Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
        void CalculateCustomCellCondidtions()
        {
            m_CustomCellCondidtions = null;
            m_CustomCellAppearance  = null;

            if (Cell != null)
            {
                if (Owner != null && Owner.CustomCellsConditions != null && Owner.CustomCellsConditions.Count > 0)
                {
                    // Поиск условий, которые могут быть наложены на данную ячейку.
                    // Перебираем всех предков по области столбцов и по их уникальному имени ищем
                    IList <MemberInfo> column_ascendants = this.Cell.ColumnMember.GetAncestors();
                    // column_ascendants - коллекция предков снизу вверх
                    foreach (MemberInfo member in column_ascendants)
                    {
                        // Ищем объект, содержащий условия для данного элемента по уникальному имени элемента
                        CellConditionsDescriptor conditions_descr = null;
                        foreach (CellConditionsDescriptor descr in Owner.CustomCellsConditions)
                        {
                            if (descr.MemberUniqueName == member.UniqueName)
                            {
                                conditions_descr = descr;
                                break;
                            }
                        }

                        List <CellCondition> usedConditions = null;
                        // Отбор условий, которым удовлетворяет значение ячейки
                        if (conditions_descr != null)
                        {
                            if (Cell.CellDescr != null &&
                                Cell.CellDescr.Value != null)
                            {
                                try
                                {
                                    double value = Cell.CellDescr.Value.Value != null?Convert.ToDouble(Cell.CellDescr.Value.Value) : double.NaN;

                                    usedConditions = CellConditionsDescriptor.TestToConditions(value, conditions_descr);
                                }
                                catch (System.InvalidCastException)
                                {
                                }
                            }
                        }

                        if (usedConditions != null)
                        {
                            //Условий может быть несколько и они могут накладываться, например:
                            //1) > 0 и цвет фона - красный.
                            //2) > 0 и шрифт жирный
                            //Поэтому для храненния накопленных условий использую m_CustomCellAppearance и потом буду использовать эту информацию при рисовании ячейки

                            //Проходим по списку условий и применяем настройки для ячейки
                            foreach (CellCondition cond in usedConditions)
                            {
                                if (m_CustomCellAppearance == null)
                                {
                                    m_CustomCellAppearance = new CellAppearanceObject();
                                }

                                if (cond.Appearance.Options.IgnoreAllOptions)
                                {
                                    continue;
                                }

                                if (cond.Appearance.Options.UseAllOptions ||
                                    cond.Appearance.Options.UseBackColor)
                                {
                                    m_CustomCellAppearance.Options.UseBackColor = true;
                                    m_CustomCellAppearance.BackColor            = cond.Appearance.BackColor;
                                    //painter.CellArgs.StyleAppearance.BackColor2 =
                                    //    cond.Appearance.BackColor2;
                                    //painter.CellArgs.StyleAppearance.GradientMode =
                                    //    cond.Appearance.GradientMode;
                                }
                                if (cond.Appearance.Options.UseAllOptions ||
                                    cond.Appearance.Options.UseBorderColor)
                                {
                                    m_CustomCellAppearance.Options.UseBorderColor = true;
                                    m_CustomCellAppearance.BorderColor            = cond.Appearance.BorderColor;
                                }
                                //if (cond.Appearance.Options.UseAllOptions ||
                                //    cond.Appearance.Options.UseFont)
                                //{
                                //    if (cond.Appearance.Font != null)
                                //    {
                                //        painter.CellArgs.StyleAppearance.Options.UseFont
                                //            = true;
                                //        painter.CellArgs.StyleAppearance.Font =
                                //            cond.Appearance.Font;
                                //    }
                                //}
                                if (cond.Appearance.Options.UseAllOptions ||
                                    cond.Appearance.Options.UseForeColor)
                                {
                                    m_CustomCellAppearance.Options.UseForeColor = true;
                                    m_CustomCellAppearance.ForeColor            = cond.Appearance.ForeColor;
                                }

                                if (cond.Appearance.Options.IgnoreAllOptions ||
                                    !cond.Appearance.Options.ShowValue)
                                {
                                    m_CustomCellAppearance.Options.ShowValue = false;
                                }

                                //if (cond.Appearance.Options.UseAllOptions ||
                                //    cond.Appearance.Options.UseTextOptions)
                                //{
                                //    painter.CellArgs.StyleAppearance.Options.
                                //        UseTextOptions = true;

                                //    painter.CellArgs.StyleAppearance.TextOptions.
                                //        HAlignment =
                                //        cond.Appearance.TextOptions.HAlignment;
                                //    painter.CellArgs.StyleAppearance.TextOptions.
                                //        VAlignment =
                                //        cond.Appearance.TextOptions.VAlignment;
                                //    painter.CellArgs.StyleAppearance.TextOptions.
                                //        WordWrap = cond.Appearance.TextOptions.WordWrap;
                                //    painter.CellArgs.StyleAppearance.TextOptions.
                                //        Trimming = cond.Appearance.TextOptions.Trimming;
                                //}

                                if (cond.Appearance.Options.UseAllOptions ||
                                    cond.Appearance.Options.UseImage)
                                {
                                    m_CustomCellAppearance.Options.UseImage = true;
                                    m_CustomCellAppearance.CustomImage      = cond.Appearance.CustomImage;
                                    m_CustomCellAppearance.CustomImageUri   = cond.Appearance.CustomImageUri;
                                }

                                if (cond.Appearance.Options.UseAllOptions ||
                                    cond.Appearance.Options.UseProgressBar)
                                {
                                    m_CustomCellAppearance.Options.UseProgressBar = true;
                                    m_CustomCellAppearance.ProgressBarOptions     = cond.Appearance.ProgressBarOptions;
                                }
                            }
                        }
                    }
                }
            }
        }