public void DrillAction(PossibleDrillActions Mode)
        {
            DebugLogging.WriteLine("MemberCell.DrillAction({0})", Mode);

            if ((Mode & PossibleDrillActions) != Mode)
            {
                var S = "";
                if (Mode == PossibleDrillActions.esCollapsed)
                {
                    S = RadarUtils.GetResStr("rsDrillAction0");
                }
                if (Mode == PossibleDrillActions.esParentChild)
                {
                    S = RadarUtils.GetResStr("rsDrillAction1");
                }
                if (Mode == PossibleDrillActions.esNextLevel)
                {
                    S = RadarUtils.GetResStr("rsDrillAction2");
                }
                if (Mode == PossibleDrillActions.esNextHierarchy)
                {
                    S = RadarUtils.GetResStr("rsDrillAction3");
                }

                throw new Exception(
                          string.Format(RadarUtils.GetResStr("rsInadmissibleDrillAction"), S, Value));
            }

            CellSet.DrillAction_Inner(Mode, RealMember);
        }
Exemplo n.º 2
0
        internal static JsonDialog RenderMassage(OlapControl Grid, Exception E)
        {
            var result = new JsonDialog();

            result.title = RadarUtils.GetResStr("rsErrorMessage");

            var buttons = new List <JsonDialogButton>();

            if (!string.IsNullOrEmpty(Grid.SupportEMail))
            {
                buttons.Add(new JsonDialogButton
                {
                    text = "Refresh",             //RadarUtils.GetResStr("rsSendToSupport"),
                    code = "window.location = window.location.pathname; " +
                           "RadarSoft.$(this).dialog('close');"
                });
            }

            buttons.Add(new JsonDialogButton
            {
                text = RadarUtils.GetResStr("rsClose"),
                code = "RadarSoft.$(this).dialog('close')"
            });

            result.data = "<div width='500'>" +
                          "<div style='width:490px;margin:5px;overflow:auto;border:2px inset #C0C0C0;;color:#404040;;height:90px;'>" +
                          E.Message.Replace("\n", "<br />") +
                          "</div>" +
                          "</div>";
            result.buttons = buttons.ToArray();
            return(result);
        }
Exemplo n.º 3
0
        internal GenericFilterGrid(OlapControl grid)
        {
            ActionString            = RadarUtils.GetResStr("rsActions");
            ItemString              = RadarUtils.GetResStr("rsItem");
            FilterDescriptionString = RadarUtils.GetResStr("rsFilterDescription");
            EditFilterString        = RadarUtils.GetResStr("rsEditFilter");
            ResetFilterString       = RadarUtils.GetResStr("repResetFilter");

            if (grid.Active)
            {
                foreach (var m in grid.Measures)
                {
                    if (m.Filter != null)
                    {
                        Items.Add(new GenericFilterGridItem(m));
                    }
                }

                foreach (var d in grid.Dimensions)
                {
                    foreach (var h in d.Hierarchies)
                    {
                        var s = h.FilterDescription;
                        if (!string.IsNullOrEmpty(s))
                        {
                            Items.Add(new GenericFilterGridItem(h));
                        }
                    }
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        ///     Deletes the specified third-type measure from the list of available Grid
        ///     measures.
        /// </summary>
        public void DeleteCalculatedMeasure(Measure Measure)
        {
            ClearCache();
            if (FLevel == null && Grid.Active)
            {
                throw new InvalidOperationException();
            }
            if (Measure.FFunction != OlapFunction.stCalculated)
            {
                throw new Exception(string.Format(RadarUtils.GetResStr("rsTryToDeleteWrongMeasure"),
                                                  Measure.FDisplayName));
            }
            Measure.Visible = false;
            var Idx = IndexOf(Measure);

            if (FLevel == null) // return;
            {
                // if (Grid.Active) throw exception
                //
                //FGrid.Engine.ClearMeasureData(Measure);
                //Remove(Measure);
                //Grid.EndChange(GridEventType.geChangeCubeStructure, new object[0]);
                //if (Grid.Active) Grid.FCellSet.Rebuild();
                Remove(Measure);
                return;
            }

            FGrid.Engine.ClearMeasureData(Measure);

            var    P = new List <Member>();
            Member M = null;

            for (var i = 0; i < FLevel.Members.Count; i++)
            {
                if (FLevel.Members[i].fVirtualID == Idx)
                {
                    M = FLevel.Members[i];
                }
                if (FLevel.Members[i].fVirtualID > Idx)
                {
                    P.Add(FLevel.Members[i]);
                }
            }
            FLevel.FUniqueNamesArray.Remove(M.UniqueName);
            FLevel.Members.Remove(M);

            foreach (var m in P)
            {
                m.fVirtualID--;
            }
            Remove(Measure);
            Grid.EndChange(GridEventType.geChangeCubeStructure);
            if (Grid.Active && M.Visible)
            {
                Grid.FCellSet.Rebuild();
            }
        }
        /// <exclude />
        public static void CheckTag(BinaryReader reader, Tags tag)
        {
            var t = (Tags)reader.ReadUInt16();

            if (t != tag)
            {
                reader.BaseStream.Seek(-sizeof(ushort), SeekOrigin.Current);
                throw new StreamException(string.Format(RadarUtils.GetResStr("rsInvalidTagError"),
                                                        reader.BaseStream.Position, string.Format("{0}({1:D})", tag, tag)));
            }
        }
        /// <summary>
        ///     Restores the standard display modes by deleting all the changes added by a
        ///     programmer.
        /// </summary>
        public void RestoreDefaults()
        {
            Clear();
            if (fMeasure.IsKPI)
            {
                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmKPIValue"),
                                        MeasureShowModeType.smKPIValue, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmKPIGoal"),
                                        MeasureShowModeType.smKPIGoal, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmKPIStatus"),
                                        MeasureShowModeType.smKPIStatus, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmKPITrend"),
                                        MeasureShowModeType.smKPITrend, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmKPIWeight"),
                                        MeasureShowModeType.smKPIWeight, null));
                for (var i = 0; i < 4; i++)
                {
                    this[i].Visible = true;
                }
            }
            else
            {
                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmNormal"),
                                        MeasureShowModeType.smNormal, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmPercentRowTotal"),
                                        MeasureShowModeType.smPercentRowTotal, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmPercentColTotal"),
                                        MeasureShowModeType.smPercentColTotal, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmPercentParentRowItem"),
                                        MeasureShowModeType.smPercentParentRowItem, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmPercentParentColItem"),
                                        MeasureShowModeType.smPercentParentColItem, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmRowRank"),
                                        MeasureShowModeType.smRowRank, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmColumnRank"),
                                        MeasureShowModeType.smColumnRank, null));

                Add(new MeasureShowMode(fMeasure, RadarUtils.GetResStr("rssmPercentGrandTotal"),
                                        MeasureShowModeType.smPercentGrandTotal, null));
                this[0].Visible = true;
            }
        }
Exemplo n.º 7
0
 internal void CheckFlat(bool FirstLevel)
 {
     foreach (var m in this)
     {
         if (m.FNextLevelChildren.Count > 0 && m.FChildren.Count > 0)
         {
             throw new Exception(string.Format(RadarUtils.GetResStr("rsHierarchyNotFlat"), m.DisplayName));
         }
         m.Children.CheckFlat(FirstLevel);
         if (!FirstLevel && m.Parent == null)
         {
             throw new Exception(string.Format(RadarUtils.GetResStr("rsNoParentMember"), m.DisplayName));
         }
     }
 }
Exemplo n.º 8
0
        public SerializedHierarchy(Hierarchy h)
        {
            UnfetchedMembersVisibile = h.UnfetchedMembersVisible;
            UniqueName = h.UniqueName;
            if (h.DisplayName != h.CubeHierarchy.DisplayName)
            {
                DisplayName = h.DisplayName;
            }

            if (h.TotalCaption != RadarUtils.GetResStr("rsTotalCaption"))
            {
                TotalCaption = h.TotalCaption;
            }

            SortType                   = h.SortType;
            FormatString               = h.FormatString;
            TotalAppearance            = h.TotalAppearance;
            AllowResort                = h.AllowResort;
            AllowFilter                = h.AllowFilter;
            AllowPopupOnLevelCaptions  = h.AllowPopupOnLevelCaptions;
            AllowHierarchyEditor       = h.AllowHierarchyEditor;
            AllowPopupOnMembers        = h.AllowPopupOnMembers;
            AllowRegroup               = h.AllowRegroup;
            AllowChangeTotalAppearance = h.AllowChangeTotalAppearance;
            Visible = h.Visible;
            TakeFiltersIntoCalculations = h.TakeFiltersIntoCalculations;
            AllowSwapMembers            = h.AllowSwapMembers;
            AllowMultiselect            = h.AllowMultiselect;
            OverrideSortMethods         = h.OverrideSortMethods;
            ShowEmptyLines = h.FShowEmptyLines;
            if (h.FLevels != null)
            {
                var ll = h.FLevels.Select(L => new SerializedLevel(L)).ToList();
                if (ll.Count > 0)
                {
                    Levels = ll.ToArray();
                }
            }
        }
