コード例 #1
0
 internal ChartAxis(CellSet.CellSet cellset, ChartAxisFormat format, ChartAxisDescriptor descriptor)
 {
     fCellset    = cellset;
     Format      = format;
     fDescriptor = descriptor;
     descriptor.SetAxis(this);
 }
コード例 #2
0
        public virtual void InitControlData(CellSet.CellSet cs, OlapControl grid)
        {
            if (grid.callbackException != null)
            {
                exception = SessionTimeoutDialog.RenderMassage(grid, grid.callbackException);
                return;
            }

            Cellset      = new RCellset(cs, grid.MaxTextLength);
            Layout       = new ClientLayout(grid.AxesLayout);
            chartsType   = grid.ChartsType;
            analysisType = "grid";
        }
コード例 #3
0
        private static void GetCSCellsM(CellSet.CellSet cellSet, int col, out Member member, out Member measure,
                                        out Member mode, out Level level)
        {
            member  = null;
            measure = null;
            mode    = null;
            level   = null;
            var i = cellSet.FixedRows;

            while (i > 0)
            {
                i--;
                var gc = cellSet.Cells(col, i);
                if (gc != null)
                {
                    var cell = gc as IMemberCell;
                    if (cell != null)
                    {
                        if (cell.Member != null)
                        {
                            if (cell.Member.MemberType == MemberType.mtMeasure)
                            {
                                measure = cell.Member;
                            }
                            else if (cell.Member.MemberType == MemberType.mtMeasureMode)
                            {
                                mode = cell.Member;
                            }
                            else if (member == null)
                            {
                                member = cell.Member;
                            }
                        }
                        else if (cell.IsTotal && cell.Level != null)
                        {
                            if (level == null)
                            {
                                level = cell.Level.Level;
                            }
                        }
                    }
                }
            }
        }
コード例 #4
0
        public override void InitControlData(CellSet.CellSet cs, OlapControl grid)
        {
            if (grid.callbackException != null)
            {
                exception = SessionTimeoutDialog.RenderMassage(grid, grid.callbackException);
                return;
            }

            if (grid.Cube == null)
            {
                return;
            }

            Cellset = new RCellset(cs, grid.MaxTextLength);
            Layout  = new ClientLayout(grid.AxesLayout);

            var chart = grid as OlapChart;

            if (!chart.chartDefinitions.IsEmpty)
            {
                chartDefinitions = new ClientChartDefinitions(chart.chartDefinitions);
            }

            if (!double.IsNaN(chart.Scale.Item1) && !double.IsNaN(chart.Scale.Item2))
            {
                scaleX = chart.Scale.Item1;
                scaleY = chart.Scale.Item2;
            }

            //grid.ChartsType = new SeriesType[]{SeriesType.Bar};
            chartsType    = grid.ChartsType;
            maxTextLength = grid.MaxTextLength;
            analysisType  = "chart";

            fontProperties = new FontProperties();
        }
コード例 #5
0
        public RCellset(CellSet.CellSet cs, int maxTextLenght)
        {
            if (cs == null)
            {
                RowCount  = 0;
                ColCount  = 0;
                FixedRows = 0;
                FixedCols = 0;
                Cells     = new RCell[0];
                return;
            }
            RowCount         = cs.PagedRowCount;
            ColCount         = cs.PagedColumnCount;
            FixedRows        = cs.FixedRows;
            FixedCols        = cs.FixedColumns;
            TreeLikeBehavior = cs.Grid.HierarchiesDisplayMode == HierarchiesDisplayMode.TreeLike;

            var c1 = new HashSet <string>();
            //impos = new Dictionary<string, ImagePosition>();
            //images = new Dictionary<string, string>();

            var cc = new List <RCell>();

            for (var i = 0; i < cs.RowCount; i++)
            {
                if (!cs.Grid.CellSet.IsRowVisible(i))
                {
                    continue;
                }
                for (var j = 0; j < cs.ColumnCount; j++)
                {
                    if (!cs.Grid.CellSet.IsColumnVisible(j))
                    {
                        continue;
                    }
                    var c = cs[j, i];
                    if (c.ColSpan < 1 || c.RowSpan < 1)
                    {
                        continue;
                    }
                    if (c.ColSpan > 1 || c.RowSpan > 1)
                    {
                        var s = string.Format("{0}|{1}", c.StartColumn, c.StartRow);
                        if (!c1.Add(s))
                        {
                            continue;
                        }
                    }

#if SL
                    DrawCellEventArgs e = ((RiaOLAPControl)cs.Grid).OnDrawCell(c);

                    RCell cell = new RCell(c, e);
                    if (e != null && !string.IsNullOrEmpty(e.ImageUri))
                    {
                        cell.BackImageUrl  = e.ImageUri;
                        cell.ImagePosition = e.ImagePosition;


                        //impos.Add(index.ToString(), e.ImagePosition);
                        //images.Add(index.ToString(), e.ImageUri);
                    }
#else
                    var cell = new RCell(c);
#endif
                    cell.MaxTextLength = maxTextLenght;
                    cc.Add(cell);
                }
            }
            Cells = cc.ToArray();

            cs.Grid.InitClientCellset(this);
        }
