Esempio n. 1
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);
        }
Esempio n. 2
0
        public virtual void InitControlData(CellSet.CellSet cs, OlapControl grid)
        {
            if (grid.callbackException != null)
            {
                exception = SessionTimeoutDialog.RenderMassage(grid, grid.callbackException);
                return;
            }

            Cellset      = new RCellset(cs, grid.MaxTextLength);
            Layout       = new ClientLayout(grid.AxesLayout);
            chartsType   = grid.ChartsType;
            analysisType = "grid";
        }
Esempio n. 3
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);
        }
        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);
        }
        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);
        }
        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);
        }
        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);
        }