Exemplo n.º 9
0
 internal ClientHierarchy(Hierarchy h, OlapControl grid)
 {
     DisplayName = h.DisplayName;
     UniqueName  = h.UniqueName;
     Description = h.Description;
     Group       = h.Origin == HierarchyOrigin.hoNamedSet
         ? RadarUtils.GetResStr("rsNamedSets")
         : (h.CubeHierarchy.DisplayFolder ?? "");
     IsFiltered              = h.Filtered || h.FilteredByLevelFilters;
     Origin                  = h.Origin;
     IsDate                  = h.Dimension.CubeDimension.fDimensionType == DimensionType.dtTime;
     AllowFilter             = h.AllowFilter && h.AllowHierarchyEditor && grid.AllowFiltering;
     UnfetchedMembersVisible = h.UnfetchedMembersVisible;
     if (h.Levels != null && h.Levels.Count > 0)
     {
         var l = new List <ClientLevel>(h.Levels.Count);
         foreach (var ll in h.Levels)
         {
             l.Add(new ClientLevel(ll));
         }
         Levels = l.ToArray();
     }
 }
Exemplo n.º 10
0
        //As the format string can be used template
        //"string1%;string2%; " string3" or "string". Each string can include the following statements,
        //which-naming replaced by real members:
        //%{First} - the First member of the current бакита
        //%{Last} - the Last member of the current бакита
        //%{Previous last} - the Last member of the previous бакита
        //%{Next first} - First слен next бакита
        //%{Min} - Minimum (lowest) member of the current бакита
        //%{Max} - the Maximum (highest) member of the current бакита
        //%{Previous Min} - Minimum (lowest) member of the previous бакита
        //%{Previous Max} - the Maximum (highest) member of the previous бакита
        //%{Next Min} - Minimum (lowest) member of the next бакита
        //%{Next Max} - the Maximum (highest) member of the next бакита
        //%{Index} - the Index of the current бакита

        internal void SetBucketFormat(string BucketNameFormat, string AFormatString)
        {
            fFormatString = AFormatString;

            var S     = BucketNameFormat;
            var bmd   = RadarUtils.GetResStr("rsBucketMemberDelimiter");
            var Index = S.IndexOf(bmd);

            if (Index == -1)
            {
                fString1 = S;
                fString2 = S;
                fString3 = S;
                return;
            }

            fString1 = S.Substring(0, Index);
            S        = S.Substring(Index + bmd.Length, S.Length - 1);

            Index = S.IndexOf(bmd);
            if (Index == -1)
            {
                fString2 = S;
                fString3 = S;
                return;
            }
            fString2 = S.Substring(0, Index - 1);
            S        = S.Substring(Index + bmd.Length, S.Length - (Index + bmd.Length));

            Index = S.IndexOf(bmd);
            if (Index == -1)
            {
                fString3 = S;
                return;
            }
            fString3 = S.Substring(0, Index - 1);
        }
Exemplo n.º 11
0
        internal static string ExtractOperator(string S, int Index1, int Index2)
        {
            var rsOperatorSign = RadarUtils.GetResStr("rsOperatorSign");
            var StartPos       = S.IndexOf(rsOperatorSign);

            if (StartPos == -1)
            {
                return(null);
            }

            if (S[StartPos + 1] != '{')
            {
                throw new Exception(RadarUtils.GetResStr("rsecWrongBucketOperatorFormat") + S);
            }

            var Index = StartPos + 2;

            while (Index <= S.Length)
            {
                if (S[Index] == '}')
                {
                    break;
                }
                else
                {
                    Index++;
                }
            }
            if (Index > S.Length)
            {
                throw new Exception(RadarUtils.GetResStr("rsecWrongBucketOperatorFormat") + S);
            }

            //var Index1 = StartPos;
            //var Index2 = Index;
            return(S.Substring(StartPos + 2, Index - StartPos - 2));
        }
        internal JsonChartSettings(OlapChart chart)
            : base(chart)
        {
            url_pointsMenu      = chart.ImageUrl("pointsMenu.png");
            url_pointsBtn       = chart.ImageUrl("points.png");
            url_holesBtn        = chart.ImageUrl("holes.png");
            url_linesMenu       = chart.ImageUrl("linesMenu.png");
            url_linesBtn        = chart.ImageUrl("lines.png");
            url_polylinesBtn    = chart.ImageUrl("polylines.png");
            url_stepLinesBtn    = chart.ImageUrl("stepLines.png");
            url_deltaLinesBtn   = chart.ImageUrl("deltaLines.png");
            url_percentLinesBtn = chart.ImageUrl("percentLines.png");
            url_barsMenu        = chart.ImageUrl("barsMenu.png");
            url_barsBtn         = chart.ImageUrl("bars.png");
            url_deltaBarsBtn    = chart.ImageUrl("deltaBars.png");
            url_percentBarsBtn  = chart.ImageUrl("percentBars.png");
            url_areasMenu       = chart.ImageUrl("areasMenu.png");
            url_areasBtn        = chart.ImageUrl("areas.png");
            url_deltaAreasBtn   = chart.ImageUrl("deltaAreas.png");
            url_percentAreasBtn = chart.ImageUrl("percentAreas.png");
            url_piesMenu        = chart.ImageUrl("piesMenu.png");
            url_piesBtn         = chart.ImageUrl("pies.png");
            url_trendsMenu      = chart.ImageUrl("trendsMenu.png");
            url_noTrendsBtn     = chart.ImageUrl("noTrends.png");
            url_linTrendsBtn    = chart.ImageUrl("linTrends.png");
            url_quadTrendsBtn   = chart.ImageUrl("quadTrends.png");
            url_cubicTrendsBtn  = chart.ImageUrl("cubicTrends.png");
            rsClose             = RadarUtils.GetResStr("rsClose");
            rsShowUnderlying    = RadarUtils.GetResStr("mnShowUnderlying");

            //url_nextlevel = chart.ImageUrl("Expand.gif");
            //url_collapsedl = chart.ImageUrl("Collapse.gif");
            //url_nextlevel = chart.ImageUrl("Expand_Level.gif");

            url_nextlevel  = chart.ImageUrl("plus.png");
            url_collapsedl = chart.ImageUrl("minus.png");
        }
        internal Intelligence(Level parent, IntelligenceType type)
        {
            fParent           = parent.Hierarchy;
            fIntelligenceType = type;
            if (type == IntelligenceType.itMemberToDate)
            {
                fDisplayName = string.Format(RadarUtils.GetResStr("rsiMemberToDate"), parent.DisplayName);

                fExpression = "COALESCEEMPTY({2}(PERIODSTODATE(" + parent.UniqueName + ",{0}), {1}), 0)";

                fIntelligenceGroup = string.Format(RadarUtils.GetResStr("rsiTimeIntelligence"), fParent.DisplayName);

                return;
            }
            if (type == IntelligenceType.itMemberGrowth)
            {
                fDisplayName = string.Format(RadarUtils.GetResStr("rsiMemberGrowth"), parent.DisplayName);
                //                fExpression = "COALESCEEMPTY({2}({{0}}, {1}), 0) - COALESCEEMPTY({2}({PARALLELPERIOD(" + parent.UniqueName + ",1,{0})}, {1}), 0)";

                fExpression = "COALESCEEMPTY(({0}, {1}) - (PARALLELPERIOD(" + parent.UniqueName + ",1,{0}), {1}), 0)";

                fIntelligenceGroup = string.Format(RadarUtils.GetResStr("rsiTimeIntelligence"), fParent.DisplayName);
            }
        }
Exemplo n.º 14
0
        /// <summary>
        ///     Retrieves the source data that was used to create a specified cell in a cube
        /// </summary>
        /// <param name="Address"></param>
        /// <param name="AdataSet"></param>
        /// <param name="RowsToFetch"></param>
        public override void Drillthrough(ICubeAddress Address, DataTable AdataSet, int RowsToFetch,
                                          ICollection <string> columns)
        {
            ((MOlapCube)FCube).EnsureConnected();
            var sb = new StringBuilder("DRILLTHROUGH ");

            if (RowsToFetch > 0)
            {
                sb.Append("MAXROWS ");
                sb.Append(RowsToFetch);
            }
            sb.Append(" SELECT {");
            sb.Append(Address.Measure.UniqueName);
            sb.Append("} on 0");
            for (var i = 0; i < Address.LevelsCount; i++)
            {
                sb.Append(", {");
                var m = Address.Members(i);
                if (m.Filtered)
                {
                    bool   single;
                    string set;
                    ((MOlapCube)FCube).CreateVisibleSet(m.FLevel.FHierarchy,
                                                        out single, out set, m, false);
                    if (!single)
                    {
                        throw new Exception(string.Format(RadarUtils.GetResStr("rsMuitifilterDrillthroughError"),
                                                          m.FLevel.FHierarchy.DisplayName));
                    }
                    sb.Append(set);
                }
                else
                {
                    sb.Append(Address.Members(i).UniqueName);
                }
                sb.Append("} on ");
                sb.Append(i + 1);
            }
            var j = Address.LevelsCount;

            for (var i = 0; i < FGrid.FFilteredHierarchies.Count; i++)
            {
                if (Address.GetMemberByHierarchy(FGrid.FFilteredHierarchies[i]) != null)
                {
                    continue;
                }
                bool   single;
                string set;
                ((MOlapCube)FCube).CreateVisibleSet(FGrid.FFilteredHierarchies[i],
                                                    out single, out set, new HashSet <Member>(), false);
                if (!single)
                {
                    throw new Exception(
                              string.Format(RadarUtils.GetResStr("rsMuitifilterDrillthroughError"),
                                            FGrid.FFilteredHierarchies[i].DisplayName));
                }
                sb.Append(", {");
                sb.Append(set);
                sb.Append("} on ");
                sb.Append(++j);
            }

            sb.Append(" FROM ");
            sb.Append(((MOlapCube)FCube).ApplySubcubeFilter());

            if (columns != null && columns.Count > 0)
            {
                sb.Append(" RETURN ");
                var b = false;
                foreach (var s in columns)
                {
                    if (b)
                    {
                        sb.Append(", ");
                    }
                    else
                    {
                        b = true;
                    }
                    sb.Append(s);
                }
            }

            Drillthrough(AdataSet, sb.ToString());
        }