コード例 #6
0
        internal virtual void ToGrid(OlapControl grid)
        {
            var cube = grid.Cube;

            grid.FMode     = Mode;
            grid.fMeasures = Measures;
            Measures.FGrid = grid;
            Measures.FLevel.PagerSettings.FGrid = grid;

            foreach (var m in Measures)
            {
                m.FGrid        = grid;
                m.FCubeMeasure = cube.Measures.Find(m.UniqueName);
            }
            Measures = null;

            grid.FDimensions = Dimensions;
            Dimensions.FGrid = grid;
            foreach (var d in Dimensions)
            {
                d.FGrid          = grid;
                d.FCubeDimension = cube.Dimensions.Find(d.UniqueName);
                foreach (var h in d.Hierarchies)
                {
                    h.FCubeHierarchy = d.FCubeDimension.Hierarchies.Find(h.UniqueName);
                    if (h.Levels != null)
                    {
                        for (var i = 0; i < h.Levels.Count; i++)
                        {
                            var l = h.Levels[i];
                            l.FCubeLevel          = h.CubeHierarchy.Levels[i];
                            l.PagerSettings.FGrid = grid;
                            foreach (var m in l.Members)
                            {
                                m.FCubeMember = l.CubeLevel.Members.Find(m.UniqueName);
                            }
                        }
                    }
                }
            }
            Dimensions = null;

            grid.FLayout = Layout;
            Layout.fGrid = grid;
            Layout       = null;

            grid.FEngine = Engine;
            if (Engine != null)
            {
                Engine.FGrid = grid;
                Engine.FCube = cube;
            }
            if (cube != null)
            {
                cube.FEngineList.RemoveAll(item => item.FGrid == grid);
                cube.FEngineList.Add(Engine);
            }
            if (Engine != null)
            {
                foreach (var ml in Engine.FMetaLines.Values)
                {
                    ml.FGrid = grid;
                }
                Engine = null;
            }

            grid.FCellSet = Cellset;
            if (Cellset != null)
            {
                Cellset.FGrid = grid;
                if (Cellset.FSortingAddress != null)
                {
                    Cellset.FSortingAddress.FGrid = grid;
                }
                foreach (var a in Cellset.fComments.Keys)
                {
                    a.FGrid = grid;
                }
                Cellset = null;
            }

            grid.FFilteredHierarchies = FilteredHierarchies;
            grid.FFilteredLevels      = FilteredHierarchies2;
            FilteredHierarchies       = null;
            FilteredHierarchies2      = null;
        }
コード例 #7
0
        internal virtual void FromGrid(OlapControl grid)
        {
            Mode           = grid.FMode;
            Measures       = grid.Measures;
            grid.fMeasures = null;
            Measures.FGrid = null;
            if (Measures.FLevel != null)
            {
                Measures.FLevel.PagerSettings.FGrid = null;
            }
            foreach (var m in Measures)
            {
                m.FGrid        = null;
                m.FCubeMeasure = null;
            }
            Dimensions       = grid.Dimensions;
            grid.FDimensions = null;
            Dimensions.FGrid = null;
            foreach (var d in Dimensions)
            {
                d.FGrid          = null;
                d.FCubeDimension = null;
                foreach (var h in d.Hierarchies)
                {
                    h.FCubeHierarchy = null;
                    if (h.Levels != null)
                    {
                        foreach (var l in h.Levels)
                        {
                            l.FCubeLevel          = null;
                            l.PagerSettings.FGrid = null;
                            foreach (var m in l.Members)
                            {
                                m.FCubeMember = null;
                            }
                        }
                    }
                }
            }
            Layout       = grid.FLayout;
            grid.FLayout = null;
            Layout.fGrid = null;
            Engine       = grid.Engine;
            grid.FEngine = null;
            if (Engine != null)
            {
                Engine.FCube = null;
                Engine.FGrid = null;
                foreach (var ml in Engine.FMetaLines.Values)
                {
                    ml.FGrid = null;
                    foreach (var ll in ml.fLines.Values)
                    {
                        ll.DoDeserialize(); // removes the lines data to cache
                    }
                }
            }

            Cellset       = grid.FCellSet;
            grid.FCellSet = null;
            if (Cellset != null)
            {
                Cellset.FGrid = null;
                if (Cellset.FSortingAddress != null)
                {
                    Cellset.FSortingAddress.FGrid = null;
                }
                foreach (var a in Cellset.fComments.Keys)
                {
                    a.FGrid = null;
                }
            }
            FilteredHierarchies       = grid.FFilteredHierarchies;
            FilteredHierarchies2      = grid.FFilteredLevels;
            grid.FFilteredHierarchies = null;
            grid.FFilteredLevels      = null;
        }
コード例 #8
0
 internal void InitControlData(CellSet.CellSet cs, OlapControl grid)
 {
     Cellset = new RCellset(cs, grid.MaxTextLength);
     Layout  = new ClientLayout(grid.AxesLayout);
 }