public SerizalizedMeasureFilter(MeasureFilter f)
 {
     Condition   = f.FilterCondition;
     FirstValue  = f.FirstValue;
     SecondFalue = f.SecondValue;
     RestrictsTo = f.RestrictsTo;
 }
Ejemplo n.º 2
0
 internal ClientMeasureFilter(MeasureFilter m)
 {
     Condition              = m.FilterCondition;
     FirstValue             = m.FirstValue;
     SecondValue            = m.SecondValue;
     IsAggregatesRestricted = m.RestrictsTo == MeasureFilterRestriction.mfrAggregatedValues;
 }
        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);
        }