Exemplo n.º 15
0
        private void DoRenderNode(Node node, HtmlTextWriter writer)
        {
            if (node.fParent == null && node.fChildren.FTotalCount == -1)
            {
                ChangeExpandState(node.fMemberName);
            }

            Member mm = null;

            if (node.fMemberName != "all_members")
            {
                mm = fHierarchy.FindMemberByUniqueName(node.fMemberName);
            }

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddAttribute("membername", node.fMemberName);
            writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, "NOWRAP");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            var depth = node.Depth;
            var _left = 0;

            if (depth > 0)
            {
                _left += depth * 15;
            }
            var renderExpand = (node.fChildren.FTotalCount != 0 && !Filtered ||
                                node.fChildren.frame2.Count > 0 && Filtered) &&
                               (mm == null || !mm.IsLeaf);

            if (renderExpand)
            {
                writer.AddAttribute("expandable", "true");
            }
            _left += 11;
            if (_left > 0)
            {
                writer.AddStyleAttribute(HtmlTextWriterStyle.MarginLeft, _left + "px");
            }
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            if (renderExpand)
            {
                writer.AddStyleAttribute("display", "inline-block");
                if (node.fExpanded)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-icon ui-icon-triangle-1-se");
                }
                else
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-icon ui-icon-triangle-1-e");
                }
                writer.RenderBeginTag(HtmlTextWriterTag.Span);
                writer.RenderEndTag(); // span
            }
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "checkbox");
            if (node.fChecked)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Checked, "CHECKED");
            }
            writer.RenderBeginTag(HtmlTextWriterTag.Input);
            writer.RenderEndTag(); // input
            writer.Write("&nbsp;");
            if (node == root)
            {
                writer.Write(RadarUtils.GetResStr("rsAllMembersCaption"));
            }
            else
            {
                var m = fHierarchy.FindMemberByUniqueName(node.fMemberName);
                writer.Write(m.DisplayName);
            }
            writer.RenderEndTag(); //span
            writer.RenderEndTag(); // td
            writer.RenderEndTag(); //tr
            if (!Filtered)
            {
                if (node.fExpanded)
                {
                    if (node.fChildren.frame.Count == 0)
                    {
                        RetrieveFrame(node);
                    }
                    foreach (var n in node.fChildren.frame)
                    {
                        DoRenderNode(n, writer);
                    }
                    RenderPagesLine(node, writer);
                }
            }
            else
            {
                if (node.fExpanded)
                {
                    if (node.fChildren.frame.Count == 0)
                    {
                        RetrieveFrame(node);
                    }
                    foreach (var n in node.fChildren.frame2)
                    {
                        DoRenderNode(n, writer);
                    }
                }
            }
        }
        internal static JsonDialog MakeHTML(Filter filter)
        {
            var result = new JsonDialog();
            var fGrid  = filter.Level.Grid;

            var writer = new HtmlTextWriter();

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "700");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);

            var formTitle = filter.FilterType != OlapFilterType.ftOnValue ? "rsfcTitleCaption" : "rsfcTitleValue";

            result.title = string.Format(RadarUtils.GetResStr(formTitle), filter.Level.DisplayName);

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.RenderBeginTag(HtmlTextWriterTag.Fieldset);
            writer.RenderBeginTag(HtmlTextWriterTag.Legend);
            writer.Write(RadarUtils.GetResStr("rsfcPrompt"));
            writer.RenderEndTag(); //legend

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            if (filter.FilterCondition == OlapFilterCondition.fcFirstTen)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_cbTopBottom");
                writer.RenderBeginTag(HtmlTextWriterTag.Select);

                writer.AddAttribute(HtmlTextWriterAttribute.Value, "[0]");
                writer.RenderBeginTag(HtmlTextWriterTag.Option);
                writer.Write(RadarUtils.GetResStr("rsTop"));
                writer.RenderEndTag(); //option

                writer.AddAttribute(HtmlTextWriterAttribute.Value, "[1]");
                writer.RenderBeginTag(HtmlTextWriterTag.Option);
                writer.Write(RadarUtils.GetResStr("rsBottom"));
                writer.RenderEndTag(); //option

                writer.RenderEndTag(); //select

                writer.RenderEndTag(); //td
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_tbFirst");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
                writer.AddAttribute("maxlength", "5");
                writer.AddStyleAttribute("width", "100%");
                writer.AddAttribute(HtmlTextWriterAttribute.Value,
                                    string.IsNullOrEmpty(filter.FirstValue) ? "10" : filter.FirstValue);
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag(); // input

                writer.RenderEndTag(); //td
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_cbCondition2");
                writer.RenderBeginTag(HtmlTextWriterTag.Select);

                if (string.IsNullOrEmpty(filter.SecondValue))
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Selected, "selected");
                }
                writer.AddAttribute(HtmlTextWriterAttribute.Value, "[0]");
                writer.RenderBeginTag(HtmlTextWriterTag.Option);
                writer.Write(RadarUtils.GetResStr("rsItems"));
                writer.RenderEndTag(); //option

                if (!string.IsNullOrEmpty(filter.SecondValue) && filter.SecondValue.EndsWith(".[1]"))
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Selected, "selected");
                }
                writer.AddAttribute(HtmlTextWriterAttribute.Value, "[1]");
                writer.RenderBeginTag(HtmlTextWriterTag.Option);
                writer.Write(RadarUtils.GetResStr("rsPercentFromItemsCount"));
                writer.RenderEndTag(); //option

                if (!string.IsNullOrEmpty(filter.SecondValue) && filter.SecondValue.EndsWith(".[2]"))
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Selected, "selected");
                }
                writer.AddAttribute(HtmlTextWriterAttribute.Value, "[2]");
                writer.RenderBeginTag(HtmlTextWriterTag.Option);
                writer.Write(RadarUtils.GetResStr("rsSumma"));
                writer.RenderEndTag(); //option

                writer.RenderEndTag(); //select

                writer.RenderEndTag(); //td
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(RadarUtils.GetResStr("rsIn"));

                writer.RenderEndTag(); //td
            }

            if (filter.FilterType == OlapFilterType.ftOnValue)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Width, "50%");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_cbMeasures");
                writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
                writer.RenderBeginTag(HtmlTextWriterTag.Select);

                for (var mCount = 0; mCount < fGrid.Measures.Count; mCount++)
                {
                    var M = fGrid.Measures[mCount];
                    if (filter.AppliesTo == M)
                    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Selected, "selected");
                    }
                    writer.AddAttribute(HtmlTextWriterAttribute.Value, M.UniqueName);
                    writer.RenderBeginTag(HtmlTextWriterTag.Option);
                    writer.Write(M.DisplayName);
                    writer.RenderEndTag(); //option
                }

                writer.RenderEndTag(); //select

                writer.RenderEndTag(); //td
            }

            if (filter.FilterCondition != OlapFilterCondition.fcFirstTen)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, "1");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(RadarUtils.GetResStr("rs" + filter.FilterCondition));
                writer.RenderEndTag(); //td

                var bw = filter.FilterCondition == OlapFilterCondition.fcBetween ||
                         filter.FilterCondition == OlapFilterCondition.fcNotBetween;
                writer.AddAttribute(HtmlTextWriterAttribute.Width, bw ? "25%" : "50%");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_tbFirst");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
                writer.AddStyleAttribute("width", "95%");
                if (!string.IsNullOrEmpty(filter.FirstValue))
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Value, filter.FirstValue);
                }
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag(); // input
                writer.RenderEndTag(); //td
            }

            if (filter.FilterCondition == OlapFilterCondition.fcNotBetween ||
                filter.FilterCondition == OlapFilterCondition.fcBetween)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.Write(RadarUtils.GetResStr("rsAnd"));
                writer.RenderEndTag(); //td

                writer.AddAttribute(HtmlTextWriterAttribute.Width, "25%");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_tbSecond");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
                writer.AddStyleAttribute("width", "95%");
                if (!string.IsNullOrEmpty(filter.SecondValue))
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Value, filter.SecondValue);
                }
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag(); // input

                writer.RenderEndTag(); //td
            }

            writer.RenderEndTag(); //tr
            writer.RenderEndTag(); //table
            writer.RenderEndTag(); //fieldset

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); //tr
            writer.RenderEndTag(); //table

            result.buttons = new[]
            {
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsOk"),
                    code = "RadarSoft.$('#" + fGrid.ClientID +
                           "').data('grid').applyContextFilter('cfilter|" + filter.MDXLevelName +
                           "|" + filter.FilterType + "|" + filter.FilterCondition + "')"
                },
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsCancel"),
                    code = "RadarSoft.$(this).dialog('close')"
                }
            };
            result.data = writer.ToString();
            return(result);
        }
