Esempio n. 1
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);
        }
Esempio n. 2
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);
            }
        }
Esempio n. 3
0
        public LayoutValidateResult LoadPivotFromDB(AvrPivotGridData model, IList <IAvrPivotGridField> avrFields, bool isNewObject)
        {
            if ((PivotGridXmlVersion)LayoutRow.intPivotGridXmlVersion == PivotGridXmlVersion.Version5)
            {
                throw new AvrDbException("Layout has version 5 format. It's not supported.");
            }

            if (!isNewObject)
            {
                AvrPivotGridHelper.LoadSearchFieldsVersionSixFromDB(avrFields, LayoutSearchFieldTable, LayoutRow.idfsDefaultGroupDate);

                LoadPivotFilterVersionSixFromDB();
            }

            AvrPivotGridHelper.LoadExstraSearchFieldsProperties(avrFields, LayoutSearchFieldTable);

            AvrPivotGridHelper.SwapOriginalAndCopiedFieldsIfReversed(avrFields);



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

            if (LayoutRow.blnShowMissedValuesInPivotGrid)
            {
                result = AvrPivotGridHelper.AddMissedValuesAndValidateComplexity(model, avrFields, validator);
            }
            if (!result.IsCancelOrUserDialogCancel())
            {
                result = AvrPivotGridHelper.FillEmptyValuesAndValidateComplexity(model, avrFields, validator);
            }
            return(result);
        }
Esempio n. 4
0
        private AvrPivotViewModel CreateAvrPivotViewModelInternal(long layoutId, string lang)
        {
            LayoutDetailDataSet layoutDataSet = GetLayoutDataSet(layoutId);

            LayoutDetailDataSet.LayoutRow layoutRow = GetLayoutRow(layoutDataSet);

            m_SharedPresenter.SharedModel.SelectedQueryId  = layoutRow.idflQuery;
            m_SharedPresenter.SharedModel.SelectedLayoutId = layoutId;

            m_Trace.Trace(TraceTitle, string.Format("Layout {0} structure read from DB", layoutId));

            var validatorWaiter = new LayoutSilentValidatorWaiter();
            var filter          = layoutRow.blnApplyPivotGridFilter ? layoutRow.strPivotGridSettings : string.Empty;
            var queryResult     = AvrMainFormPresenter.ExecQueryInternal(layoutRow.idflQuery, lang,
                                                                         layoutRow.blnUseArchivedData, filter, validatorWaiter, false, QueryExecutor);

            //var queryResult = AvrMainFormPresenter.ExecQueryInternal(layoutRow.idflQuery, lang,
            //    layoutRow.blnUseArchivedData, layoutRow.strPivotGridSettings, validatorWaiter, false, QueryExecutor);

            m_Trace.Trace(TraceTitle, string.Format("Data for layout {0} received from AVR Cashe ", layoutId));

            AvrDataTable preparedQueryTable = AvrPivotGridHelper.GetPreparedDataSource(layoutDataSet.LayoutSearchField,
                                                                                       layoutRow.idflQuery, layoutId, queryResult.QueryTable, false);

            m_AvrPivot.SetDataSourceAndCreateFields(preparedQueryTable);

            RestorePivotSettings(layoutDataSet);

            using (m_AvrPivot.BeginTransaction())
            {
                List <IAvrPivotGridField> fields = m_AvrPivot.AvrFields.ToList();

                var result = new LayoutValidateResult();
                if (layoutRow.blnShowMissedValuesInPivotGrid)
                {
                    result = AvrPivotGridHelper.AddMissedValuesAndValidateComplexity(m_AvrPivot.DataSource, fields,
                                                                                     validatorWaiter.Validator);
                }
                if (!result.IsCancelOrUserDialogCancel())
                {
                    result = AvrPivotGridHelper.FillEmptyValuesAndValidateComplexity(m_AvrPivot.DataSource, fields,
                                                                                     validatorWaiter.Validator);
                }
                if (result.IsCancelOrUserDialogCancel())
                {
                    m_AvrPivot.HideData = true;
                }

                m_AvrPivot.RefreshData();
            }
            m_Trace.Trace(TraceTitle, string.Format("Layout {0} builded", layoutId));

            PivotGridDataLoadedCommand command = m_AvrPivot.CreatePivotDataLoadedCommand(layoutRow.strLayoutName);

            m_Trace.Trace(TraceTitle, string.Format("View model for layout {0}, language {1} created", layoutId, lang));
            return(command.Model);
        }
