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); }
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); } }
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); }
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); }
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); }
public static bool IsUserDialogOk(this LayoutValidateResult result) { return(result.Code == LayoutValidateCode.UserDialogOk); }
public static bool IsOk(this LayoutValidateResult result) { return(result.Code == LayoutValidateCode.Ok); }
public static bool IsCancelOrUserDialogCancel(this LayoutValidateResult result) { return(IsCancel(result) || IsUserDialogCancel(result)); }
public static bool IsCancel(this LayoutValidateResult result) { return(result.Code == LayoutValidateCode.Cancel); }
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; }