Exemplo n.º 17
0
        internal static JsonDialog RenderException(Controls.Cube.RadarCube Cube, OlapControl Grid, Exception E)
        {
            var result = new JsonDialog();

            result.title = RadarUtils.GetResStr("rsException");

            var writer = new HtmlTextWriter();

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "500");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.Write(string.Format(RadarUtils.GetResStr("rsExceptionRaised"), E.GetType().FullName));
            writer.RenderEndTag(); //p
            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.RenderBeginTag(HtmlTextWriterTag.B);
            writer.Write(string.Format(RadarUtils.GetResStr("rsErrorMessage"), E.GetType().FullName));
            writer.RenderEndTag(); //b
            writer.RenderEndTag(); //p

            writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "490px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Margin, "5px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Overflow, "auto");
            writer.AddStyleAttribute("border", "2px inset #C0C0C0;");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "#404040;");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "90px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.Write(E.Message.Replace("\n", "<br />"));
            writer.RenderEndTag(); //div

            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.Write(string.Format(RadarUtils.GetResStr("rsAdditionalInfo"), E.GetType().FullName));
            writer.RenderEndTag(); //p


            writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "490px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Margin, "5px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Overflow, "auto");
            writer.AddStyleAttribute("border", "2px inset #C0C0C0;");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "#404040;");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "350px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            if (E.StackTrace != null)
            {
                writer.Write("----- The stack trace -----<br />");
                writer.Write(WebUtility.HtmlEncode(E.StackTrace).Replace("\r\n", "<br />"));
            }

            if (Grid.callbackExceptionData != null)
            {
                writer.Write("<br />----- The additional information -----<br />");
                foreach (var item in Grid.callbackExceptionData)
                {
                    writer.Write(item.Key + ": ");
                    if (item.Value != null)
                    {
                        writer.Write(WebUtility.HtmlEncode(item.Value).Replace("|", "&#x7C;"));
                    }
                    else
                    {
                        writer.Write("NULL");
                    }
                }
            }
            writer.RenderEndTag(); //div
            writer.RenderEndTag(); //div

            var buttons = new List <JsonDialogButton>();

            if (!string.IsNullOrEmpty(Grid.SupportEMail))
            {
                var subj = "RadarCube ASP.NET OLAP Grid error";
                if (Cube != null)
                {
                    if (Cube.GetProductID() == "RC-ASP-MSAS")
                    {
                        subj = "RadarCube ASP.NET for MSAS error";
                    }
                    if (Cube.GetProductID() == "RC-ASP-DESK")
                    {
                        subj = "RadarCube ASP.NET Desktop error";
                    }
                }

                buttons.Add(new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsSendToSupport"),
                    code = "window.location = window.location.pathname; " +
                           //"window.open('mailto:" + Grid.SupportEMail + "?subject=" + DoEncode(subj) +
                           //"&body=" + DoEncode(E.Message + "\n" + E.StackTrace) + "'); " +
                           "RadarSoft.$(this).dialog('close');"
                });
            }

            buttons.Add(new JsonDialogButton
            {
                text = RadarUtils.GetResStr("rsClose"),
                code = "RadarSoft.$(this).dialog('close')"
            });

            result.data    = writer.ToString();
            result.buttons = buttons.ToArray();
            return(result);
        }
Exemplo n.º 18
0
        internal void RenderButtons(HtmlTextWriter writer)
        {
            var needSeparator          = false;
            var beginRenderAreaButtons = false;
            ClearLayoutToolboxButton clearLayoutButton = null;

            foreach (var button in fToolItems.Values)
            {
                if (button.Visible)
                {
                    if (button is AllAreasToolboxButton ||
                        button is PivotAreaToolboxButton ||
                        button is DataAreaToolboxButton ||
                        button is ClearLayoutToolboxButton)
                    {
                        if (button is ClearLayoutToolboxButton)
                        {
                            clearLayoutButton = button as ClearLayoutToolboxButton;
                        }

                        if (beginRenderAreaButtons == false)
                        {
                            writer.AddAttribute(HtmlTextWriterAttribute.Style, "margin-right: 1px");
                            writer.AddAttribute(HtmlTextWriterAttribute.Class, "rs_layout_toolbox_button");
                            writer.AddAttribute(HtmlTextWriterAttribute.Title, RadarUtils.GetResStr("toolbox_Button_Layout"));
                            writer.RenderBeginTag(HtmlTextWriterTag.Button);

                            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-icon-font ui-icon-font-template");
                            writer.RenderBeginTag(HtmlTextWriterTag.Span);
                            writer.RenderEndTag(); // span
                            writer.RenderEndTag(); // button

                            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
                            writer.AddStyleAttribute(HtmlTextWriterStyle.Position, "absolute");
                            writer.AddStyleAttribute(HtmlTextWriterStyle.ZIndex, "1000");
                            writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "center");
                            writer.AddAttribute(HtmlTextWriterAttribute.Class, "rs_layout_menu ui-widget-content");
                            writer.RenderBeginTag(HtmlTextWriterTag.Div);

                            writer.AddAttribute(HtmlTextWriterAttribute.Class, "rs_layout_toolbox_menu");
                            writer.RenderBeginTag(HtmlTextWriterTag.Ul);
                            beginRenderAreaButtons = true;
                        }

                        if (button.NeedSeparator)
                        {
                            needSeparator = true;
                        }

                        if (button is ClearLayoutToolboxButton)
                        {
                            continue;
                        }

                        button.RenderContents(writer);

                        if (fToolItems.Values.Count - 1 != fToolItems.Keys.ToList().IndexOf(button.ButtonID))
                        {
                            continue;
                        }
                    }

                    if (beginRenderAreaButtons)
                    {
                        if (clearLayoutButton != null)
                        {
                            writer.RenderBeginTag("li");
                            writer.RenderEndTag();//li
                            clearLayoutButton.RenderContents(writer);
                        }

                        writer.RenderEndTag(); //ul
                        writer.RenderEndTag(); //div

                        if (needSeparator)
                        {
                            RenderSeparator(writer);
                        }

                        needSeparator          = false;
                        beginRenderAreaButtons = false;

                        if (fToolItems.Values.Count - 1 == fToolItems.Keys.ToList().IndexOf(button.ButtonID))
                        {
                            break;
                        }
                    }

                    if ((button is ConnectToolboxButton || button is MDXQueryButton) &&
                        MDCube == null)
                    {
                        continue;
                    }

                    if ((button == fZoomOutButton ||
                         button == fZoomInButton ||
                         button == fResetZoomButton) &&
                        OlapControl.AnalysisType != AnalysisType.Chart)
                    {
                        continue;
                    }

                    if (button == fResizingButton && OlapControl.AnalysisType == AnalysisType.Chart)
                    {
                        continue;
                    }

                    if (button == FModeButton && !(OlapControl is OlapAnalysis))
                    {
                        continue;
                    }

                    if (button is MeasurePlaceToolboxButton && OlapControl.AnalysisType == AnalysisType.Chart)
                    {
                        continue;
                    }

                    button.RenderContents(writer);
                    if (button.NeedSeparator)
                    {
                        RenderSeparator(writer);
                    }
                }
            }

            if (CustomButtons.Count > 0)
            {
                foreach (var cb in CustomButtons)
                {
                    cb.fOwner = this;
                    if (cb.Visible)
                    {
                        cb.RenderContents(writer);
                    }
                    if (cb.NeedSeparator)
                    {
                        RenderSeparator(writer);
                    }
                }
            }
        }