Esempio n. 5
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);
        }
Esempio n. 6
0
 public static bool IsUserDialogOk(this LayoutValidateResult result)
 {
     return(result.Code == LayoutValidateCode.UserDialogOk);
 }
Esempio n. 7
0
 public static bool IsOk(this LayoutValidateResult result)
 {
     return(result.Code == LayoutValidateCode.Ok);
 }
Esempio n. 8
0
 public static bool IsCancelOrUserDialogCancel(this LayoutValidateResult result)
 {
     return(IsCancel(result) || IsUserDialogCancel(result));
 }
Esempio n. 9
0
 public static bool IsCancel(this LayoutValidateResult result)
 {
     return(result.Code == LayoutValidateCode.Cancel);
 }
Esempio n. 10
0
        private static void PivotGridOnFieldAreaChanged(object sender, PivotFieldEventArgs pivotFieldEventArgs)
        {
            var pivotGrid              = (MVCxPivotGrid)sender;
            AvrPivotGridModel model    = GetModelFromSession(pivotGrid.Request);
            PivotGridField    field    = pivotFieldEventArgs.Field;
            WebPivotGridField webField = GetWebPivotGridFieldByName(model.PivotSettings.Fields, field.ID);

            if (field.Area == webField.Area && field.AreaIndex == webField.AreaIndex && field.Visible == webField.Visible)
            {
                return;
            }

            bool copyAddMissedValues = field.Visible &&
                                       (field.Area == PivotArea.ColumnArea || field.Area == PivotArea.RowArea) &&
                                       (!webField.Visible || !(webField.Area == PivotArea.ColumnArea ||
                                                               webField.Area == PivotArea.RowArea));
            bool clearMissedValues = !field.Visible ||
                                     !(field.Area == PivotArea.ColumnArea || field.Area == PivotArea.RowArea);

            webField.Area      = field.Area;
            webField.AreaIndex = field.AreaIndex;
            webField.Visible   = field.Visible;
            if (copyAddMissedValues)
            {
                CopyMissedValuesToField(webField, model.PivotSettings.Fields);
            }
            else if (clearMissedValues)
            {
                ClearMissedValues(webField);
            }
            var adminUnitsList = AvrPivotGridHelper.GetAdministrativeUnitView(model.PivotSettings.QueryId,
                                                                              model.PivotSettings.Fields.ToList <IAvrPivotGridField>());

            foreach (PivotGridField f in pivotGrid.Fields)
            {
                WebPivotGridField webF = GetWebPivotGridFieldByName(model.PivotSettings.Fields, f.ID);
                if (f.Visible && f.Area == field.Area && f.ID != field.ID)
                {
                    webF.AreaIndex = f.AreaIndex;
                }
                if (webF.UnitLayoutSearchFieldId != -1 && webF.UnitLayoutSearchFieldId != 0)
                {
                    if (adminUnitsList == null || adminUnitsList.Count == 0 || webF.Area != PivotArea.RowArea)
                    {
                        webF.UnitLayoutSearchFieldId = -1L;
                    }
                    else if (!webF.UnitLayoutSearchFieldId.Equals(adminUnitsList[0]["Id"]))
                    {
                        webF.UnitLayoutSearchFieldId = DBNull.Value.Equals(adminUnitsList[0]["Id"])
                                                           ? -1L
                                                           : (long)adminUnitsList[0]["Id"];
                    }
                }
            }
            if (model.PivotSettings.ShowMissedValues)
            {
                AddMissedValues(model, true);
                pivotGrid.JSProperties["cpNeedCallback"] = true;
                //pivotGrid.ReloadData();
            }
            else
            {
                LayoutValidateResult validateResult = FillEmptyValuesInDataArea(model);
                pivotGrid.JSProperties["cpNeedCallback"] = validateResult.IsCancelOrUserDialogCancel();
            }
            // because AvrPivotGridHelperWeb which used inside m_CustomSummaryHandler should be re-initialized
            m_CustomSummaryHandler = null;
        }