示例#1
0
        //[HttpPost]
        // public ActionResult OnSaveFieldChanges()
        public ActionResult AggregateFunctionChanged(string aggregateFunctionId)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            int intPrecision = -1;

            if (model.PivotSettings.SelectedField != null)
            {
                long aggrId = bv.common.Core.Utils.ToLong(aggregateFunctionId);
                CustomSummaryType summaryTypeType = AvrPivotGridHelper.ParseSummaryType(aggrId);
                if (model.PivotSettings.SelectedField.PrecisionDictionary.ContainsKey(summaryTypeType))
                {
                    intPrecision = model.PivotSettings.SelectedField.PrecisionDictionary[summaryTypeType];
                }
                else
                {
                    string strPrecision = LookupCache.GetLookupValue((long)summaryTypeType, LookupTables.AggregateFunction,
                                                                     "intDefaultPrecision");
                    intPrecision = int.TryParse(strPrecision, out intPrecision)
                        ? intPrecision
                        : -1;
                }
            }
            return(new JsonResult {
                Data = new { precision = (decimal)intPrecision }, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
示例#2
0
        public static string GetTotalsText(AvrPivotGridModel model)
        {
            string       text = "";
            const string sep  = ", ";

            if (model.PivotSettings.ShowColumnTotals)
            {
                bv.common.Core.Utils.AppendLine(ref text, Translator.GetMessageString("itemCols"), sep);
            }
            if (model.PivotSettings.ShowRowTotals)
            {
                bv.common.Core.Utils.AppendLine(ref text, Translator.GetMessageString("itemRows"), sep);
            }
            if (model.PivotSettings.ShowColumnGrandTotals)
            {
                bv.common.Core.Utils.AppendLine(ref text, Translator.GetMessageString("itemColGrand"), sep);
            }
            if (model.PivotSettings.ShowRowGrandTotals)
            {
                bv.common.Core.Utils.AppendLine(ref text, Translator.GetMessageString("itemRowGrand"), sep);
            }
            if (model.PivotSettings.ShowTotalsForSingleValues)
            {
                bv.common.Core.Utils.AppendLine(ref text, Translator.GetMessageString("itemForSingle"), sep);
            }
            return(text);
        }
示例#3
0
        public ActionResult OnSwitchToView()
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            if (model.PivotSettings.HasChanges)
            {
                // show confirmation
                return(new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new
                    {
                        result = "ask",
                        messageText = Translator.GetBvMessageString("Save data?"),
                        yesFunction =
                            String.Format("document.location.href='{0}'", Url.Action("SwitchToView", "Layout", new { saveData = true })),
                        noFunction = String.Format("document.location.href='{0}'", Url.Action("SwitchToView", "Layout", new { saveData = false })),
                    }
                });
            }
            return(new JsonResult
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = new { result = "noask", function = "SwitchToView?saveData=false" }
            });
        }
示例#4
0
        public ActionResult SwitchToView(bool saveData)
        {
            if (saveData)
            {
                ActionResult result = SaveData();
                if (!(result is JsonResult))
                {
                    return(result);
                }
            }
            else
            {
                AvrPivotGridModel model1 = GetModelFromSession();
                if (model1 != null)
                {
                    RemovePivotViewObjects(model1.PivotSettings.LayoutId);
                }
            }
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            return
                (new RedirectResult(Url.Action("ViewLayout", "ViewLayout",
                                               new { layoutId = model.PivotSettings.LayoutId })));
        }
示例#5
0
        public ActionResult OnDeleteFieldCopy()
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }

            if (model.PivotSettings.SelectedField != null)
            {
                // show confirmation
                return(new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new
                    {
                        result = "ask",
                        messageText =
                            String.Format(Translator.GetBvMessageString("msgDeleteAVRFieldPrompt"),
                                          model.PivotSettings.SelectedField.Caption),
                        yesFunction = "columnPopup.deleteCopy()",
                        noFunction = ""
                    }
                });
            }
            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { result = "noask" }
            });
        }
示例#6
0
        public ActionResult OnCopyField(string fieldId)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            if (string.IsNullOrEmpty(fieldId))
            {
                return(new JsonResult {
                    Data = false, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
            WebPivotGridField sourceField = model.PivotSettings.Fields.Find(f => f.FieldName == fieldId);

            var copy = AvrPivotGridHelper.CreateFieldCopy <WebPivotGridField>(sourceField,
                                                                              model.PivotSettings.LayoutDataset,
                                                                              model,
                                                                              model.PivotSettings.QueryId,
                                                                              model.PivotSettings.LayoutId);

            model.PivotSettings.AddField(copy);
            model.PivotSettings.SelectedField = copy;
            copy.Action = WebFieldAction.Add;
            model.PivotSettings.UpdatedField = copy;

            model.IsFirstLoad = true;
            return(new JsonResult {
                Data = true, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
示例#7
0
        public ActionResult OnCancelChanges()
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }

            if (model.PivotSettings.HasChanges)
            {
                // show confirmation
                return(new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new
                    {
                        result = "ask",
                        messageText = Translator.GetBvMessageString("menuCancelChanges") + "?",
                        yesFunction = String.Format("document.location.href='{0}'", Url.Action("CancelChanges", "Layout")),
                        noFunction = ""
                    }
                });
            }
            // finish, don't show confirmation
            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { result = "noask" }
            });
        }