Exemplo n.º 19
0
        public JsonSettings(OlapControl grid)
        {
            uid                     = grid.UniqueID;
            cid                     = grid.ClientID;
            loading                 = RadarUtils.GetResStr("rsLoading");
            processing              = RadarUtils.GetResStr("rsPleaseWait");
            popupLoading            = RadarUtils.GetResStr("rsPopupLoading");
            url_nextlevel           = grid.ImageUrl("svernut_grey.png");
            hint_DrillNextLevel     = RadarUtils.GetResStr("hint_DrillNextLevel");
            url_nexthier            = grid.ImageUrl("plus.png");
            hint_DrillNextHierarchy = RadarUtils.GetResStr("hint_DrillNextHierarchy");
            url_collapsedh          = grid.ImageUrl("minus.png");
            url_collapsedl          = grid.ImageUrl("razvernut_grey.png");
            url_collapsedp          = grid.ImageUrl("razvernut_blue.png");
            hint_CollapseCell       = RadarUtils.GetResStr("hint_CollapseCell");
            url_nextchildren        = grid.ImageUrl("svernut_blue.png");
            hint_DrillParentChild   = RadarUtils.GetResStr("hint_DrillParentChild");
            url_del                 = grid.ImageUrl("del.png");
            url_delover             = grid.ImageUrl("delover.png");
            url_filter              = grid.ImageUrl("filter.png");
            url_filterover          = grid.ImageUrl("filterover.png");
            url_loader              = grid.ImageUrl("AjaxLoader.gif");
            url_loaderbg            = grid.ImageUrl("loader_bg.gif");
            url_DeleteGroup         = grid.ImageUrl("DeleteGroup.gif");
            pagePrompt              = RadarUtils.GetResStr("rsEnterPageNumber");
            rsOk                    = RadarUtils.GetResStr("rsOk");
            rsCancel                = RadarUtils.GetResStr("rsCancel");
            rsMax                   = RadarUtils.GetResStr("rsMax");
            rsMin                   = RadarUtils.GetResStr("rsMin");

            rsAverage         = RadarUtils.GetResStr("rsAverage");
            rsCount           = RadarUtils.GetResStr("rsCount");
            rsSumma           = RadarUtils.GetResStr("rsSumma");
            rsRemove          = RadarUtils.GetResStr("rsRemove");
            rsBelowThan       = RadarUtils.GetResStr("MF_BelowThan");
            rsMoreThan        = RadarUtils.GetResStr("MF_MoreThan");
            rsBelowAverage    = RadarUtils.GetResStr("MF_BelowAverage");
            rsMoreAverage     = RadarUtils.GetResStr("MF_MoreAverage");
            rsNearAverage     = RadarUtils.GetResStr("MF_NearAverage");
            rsFarAverage      = RadarUtils.GetResStr("MF_FarAverage");
            loadlayoutTitle   = ((OlapGrid)grid).Toolbox.LoadLayoutButton.FileNamePrompt;
            loadsettingsTitle = RadarUtils.GetResStr("rsLoadSettingsDialog_Title");

            if (grid.FFilteredHierarchies != null)
            {
                filtered = grid.FFilteredHierarchies.Select(item => item.UniqueName).Union(
                    grid.FFilteredLevels.Select(item => item.UniqueName)).Distinct().Union(
                    grid.Measures.Where(item => item.Filter != null).Select(item => item.UniqueName)).ToArray();
            }

            clientMessage  = grid._ClientMassage;
            messageHandler = grid.MessageHandler;

            filterClientId = ((OlapGrid)grid).Filter.ClientID;

            //toolboxClientId = grid.GetRelatedToolboxControlClientId();
            //string ua = "alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|panasonic|philips|phone|sagem|sharp|sie-|smartphone|sony|symbian|t-mobile|telus|vodafone|wap|webos|wireless|xda|xoom|zte";
            //if (grid.Page != null)
            //    isMobile = (ua.Split('|').Any(item => grid.Page.Request.UserAgent.ToLower().Contains(item)));

            heditorWidth     = ((OlapGrid)grid).HierarchyEditorStyle.Width;
            heditorResizable = ((OlapGrid)grid).HierarchyEditorStyle.Resizable;

            width  = grid.Width;
            height = grid.Height;

            allowSelectionFormatting = ((OlapGrid)grid).AllowSelectionFormatting;
            allowResizing            = ((OlapGrid)grid).AllowResizing;
        }
Exemplo n.º 20
0
        internal JsonDialog Render()
        {
            var result = new JsonDialog();
            var writer = new HtmlTextWriter();

            writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
            writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
            writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            //writer.AddStyleAttribute(HtmlTextWriterStyle.Width, (fGrid.fHierarchyEditorStyle.Width + 4).ToString() + "px");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);

            result.title = RadarUtils.GetResStr("repHierarhyEditor") + ": " + fHierarchy.DisplayName;

            // context filter
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingBottom, "5px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingTop, "2px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.Write("<b>" + RadarUtils.GetResStr("rsContextFilterSettings") + "</b>");
            writer.RenderEndTag(); //div

            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingBottom, "2px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.Write(RadarUtils.GetResStr("repHierarhyEditorLevel"));
            writer.RenderEndTag(); //div
            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingBottom, "5px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "heditor_selectlevel");
            writer.RenderBeginTag(HtmlTextWriterTag.Select);
            if (fHierarchy.Origin == HierarchyOrigin.hoParentChild)
            {
                for (var i = 0; i < fHierarchy.CubeHierarchy.FMDXLevelNames.Count; i++)
                {
                    var s = fHierarchy.CubeHierarchy.FMDXLevelNames[i];

                    if (fContextLevelName == null && i == 0)
                    {
                        writer.AddAttribute("selected", "selected");
                    }

                    if (s == fContextLevelName)
                    {
                        writer.AddAttribute("selected", "selected");
                    }

                    writer.AddAttribute(HtmlTextWriterAttribute.Value, s);
                    writer.RenderBeginTag(HtmlTextWriterTag.Option);
                    writer.Write(s);
                    writer.RenderEndTag(); //option
                }
            }
            if (fHierarchy.CubeHierarchy.FMDXLevelNames.Count == 0)
            {
                for (var i = 0; i < fHierarchy.Levels.Count; i++)
                {
                    var l = fHierarchy.Levels[i];

                    if (fContextLevelName == null && i == 0)
                    {
                        writer.AddAttribute("selected", "selected");
                    }

                    if (l.UniqueName == fContextLevelName)
                    {
                        writer.AddAttribute("selected", "selected");
                    }

                    writer.AddAttribute(HtmlTextWriterAttribute.Value, l.UniqueName);
                    writer.RenderBeginTag(HtmlTextWriterTag.Option);
                    writer.Write(l.DisplayName);
                    writer.RenderEndTag(); //option
                }
            }

            writer.RenderEndTag(); //select

            writer.RenderEndTag(); //div

            var lv  = fHierarchy.Levels.Find(fContextLevelName) ?? fHierarchy.Levels[0];
            var mnu = new GenericMenu();

            fGrid.FillFilterMenu(mnu, lv, fContextLevelName, null,
                                 "RadarSoft.$('#" + fGrid.ClientID + "').data('grid').heditor.cancel2('" +
                                 RadarUtils.GetResStr("rsLoading") + "')");
//            fGrid.FillFilterMenu(mnu, lv, fContextLevelName, null, "");
            fGrid.mnu_cf.Embedded = true;
            fGrid.ConvertGenericMenu(mnu, fGrid.mnu_cf);

            if (fGrid.mnu_cf.Items.Count > 0)
            {
                fGrid.mnu_cf.RenderControl(writer);
            }

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingBottom, "5px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingTop, "5px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.Write("<b>" + RadarUtils.GetResStr("rsMemberFilterSettings") + "</b>");
            writer.RenderEndTag(); //div

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingBottom, "5px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-widget-content");
            writer.AddAttribute(HtmlTextWriterAttribute.Id, "olapgrid_HFilter");
            writer.AddAttribute(HtmlTextWriterAttribute.Rows, "2");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Textarea);
            if (FFilterString != "")
            {
                writer.Write(FFilterString);
            }
            writer.RenderEndTag(); // textarea
            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.AddAttribute(HtmlTextWriterAttribute.Align, "right");
            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingBottom, "5px");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "heditor_exactmatching");
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "checkbox");
            writer.AddAttribute("checked", "checked");
            writer.RenderBeginTag(HtmlTextWriterTag.Input);
            writer.RenderEndTag(); // input

            writer.Write(RadarUtils.GetResStr("rshExactMatching"));

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "olapgrid_HFilter_btn");
            writer.AddStyleAttribute(HtmlTextWriterStyle.MarginLeft, "20px");
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.Write(RadarUtils.GetResStr("rsFind"));
            //HtmlImage img = new HtmlImage();
            //img.Src = OlapGrid.images.ImageUrl("FilterHierarchy.png", fGrid.Page);
            //img.Alt = RadarUtils.GetResStr("rsFilterTree");
            //img.RenderControl(writer);
            writer.RenderEndTag(); // filter button

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddStyleAttribute(HtmlTextWriterStyle.Overflow, "auto");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Height, fGrid.fHierarchyEditorStyle.TreeHeight + "px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-widget ui-widget-content");
            writer.AddAttribute(HtmlTextWriterAttribute.Id, "heditor_TREE");
            writer.AddStyleAttribute(HtmlTextWriterStyle.MarginBottom, "5px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);

            DoRenderTree(writer);

            writer.RenderEndTag(); // div

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr 2 filter box


            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
            writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
            writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
            writer.AddAttribute(HtmlTextWriterAttribute.Align, "right");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "btnApplyFilter");
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.Write(RadarUtils.GetResStr("rsApply"));
            writer.RenderEndTag(); // button
            writer.RenderEndTag(); //td

            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, "btnResetFilter");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.Write("Confirm");
            writer.RenderEndTag(); // button
            writer.RenderEndTag(); //td


            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.AddStyleAttribute(HtmlTextWriterStyle.MarginLeft, "20px");
            writer.AddStyleAttribute(HtmlTextWriterStyle.MarginRight, "20px");
            writer.RenderBeginTag(HtmlTextWriterTag.Div);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, "btnCancelFilter");
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.Write(RadarUtils.GetResStr("rsCancel"));
            writer.RenderEndTag(); // filter button

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "btnCancelResetFilter");
            writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.Write("Cancel");
            writer.RenderEndTag(); // button
            writer.RenderEndTag(); // div
            writer.RenderEndTag(); //td

            writer.RenderEndTag(); // tr
            writer.RenderEndTag(); // table

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr 2 filter box

            writer.RenderEndTag(); // table

            result.buttons = new JsonDialogButton[0];
            result.data    = writer.ToString();
            return(result);
        }
        internal static JsonDialog MakeHTML(MeasureFilter filter)
        {
            var result = new JsonDialog();
            var fGrid  = filter.Measure.Grid;

            var writer = new HtmlTextWriter();

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "700");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);

            result.title = string.Format(RadarUtils.GetResStr("rsfcTitleValue"), filter.Measure.DisplayName);

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-widget-content");
            writer.RenderBeginTag(HtmlTextWriterTag.Fieldset);
            writer.RenderBeginTag(HtmlTextWriterTag.Legend);
            writer.Write(RadarUtils.GetResStr("rsfcPrompt"));
            writer.RenderEndTag(); //legend

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, "1");
            writer.AddAttribute(HtmlTextWriterAttribute.Width, "30%");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_cond");
            writer.RenderBeginTag(HtmlTextWriterTag.Select);

            OlapFilterCondition[] value_filters =
            {
                OlapFilterCondition.fcEqual,
                OlapFilterCondition.fcNotEqual,  OlapFilterCondition.fcLess,
                OlapFilterCondition.fcNotLess,   OlapFilterCondition.fcGreater,
                OlapFilterCondition.fcNotGreater,OlapFilterCondition.fcBetween,
                OlapFilterCondition.fcNotBetween
            };

            for (var fCount = 0; fCount < value_filters.Length; fCount++)
            {
                var fc = value_filters[fCount];
                if (fc == filter.FilterCondition)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Selected, "selected");
                }
                writer.AddAttribute(HtmlTextWriterAttribute.Value, fc.ToString());
                writer.RenderBeginTag(HtmlTextWriterTag.Option);
                writer.Write(RadarUtils.GetResStr("rs" + fc));
                writer.RenderEndTag(); //option
            }

            writer.RenderEndTag(); //select

            writer.RenderEndTag(); //td

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "30%");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_tbFirst");
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
            writer.AddAttribute("class", "ui-widget-content");
            writer.AddStyleAttribute("width", "95%");
            if (!string.IsNullOrEmpty(filter.FirstValue))
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Value, filter.FirstValue);
            }
            writer.RenderBeginTag(HtmlTextWriterTag.Input);
            writer.RenderEndTag(); // input

            writer.RenderEndTag(); //td

            writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            if (filter.FilterCondition != OlapFilterCondition.fcNotBetween &&
                filter.FilterCondition != OlapFilterCondition.fcBetween)
            {
                writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none");
            }
            writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_lbAnd");
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.Write(RadarUtils.GetResStr("rsAnd"));
            writer.RenderEndTag(); //span
            writer.RenderEndTag(); //td

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "30%");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_tbSecond");
            writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
            writer.AddAttribute("class", "ui-widget-content");
            writer.AddStyleAttribute("width", "95%");
            if (filter.FilterCondition != OlapFilterCondition.fcNotBetween &&
                filter.FilterCondition != OlapFilterCondition.fcBetween)
            {
                writer.AddStyleAttribute("display", "none");
            }

            if (!string.IsNullOrEmpty(filter.SecondValue))
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Value, filter.SecondValue);
            }
            writer.RenderBeginTag(HtmlTextWriterTag.Input);
            writer.RenderEndTag(); // input

            writer.RenderEndTag(); //td

            writer.RenderEndTag(); //tr

            if (fGrid.Cube.GetProductID() == RadarUtils.rsAspNetDesktop)
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "4");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.Write(RadarUtils.GetResStr("rsRestricts"));

                writer.AddStyleAttribute(HtmlTextWriterStyle.MarginLeft, "10px");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);


                writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_RestrictsAggregates");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "radio");
                if (filter.RestrictsTo == MeasureFilterRestriction.mfrAggregatedValues)
                {
                    writer.AddAttribute("checked");
                }
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag(); // input

                writer.Write(RadarUtils.GetResStr("rsAggregatedValues"));

                writer.WriteBreak();

                writer.AddAttribute(HtmlTextWriterAttribute.Id, "ODLG_RestrictsFacts");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "radio");
                if (filter.RestrictsTo == MeasureFilterRestriction.mfrFactTable)
                {
                    writer.AddAttribute("checked");
                }
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag(); // input

                writer.Write(RadarUtils.GetResStr("rsFactTableValues"));
                writer.RenderEndTag(); //div

                writer.RenderEndTag(); //td
                writer.RenderEndTag(); //tr
            }

            writer.RenderEndTag(); //table
            writer.RenderEndTag(); //fieldset

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); //tr

            writer.RenderEndTag(); //table

            result.buttons = new[]
            {
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsApply"),
                    code = "RadarSoft.$('#" + fGrid.ClientID +
                           "').data('grid').applyMeasureFilter('cmfilter|" +
                           filter.Measure.UniqueName + "')"
                },
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("repResetFilter"),
                    code = "RadarSoft.$('#" + fGrid.ClientID +
                           "').data('grid').clearMeasureFilter('" + filter.Measure.UniqueName +
                           "')"
                },
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsCancel"),
                    code = "RadarSoft.$(this).dialog('close')"
                }
            };

            result.data = writer.ToString();
            return(result);
        }
 public LocalizedDescriptionAttribute(string key)
     : base(key)
 {
     DescriptionValue = RadarUtils.GetResStr(key);
 }