示例#8
0
        private ActionResult RefreshPivotDataWith(Action <AvrPivotGridModel> action)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            if (action != null)
            {
                action(model);
            }

            bool   isNewObject;
            string errorMessage;

            model.PivotData = LayoutPivotGridHelper.GetPivotData(model.PivotSettings, out isNewObject, out errorMessage);
            if (!string.IsNullOrEmpty(errorMessage))
            {
                m_ErrorMessage = errorMessage;
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }

            LayoutPivotGridHelper.AddMissedValues(model, false);
            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = "ok"
            });
        }
示例#9
0
        public static void AddMissedValues(AvrPivotGridModel model, bool forceRefill)
        {
            if (forceRefill)
            {
                bool   isNewObject;
                string errorMessage;
                model.PivotData = GetPivotData(model.PivotSettings, out isNewObject, out errorMessage);
                if (!string.IsNullOrEmpty(errorMessage))
                {
                    //todo:[mike]     return ErrorMessage to user
                }
            }

            List <IAvrPivotGridField> fields = model.PivotSettings.Fields.Cast <IAvrPivotGridField>().ToList();
            var result = new LayoutValidateResult();

            if (model.PivotSettings.ShowMissedValues)
            {
                LayoutBaseValidator validator = CreateLayoutComplexityValidator();
                result = AvrPivotGridHelper.AddMissedValuesAndValidateComplexity(model, fields, validator);
            }

            if (result.IsCancelOrUserDialogCancel())
            {
                model.HideDataForComplexLayout();
            }
            else
            {
                FillEmptyValuesInDataArea(model, fields);
            }
        }
示例#10
0
        private static void PrefilterCriteriaChanged(object sender, EventArgs e)
        {
            var pivotGrid = (MVCxPivotGrid)sender;

            if (pivotGrid.IsCallback || pivotGrid.IsPrefilterPopupVisible)
            {
                return;
            }
            AvrPivotGridModel model = GetModelFromSession(pivotGrid.Request);

            bool hasChanges = (model.PivotSettings.FilterCriteriaString != pivotGrid.Prefilter.CriteriaString);

            if (hasChanges)
            {
                model.PivotSettings.HasChanges           = true;
                model.PivotSettings.FilterCriteriaString = pivotGrid.Prefilter.CriteriaString;

                bool   isNewObject;
                string errorMessage;
                model.PivotData = LayoutPivotGridHelper.GetPivotData(model.PivotSettings, out isNewObject, out errorMessage);
                LayoutPivotGridHelper.AddMissedValues(model, false);
            }
            pivotGrid.JSProperties["cpNeedCallback"] = true;
            pivotGrid.Prefilter.Enabled = false;
        }
示例#11
0
        public static LayoutValidateResult FillEmptyValuesInDataArea(AvrPivotGridModel model, List <IAvrPivotGridField> fields = null)
        {
            if (fields == null)
            {
                fields = model.PivotSettings.Fields.ToList <IAvrPivotGridField>();
            }
            var avrDataSource = new AvrPivotGridData(model.PivotData);


            var result = new LayoutValidateResult();
            LayoutBaseValidator validator = CreateLayoutComplexityValidator();

            if (model.PivotSettings.ShowMissedValues)
            {
                result = AvrPivotGridHelper.AddMissedValuesAndValidateComplexity(avrDataSource, fields, validator);
            }
            if (!result.IsCancelOrUserDialogCancel())
            {
                result = AvrPivotGridHelper.FillEmptyValuesAndValidateComplexity(avrDataSource, fields, validator);
            }
            //LayoutValidateResult result = AvrPivotGridHelper.FillEmptyValuesAndValidateComplexity(avrDataSource, fields, validator);
            if (result.IsCancelOrUserDialogCancel())
            {
                model.HideDataForComplexLayout();
            }
            return(result);
        }
示例#12
0
        public ActionResult OnCancelFieldChanges(string text)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            if (model.PivotSettings.SelectedField != null)
            {
                model.PivotSettings.SelectedField.CancelChanges(model.PivotSettings.LayoutDataset);
            }
            if ((model.PivotSettings.SelectedField != null) && (model.PivotSettings.SelectedField.Action != WebFieldAction.Add))
            {
                return(new JsonResult {
                    Data = String.Empty, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }

            return(new JsonResult
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = new { function = "RefeshData2" }
            });
        }
示例#13
0
        //[HttpGet]
        public ActionResult OnRefreshData(string text)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            if (!string.IsNullOrEmpty(text))
            {
                model.PivotSettings.HasChanges     = true;
                model.PivotSettings.UseArchiveData = "true".Equals(text);
            }
            if (model.PivotSettings.HasChanges)
            {
                // show confirmation
                return(new JsonResult
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = new
                    {
                        result = "ask",
                        messageText = Translator.GetBvMessageString("Save data?"),
                        yesFunction = String.Format("document.location.href='{0}'", Url.Action("SaveAndRefeshData", "Layout")),
                        noFunction = String.Format("document.location.href='{0}'", Url.Action("RefeshData", "Layout"))
                    }
                });
            }
            // finish, don't show confirmation
            return(new JsonResult
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = new { result = "noask", function = "RefeshData" }
            });
        }
示例#14
0
        public ActionResult ColumnAttributesPartial()
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            return(PartialView(model));
        }
示例#15
0
        public ActionResult FieldsListCombo()
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            return(PartialView(model));
        }
示例#16
0
        public ActionResult CancelChanges()
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model != null)
            {
                RemovePivotViewObjects(model.PivotSettings.LayoutId);
            }
            return(Redirect(HttpContext.Request.UrlReferrer.AbsoluteUri));
        }
示例#17
0
        public static PivotGridSettings LayoutPivotGridSettings(HttpRequestBase request)
        {
            AvrPivotGridModel model = GetModelFromSession(request);

            if (model.ControlPivotGridSettings == null || model.IsFirstLoad)
            {
                model.IsFirstLoad              = false;
                m_CustomSummaryHandler         = null;
                model.ControlPivotGridSettings = CreateLayoutPivotGridSettings(model);
            }
            return(model.ControlPivotGridSettings);
        }
示例#18
0
        public ActionResult OnClose()
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model != null && model.PivotSettings != null)
            {
                RemovePivotViewObjects(model.PivotSettings.LayoutId);
            }
            // finish, don't show confirmation
            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
示例#19
0
        public ActionResult ShowPrefilter()
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            model.ShowPrefilter = true;
            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = "ok"
            });
        }
示例#20
0
        public static List <CheckListItem> GetTotalsList(AvrPivotGridModel model)
        {
            var list = new List <CheckListItem>
            {
                new CheckListItem("0", "(" + Translator.GetMessageString("strSelectAll_Id") + ")"),
                new CheckListItem("1", Translator.GetMessageString("itemCols")),
                new CheckListItem("2", Translator.GetMessageString("itemRows")),
                new CheckListItem("3", Translator.GetMessageString("itemColGrand")),
                new CheckListItem("4", Translator.GetMessageString("itemRowGrand")),
                new CheckListItem("5", Translator.GetMessageString("itemForSingle"))
            };

            return(list);
        }
示例#21
0
        public ActionResult CompactLayout(bool isCompactLayout)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            model.PivotSettings.HasChanges    = true;
            model.PivotSettings.CompactLayout = isCompactLayout;
            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = "ok"
            });
        }
示例#22
0
        public ActionResult FreezeRowHeaders(bool value)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            model.PivotSettings.HasChanges       = true;
            model.PivotSettings.FreezeRowHeaders = value;
            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = "ok"
            });
        }
示例#23
0
        public ActionResult FieldListChanged(string text)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            model.PivotSettings.SelectedField = !string.IsNullOrEmpty(text)
                ? model.PivotSettings.Fields.FirstOrDefault(f => f.FieldName == text)
                : null;
            return(new JsonResult {
                Data = String.Empty, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
示例#24
0
        public ActionResult ShowData(bool value)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            model.PivotSettings.ShowDataInPivot  = value;
            model.PivotSettings.ShowMissedValues = model.PivotSettings.ShowDataInPivot && model.PivotSettings.ShowMissedValuesSaved;
            model.PivotSettings.HasChanges       = true;
            return(new JsonResult
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = new { showMissedValues = model.PivotSettings.ShowMissedValues }
            });
        }
示例#25
0
        private string RefreshPivotData()
        {
            AvrServiceAccessability access = AvrServiceAccessability.Check();

            if (!access.IsOk)
            {
                return(access.ErrorMessage);
            }
            AvrPivotGridModel model = GetModelFromSession();

            if (model != null)
            {
                ServiceClientHelper.AvrServiceClearQueryCache(model.PivotSettings.QueryId);
                RemovePivotViewObjects(model.PivotSettings.LayoutId);
            }
            return(string.Empty);
        }