Exemplo n.º 23
0
        internal string GetBucketName(string FormatString)
        {
            int    Index = 0, Index1 = 0, Index2 = 0;
            double Value = 0;
            Bucket NextBucket;
            var    ValueString = FormatString;
            //begin
            var Result       = FormatString;
            var OperatorText = ExtractOperator(Result, Index1, Index2);

            while (OperatorText.IsFill())
            {
                if (WideSameText(OperatorText, __FIRST) || WideSameText(OperatorText, __MIN))
                {
                    Value = fMinValue;
                }
                else if (WideSameText(OperatorText, __LAST) || WideSameText(OperatorText, __MAX))
                {
                    Value = fMaxValue;
                }
                else if (WideSameText(OperatorText, __INDEX))
                {
                    Value = Index;
                }
                else if (WideSameText(OperatorText, __PREVIOUS_LAST) || WideSameText(OperatorText, __PREVIOUS_MAX))
                {
                    if (Index == 0)
                    {
                        throw new Exception(string.Format(RadarUtils.GetResStr("rsecCantApplyOperatorToFirst"),
                                                          OperatorText));
                    }

                    NextBucket = fBucketCollection[Index - 1];
                    Value      = NextBucket.fMaxValue;
                }
                else if (WideSameText(OperatorText, __NEXT_FIRST) || WideSameText(OperatorText, __NEXT_MIN))
                {
                    if (Index == fBucketCollection.Count - 1)
                    {
                        throw new Exception(string.Format(RadarUtils.GetResStr("rsecCantApplyOperatorToLast"),
                                                          OperatorText));
                    }

                    NextBucket = fBucketCollection[Index + 1];
                    Value      = NextBucket.fMinValue;
                }
                else if (WideSameText(OperatorText, __PREVIOUS_MIN))
                {
                    if (Index == 0)
                    {
                        throw new Exception(string.Format(RadarUtils.GetResStr("rsecCantApplyOperatorToFirst"),
                                                          OperatorText));
                    }

                    NextBucket = fBucketCollection[Index - 1];
                    Value      = NextBucket.fMinValue;
                }
                else if (WideSameText(OperatorText, __NEXT_MAX))
                {
                    if (Index == fBucketCollection.Count - 1)
                    {
                        throw new Exception(string.Format(RadarUtils.GetResStr("rsecCantApplyOperatorToLast"),
                                                          OperatorText));
                    }
                    NextBucket = fBucketCollection[Index + 1];
                    Value      = NextBucket.fMaxValue;
                }
                else
                {
                    throw new Exception(string.Format(RadarUtils.GetResStr("rsecUnknownBucketOperator"), OperatorText));
                }

                ValueString = ValueString.Replace(RadarUtils.GetResStr("rsOperatorSign") + "{" + OperatorText + "}",
                                                  Value.ToString());
                Result = Result.Substring(0, Index1) + ValueString;

                OperatorText = ExtractOperator(Result, Index1, Index2);
            }
            return(Result);
        }
 internal static void InvalidPropError(long Pos)
 {
     throw new StreamException(string.Format(RadarUtils.GetResStr("rsInvalidPropertyError"), Pos));
 }
Exemplo n.º 25
0
        public RCell(ICell cell)
            : this()
        {
            if (cell.CellType == CellType.ctData)
            {
                if (((IDataCell)cell).Address != null)
                {
                    if (((IDataCell)cell).Address.Measure != null)
                    {
                        Measure = new ClientMeasure(((IDataCell)cell).Address.Measure);
                    }
                }
            }

            Row       = cell.PagedStartRow;
            Col       = cell.PagedStartColumn;
            RowSpan   = cell.RowSpan;
            ColSpan   = cell.ColSpan;
            CellType  = cell.CellType;
            CellIndex = cell.CellSet.ColumnCount * cell.StartRow + cell.StartColumn;
            Tooltip   = cell.Description;

            Text = cell.Value;

            if (cell is IDataCell)
            {
                var dc = (IDataCell)cell;
                Comment = dc.Comment;
                IsTotal = dc.IsTotal;

                if (!string.IsNullOrEmpty(dc.FontFamily))
                {
                    FontFamily = dc.FontFamily;
                }
                if (dc.FontSize.HasValue)
                {
                    FontSize = Convert.ToInt32(dc.FontSize.Value);
                }
                if (dc.FontStyle.HasValue)
                {
                    IsBold      = (dc.FontStyle.Value & FontStyle.Bold) == FontStyle.Bold;
                    IsItalic    = (dc.FontStyle.Value & FontStyle.Italic) == FontStyle.Italic;
                    IsUnderline = (dc.FontStyle.Value & FontStyle.Underline) == FontStyle.Underline;
                    IsStrikeout = (dc.FontStyle.Value & FontStyle.Strikeout) == FontStyle.Strikeout;
                }
                if (dc.Data != null)
                {
                    Data = dc.Data;
                    //MeasureMode = (dc.Address ==  null) ?  "" : dc.Address.MeasureMode.Mode.fUniqueName.ToString();
                    MeasureMode = dc.Address == null ? "" : dc.Address.MeasureMode.Mode.ToString();

                    if (dc.Address != null && dc.Address.Measure != null && dc.Address.Measure.IsKPI &&
                        dc.Address.Measure.CubeMeasure != null &&
                        dc.Address.Measure.CubeMeasure.KPIStatusImageIndex != -1)
                    {
                        KPIStatusImageIndex = dc.Address.Measure.CubeMeasure.KPIStatusImageIndex;
                    }

                    if (dc.Address != null && dc.Address.Measure != null && dc.Address.Measure.IsKPI &&
                        dc.Address.Measure.CubeMeasure != null &&
                        dc.Address.Measure.CubeMeasure.KPITrendImageIndex != -1)
                    {
                        KPITrendImageIndex = dc.Address.Measure.CubeMeasure.KPITrendImageIndex;
                    }

                    if (dc.Address != null)
                    {
                        var rng = cell.CellSet.Grid.GetMeasureRange(dc.Address);
                        if (rng != null)
                        {
                            var d = -1.0;

                            if (dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentRowTotal ||
                                dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentColTotal ||
                                dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentGrandTotal ||
                                dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentParentColItem ||
                                dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentParentRowItem)
                            {
                                object o = null;
                                var    l = cell.CellSet.Grid.FEngine.GetMetaline(dc.Address.FLineID)
                                           .GetLine(dc.Address.FHierID, dc.Address.Measure, dc.Address.MeasureMode);

                                if (l != null)
                                {
                                    l.GetCell(dc.Address, out o);
                                }

                                if (o != null)
                                {
                                    d = double.Parse(o.ToString());
                                }
                            }

                            if (rng.Item1 == rng.Item2)
                            {
                                Rank = 1;
                            }
                            else
                            {
                                try
                                {
                                    if (dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentRowTotal ||
                                        dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentColTotal ||
                                        dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentGrandTotal ||
                                        dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentParentColItem ||
                                        dc.Address.MeasureMode.Mode == MeasureShowModeType.smPercentParentRowItem)
                                    {
                                        if (d != -1 && !double.IsNaN(d))
                                        {
                                            var val = d;
                                            Rank = (val - rng.Item1) / (rng.Item2 - rng.Item1);
                                        }
                                    }
                                    else
                                    {
                                        var val = Convert.ToDouble(dc.Data);
                                        Rank = (val - rng.Item1) / (rng.Item2 - rng.Item1);
                                    }
                                }
                                catch
                                {
                                    ;
                                }
                            }
                        }
                    }
                }

                RankBackground   = ((DataCell)dc).RankBackground;
                RankForeground   = ((DataCell)dc).RankForeground;
                MemberBackground = ((DataCell)dc).MemberBackground;
                MemberForeground = ((DataCell)dc).MemberForeground;
            }
            if (cell is IMemberCell)
            {
                var mc = (IMemberCell)cell;
                Indent       = mc.Indent;
                Comment      = mc.Comment;
                MemberData   = new RCellMember(mc);
                IsTotal      = mc.IsTotal;
                DrillActions = (int)mc.PossibleDrillActions;
                if (mc.Member != null)
                {
                    UniqueName = mc.Member.UniqueName;
                }
                if (mc.Member is CalculatedMember)
                {
                    var cm = (CalculatedMember)mc.Member;
                    if (!string.IsNullOrEmpty(cm.Expression))
                    {
                        Expression = cm.Expression;
                    }
                }
                if (mc.IsPager)
                {
                    var MC = mc as MemberCell;
                    Text = RadarUtils.GetResStr("rsPages");
                }
                if (mc.Member != null && mc.Member.MemberType == MemberType.mtMeasure)
                {
                    var m = cell.CellSet.Grid.Measures.Find(mc.Member.UniqueName);
                    if (m.AggregateFunction == OlapFunction.stCalculated)
                    {
                        Expression = m.Expression;
                        Format     = m.DefaultFormat;
                    }
                }
            }
            if (cell is ILevelCell)
            {
                var lc = (ILevelCell)cell;
                Indent       = lc.Indent;
                DrillActions = (int)lc.PossibleDrillActions;
                LevelData    = new RCellLevel(lc);
                if (lc.Level != null)
                {
                    UniqueName = lc.Level.UniqueName;
                }
            }

            cell.CellSet.Grid.InitChartAreas(this, cell);
        }
        internal static JsonDialog MakeHTMLMember(OlapControl grid, Level level, CalculatedMember member)
        {
            var result = new JsonDialog();

            result.width = 500;
            string uniqueName;
            string displayName;
            string expression;

            if (member == null)
            {
                uniqueName  = "NULL";
                displayName = RadarUtils.GetResStr("rsTypeNameMember");
                expression  = "0";
            }
            else
            {
                uniqueName  = member.UniqueName;
                displayName = member.DisplayName;
                expression  = member.Expression;
            }

            var writer = new HtmlTextWriter();

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);

            if (member == null)
            {
                result.title = RadarUtils.GetResStr("rsNewCalculatedMember");
            }
            else
            {
                result.title = string.Format(RadarUtils.GetResStr("rsEditPropName"), member.DisplayName);
            }

            if (member == null)
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.Write(RadarUtils.GetResStr("exprt_Caption") + ":");

                writer.RenderEndTag(); //td
                writer.RenderEndTag(); // tr

                writer.RenderBeginTag(HtmlTextWriterTag.Tr);

                writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, "20px");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddAttribute(HtmlTextWriterAttribute.Id, "OCM_tbDisplayName");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
                writer.AddAttribute("class", "ui-widget-content");
                writer.AddStyleAttribute("width", "95%");
                writer.AddAttribute(HtmlTextWriterAttribute.Value, displayName);
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag(); // input

                writer.RenderEndTag(); //td
                writer.RenderEndTag(); // tr
            }

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.Write(RadarUtils.GetResStr("rsExpression") + ":");

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, "20px");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-widget-content");
            writer.AddAttribute(HtmlTextWriterAttribute.Id, "OCM_tbExpression");
            writer.AddAttribute(HtmlTextWriterAttribute.Value, expression);
            writer.AddStyleAttribute("width", "95%");
            writer.AddStyleAttribute("height", "150px");
            writer.RenderBeginTag(HtmlTextWriterTag.Textarea);
            writer.RenderEndTag(); // textarea

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr
            writer.RenderEndTag(); // table

            result.buttons = new[]
            {
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsOk"),
                    code = "RadarSoft.$('#" + grid.ClientID +
                           "').data('grid').applyCalculated('applycalcmember|" +
                           level.UniqueName + "|" + uniqueName + "')"
                },
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsCancel"),
                    code = "RadarSoft.$(this).dialog('close')"
                }
            };

            result.data = writer.ToString();
            return(result);
        }
 public LocalizedDisplayNameAttribute(string key)
     : base(key)
 {
     DisplayNameValue = RadarUtils.GetResStr(key);
 }
        internal static JsonDialog MakeHTML(OlapControl grid, Measure measure)
        {
            var result = new JsonDialog();

            result.width = 500;
            string uniqueName;
            string displayName;
            string expression;
            string format;

            if (measure == null)
            {
                uniqueName  = "NULL";
                displayName = RadarUtils.GetResStr("rsTypeNameMeasure");
                expression  = "";
                format      = "Standard";
            }
            else
            {
                uniqueName  = measure.UniqueName;
                displayName = measure.DisplayName;
                expression  = measure.Expression;
                format      = measure.DefaultFormat;
            }

            var writer = new HtmlTextWriter();

            writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            if (measure == null)
            {
                result.title = RadarUtils.GetResStr("d_edNewCalculatedMeas");
            }
            else
            {
                result.title = string.Format(RadarUtils.GetResStr("rsEditPropName"), measure.DisplayName);
            }

            if (measure == null)
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.Write(RadarUtils.GetResStr("exprt_Caption") + ":");

                writer.RenderEndTag(); //td
                writer.RenderEndTag(); // tr

                writer.RenderBeginTag(HtmlTextWriterTag.Tr);

                writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, "20px");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddAttribute(HtmlTextWriterAttribute.Id, "OCM_tbDisplayName");
                writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
                writer.AddAttribute("class", "ui-widget-content");
                writer.AddStyleAttribute("width", "95%");
                writer.AddAttribute(HtmlTextWriterAttribute.Value, displayName);
                writer.RenderBeginTag(HtmlTextWriterTag.Input);
                writer.RenderEndTag(); // input


                writer.RenderEndTag(); //td
                writer.RenderEndTag(); // tr
            }

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.Write(RadarUtils.GetResStr("rsFormat") + ":");

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, "20px");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            //Ravish Begin
            writer.AddAttribute(HtmlTextWriterAttribute.Id, "OCM_tbFormat");
            writer.RenderBeginTag(HtmlTextWriterTag.Select);

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "#");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("#");
            writer.RenderEndTag(); //option

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "#,#");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("#,#");
            writer.RenderEndTag(); //option

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "#,#.0");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("#,#.0");
            writer.RenderEndTag(); //option

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "#,#.00");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("#,#.00");
            writer.RenderEndTag(); //option

            writer.AddAttribute(HtmlTextWriterAttribute.Selected, "selected");
            writer.AddAttribute(HtmlTextWriterAttribute.Value, "Standard");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("Standard");
            writer.RenderEndTag(); //option

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "Currency");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("Currency");
            writer.RenderEndTag(); //option

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "Short Date");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("Short Date");
            writer.RenderEndTag(); //option

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "Short Time");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("Short Time");
            writer.RenderEndTag(); //option

            writer.AddAttribute(HtmlTextWriterAttribute.Value, "Percent");
            writer.RenderBeginTag(HtmlTextWriterTag.Option);
            writer.Write("Percent");
            writer.RenderEndTag(); //option

            writer.RenderEndTag(); //select

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr


            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            //Ravish Begin
            writer.AddStyleAttribute(HtmlTextWriterStyle.VerticalAlign, "bottom");
            //Ravish End
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.Write(RadarUtils.GetResStr("rsExpression") + ":");

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr

            //Ravish Begin
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, "20px");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            writer.RenderBeginTag(HtmlTextWriterTag.Td);


            writer.AddAttribute(HtmlTextWriterAttribute.Id, "OCM_tbMeasures");
            writer.RenderBeginTag(HtmlTextWriterTag.Select);

            for (var mCount = 0; mCount < grid.Cube.Measures.Count; mCount++)
            {
                if (grid.Cube.Measures[mCount].VisibleInTree)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Value, MakeProperName(grid.Cube.Measures[mCount]));
                    writer.RenderBeginTag(HtmlTextWriterTag.Option);
                    writer.Write(grid.Cube.Measures[mCount].DisplayName);
                    writer.RenderEndTag(); //option
                }
            }

            writer.RenderEndTag(); //select


            writer.RenderEndTag(); //td
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Id, "rs_uibtn");
            writer.AddAttribute("onclick", "RadarSoft.$('#" + grid.ClientID + "').data('grid').insertMeasure()");
            writer.AddStyleAttribute("margin-left", "5px");
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.AddStyleAttribute(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.Write(RadarUtils.GetResStr("rsInsert"));
            writer.RenderEndTag(); // span
            writer.RenderEndTag(); // button

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr
            writer.RenderEndTag(); // table

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr
            //Ravish End

            writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, "20px");
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ui-widget-content");
            writer.AddAttribute(HtmlTextWriterAttribute.Id, "OCM_tbExpression");
            writer.AddAttribute(HtmlTextWriterAttribute.Value, expression);
            writer.AddStyleAttribute("width", "95%");
            writer.AddStyleAttribute("height", "150px");
            writer.RenderBeginTag(HtmlTextWriterTag.Textarea);
            writer.RenderEndTag(); // textarea

            writer.RenderEndTag(); //td
            writer.RenderEndTag(); // tr

            writer.RenderEndTag(); // table

            result.buttons = new[]
            {
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsOk"),
                    code = "RadarSoft.$('#" + grid.ClientID +
                           "').data('grid').applyCalculated('applycalcmeasure|" + uniqueName +
                           "')"
                },
                new JsonDialogButton
                {
                    text = RadarUtils.GetResStr("rsCancel"),
                    code = "RadarSoft.$(this).dialog('close')"
                }
            };

            result.data = writer.ToString();
            return(result);
        }
Exemplo n.º 29
0
        internal virtual bool GetValueForSort(CellsetMember x, ICubeAddress y,
                                              List <Member> fColMembers, List <Member> fRowMembers, out object Value)
        {
            var a = x.GetAddress();

            a.Merge(y);
            var b = GetCellValue(a, out Value);

            if (!b)
            {
                return(false);
            }
            var sm = a.MeasureMode;

            if (sm == null || IsNativeDataPresent(sm))
            {
                return(b);
            }
            switch (sm.Mode)
            {
            case MeasureShowModeType.smPercentParentColItem:
                x = x.FParent;
                if (x == null)
                {
                    return(true);
                }
                a = x.GetAddress();
                a.Merge(y);
                object V;
                var    b1 = GetCellValue(a, out V);
                if (!b1)
                {
                    return(b);
                }
                try
                {
                    Value = Convert.ToDouble(Value) / Convert.ToDouble(V);
                }
                catch
                {
                    ;
                }
                break;

            case MeasureShowModeType.smPercentColTotal:
                a = x.GetAddress();
                if (y.Measure != null)
                {
                    a.Measure     = y.Measure;
                    a.MeasureMode = y.MeasureMode;
                }
                b1 = GetCellValue(a, out V);
                if (!b1)
                {
                    return(b);
                }
                try
                {
                    Value = Convert.ToDouble(Value) / Convert.ToDouble(V);
                }
                catch
                {
                    ;
                }
                break;

            case MeasureShowModeType.smColumnRank:
                if (!(Value is IComparable))
                {
                    return(true);
                }

                if (a.Measure == null)
                {
                    return(true);
                }
                a.MeasureMode = a.Measure.ShowModes[0];

                var Rank = 1;

                var cmp = Value as IComparable;
                foreach (var m in fColMembers)
                {
                    if (m == null)
                    {
                        continue;
                    }
                    try
                    {
                        a.AddMember(m);
                        object vv;
                        if (GetCellValue(a, out vv))
                        {
                            if (cmp.CompareTo(vv) < 0)
                            {
                                Rank++;
                            }
                        }
                    }
                    catch
                    {
                        ;
                    }
                }
                Value = Rank;
                break;

            case MeasureShowModeType.smRowRank:
                try
                {
                    Value = -Convert.ToDouble(Value);
                }
                catch
                {
                    ;
                }
                break;

            case MeasureShowModeType.smSpecifiedByEvent:
                if (!Grid.EventShowMeasureAssigned)
                {
                    throw new Exception(string.Format(RadarUtils.GetResStr("rssmError"), a.Measure.DisplayName,
                                                      sm.Caption));
                }
                var E = new ShowMeasureArgs(Value, sm, null);
                E.fRowSiblings    = fRowMembers;
                E.fColumnSiblings = fColMembers;
                E.fEvaluator      = new Evaluator(Grid, a);
                Grid.EventShowMeasure(E);
                Value = E.ReturnData;
                break;
            }
            return(b);
        }
        internal void Init(OlapControl grid)
        {
            if (!grid.Active)
            {
                throw new Exception(RadarUtils.GetResStr("rsCantRestoreInactiveGrid"));
            }

            var l = grid.FLayout;

            if (l.ColorBackAxisItem != null)
            {
                ColorAxis = l.ColorBackAxisItem.UniqueName;
            }

            if (l.fColorForeAxisItem != null)
            {
                ColorForeAxis = l.fColorForeAxisItem.UniqueName;
            }

            if (l.fSizeAxisItem != null)
            {
                SizeAxis = l.fSizeAxisItem.UniqueName;
            }

            if (l.fShapeAxisItem != null)
            {
                ShapeAxis = l.fShapeAxisItem.UniqueName;
            }

            if (l.fXAxisMeasure != null)
            {
                XMeasure = l.fXAxisMeasure.UniqueName;
            }

            if (l.fYAxisMeasures.Count > 0)
            {
                YMeasures = new SerializedMeasureGroup[l.fYAxisMeasures.Count];
                for (var i = 0; i < l.fYAxisMeasures.Count; i++)
                {
                    var g = new SerializedMeasureGroup();
                    YMeasures[i] = g;
                    g.Init(l.fYAxisMeasures[i]);
                }
            }

            RowHierarchies = new string[l.fRowAxis.Count];
            for (var i = 0; i < l.fRowAxis.Count; i++)
            {
                RowHierarchies[i] = l.fRowAxis[i].UniqueName;
            }

            ColumnHierarchies = new string[l.fColumnAxis.Count];
            for (var i = 0; i < l.fColumnAxis.Count; i++)
            {
                ColumnHierarchies[i] = l.fColumnAxis[i].UniqueName;
            }

            PageHierarchies = new string[l.fPageAxis.Count];
            for (var i = 0; i < l.fPageAxis.Count; i++)
            {
                PageHierarchies[i] = l.fPageAxis[i].UniqueName;
            }


            //ShapeHierarchies = new string[l.fShapeAxisItem.Count];
            //for (int i = 0; i < l.fShapeAxisItem.Count; i++)
            //{
            //    ShapeHierarchies[i] = l.fShapeAxisItem[i].UniqueName;
            //}

            DetailsHierarchies = new string[l.fDetailsAxis.Count];
            for (var i = 0; i < l.fDetailsAxis.Count; i++)
            {
                DetailsHierarchies[i] = l.fDetailsAxis[i].UniqueName;
            }

            var lm = new List <SerializedMeasure>();

            if (grid.Measures.Level != null)
            {
                foreach (var m in grid.Measures.Level.Members)
                {
                    var measure = grid.Measures.Find(m.UniqueName);
                    if (measure.Visible || measure.Expression.IsFill())
                    {
                        lm.Add(new SerializedMeasure(measure));
                    }
                }
            }
            Measures = lm.ToArray();

            MeasureLayout              = l.fMeasureLayout;
            MeasurePosition            = l.fMeasurePosition;
            HideMeasureIfPossible      = l.fHideMeasureIfPossible;
            HideMeasureModesIfPossible = l.fHideMeasureModesIfPossible;

            OpenendNodes   = new string[0];
            OpenendActions = new PossibleDrillActions[0];

            Drills = grid.CellSet.FDrillActions.Select(item => item.ToString()).ToArray();

            ValueSortedColumn = grid.FCellSet.ValueSortedColumn;
            if (ValueSortedColumn >= 0)
            {
                ValueSortingDirection = grid.FCellSet.ValueSortingDirection;
            }
        }