示例#26
0
        private static void SetInterval(MVCxPivotGrid pivotGrid, PivotGroupInterval interval)
        {
            AvrPivotGridModel model = GetModelFromSession(pivotGrid.Request);

            foreach (PivotGridField field in pivotGrid.Fields)
            {
                WebPivotGridField webField = GetWebPivotGridFieldByFieldName(model.PivotSettings.Fields, field.FieldName);
                if (webField != null)
                {
                    webField.DefaultGroupInterval            = interval;
                    field.GroupInterval                      = webField.GroupInterval;
                    model.PivotSettings.DefaultGroupInterval = (long)GroupIntervalHelper.GetDBGroupInterval(interval);
                }
                else
                {
                    field.GroupInterval = interval;
                }
            }
        }
示例#27
0
        public ActionResult ShowMissedValues(bool value)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            model.PivotSettings.HasChanges            = true;
            model.PivotSettings.ShowMissedValues      = value;
            model.PivotSettings.ShowMissedValuesSaved = model.PivotSettings.ShowMissedValues;
            model.PivotSettings.ShowDataInPivot       = true;
            LayoutPivotGridHelper.AddMissedValues(model, true);
            //return RedirectToAction("Layout", new { queryId = model.PivotSettings.QueryId, model.PivotSettings.LayoutId });
            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = "ok"
            });
            //return Redirect(HttpContext.Request.UrlReferrer.AbsoluteUri);
        }
示例#28
0
        public ActionResult Layout(long layoutId)
        {
            ViewBag.LayoutId = layoutId;
            if (Request.QueryString.AllKeys.Contains("clearcache"))// && Request.QueryString["clearcache"] == "1")
            {
                RemovePivotViewObjects(layoutId);
            }
            AvrPivotGridModel model = GetModelFromSession(layoutId);

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            PivotGridFieldBase.DefaultTotalFormat.FormatString = PivotGridLocalizer.GetString(PivotGridStringId.TotalFormat);
            model.IsFirstLoad = true;
            ViewBag.Title     = string.Format(Translator.GetMessageString("webPivotGridTitle"),
                                              ((LayoutDetailDataSet.LayoutRow)(model.PivotSettings.LayoutDataset.Layout.Rows[0])).strLayoutName);
            return(View(model));
        }
示例#29
0
        public static AvrPivotGridModel FillData(ref long queryId, long layoutId)
        {
            var service        = new WebLayoutDB();
            var sessionDataSet = (LayoutDetailDataSet)service.GetDetail(layoutId);

            if (queryId <= 0)
            {
                queryId = ((LayoutDetailDataSet.LayoutRow)sessionDataSet.Layout.Rows[0]).idflQuery;
            }
            var helper = new LayoutHelper(sessionDataSet);

            var settings = new AvrPivotSettings(queryId, layoutId);

            helper.InitAvrPivotSettings(settings);
            bool isNewObject;

            string       errorMessage;
            AvrDataTable data = LayoutPivotGridHelper.GetPivotData(
                helper.LayoutDataSet,
                queryId,
                layoutId,
                settings.UseArchiveData,
                settings.ApplyFilter ? settings.FilterCriteriaString :string.Empty,
                out isNewObject, out errorMessage);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                throw new AvrException(errorMessage);
            }

            settings.Fields = AvrPivotGridHelper.CreateFields <WebPivotGridField>(data);
            helper.PrepareWebFields(settings);
            List <IAvrPivotGridField> fields = settings.Fields.Cast <IAvrPivotGridField>().ToList();
            LayoutValidateResult      result = helper.LoadPivotFromDB(new AvrPivotGridData(data), fields, isNewObject);
            var model = new AvrPivotGridModel(settings, data);

            if (result.IsCancelOrUserDialogCancel())
            {
                model.HideDataForComplexLayout();
            }
            return(model);
        }
示例#30
0
        public ActionResult TotalsChanged(FormCollection form)
        {
            AvrPivotGridModel model = GetModelFromSession();

            if (model == null)
            {
                return(View("AvrServiceError", (object)m_ErrorMessage));
            }
            model.PivotSettings.HasChanges = true;

            string[] totalValues = (form != null && form.Count > 0) ? form[0].Split(',') : "".Split(',');
            model.PivotSettings.ShowColumnTotals          = totalValues.Count(c => c == "1") > 0;
            model.PivotSettings.ShowRowTotals             = totalValues.Count(c => c == "2") > 0;
            model.PivotSettings.ShowColumnGrandTotals     = totalValues.Count(c => c == "3") > 0;
            model.PivotSettings.ShowRowGrandTotals        = totalValues.Count(c => c == "4") > 0;
            model.PivotSettings.ShowTotalsForSingleValues = totalValues.Count(c => c == "5") > 0;
            return(new JsonResult {
                Data = String.Empty, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }