internal override ReturnResultBase Execute() { List <IDataSourceViewDefinition> dataControlsSourceDefs = DataSourceDefinitionsBuilder.BuildDataControlSourceDefinitions(Task); GatewayResult result = LocalDataviewManager.CreateDataControlViews(dataControlsSourceDefs); return(result); }
/// <summary> /// /// </summary> internal override ReturnResultBase Execute() { ReturnResultBase result = null; if (LocalDataviewManager.UserSorts != null) { TaskViews.ApplySort(LocalDataviewManager.UserSorts); } else { if (!KeepUserSort) { TaskViews.ApplySort(Task.RuntimeSorts); } } TaskViews.ApplyUserRangesAndLocates(); SetTaskMode(); if (RefreshMode == ViewRefreshMode.CurrentLocation) { InitCurrentPosition(); if (startPosition != null) { result = ExecuteRefreshAndKeepCurrentLocation(); if (result.Success) { LocalDataviewManager.UserGatewayLocates.Clear(); LocalDataviewManager.UserLocates.Clear(); LocalDataviewManager.UserSorts = null; } return(result); } } // clean the position cache LocalDataviewManager.Reset(); // Release the ViewMain cursor and re-prepare it. if (TaskViews.ViewMain != null) { TaskViews.ViewMain.ReleaseCursor(); TaskViews.ViewMain.Prepare(); } result = base.Execute(); if (result.Success) { DataviewSynchronizer.SetCurrentRecordByIdx(0); LocalDataviewManager.UserGatewayLocates.Clear(); LocalDataviewManager.UserLocates.Clear(); LocalDataviewManager.UserSorts = null; } return(result); }
/// <summary> /// /// </summary> /// <returns></returns> internal override ReturnResultBase Execute() { LocalDataviewManager localDataViewManager = Task.DataviewManager.LocalDataviewManager; RuntimeReadOnlyView dataControlView = localDataViewManager.TaskViews.GetDataControlViewByBoundControlId(control.getDitIdx()); DataSourceId dataSourceId = dataControlView.DataSourceViewDefinition.TaskDataSource.DataSourceDefinition.Id; DataControlRangeDataCollection rangeData = new DataControlRangeDataCollection(dataSourceId, dataControlView.RangeBuilder, control.getDitIdx()); //remove old DataControlRangeDataCollection entry from map. localDataViewManager.rangeToDcValuesMap.Remove(rangeData); //build new DC values for control LocallyComputedDcValuesBuilder dcValuesBuilder = new LocallyComputedDcValuesBuilder(dataControlView); var dataControlValues = dcValuesBuilder.Build(); localDataViewManager.DataviewSynchronizer.ApplyDCValuesAndRefreshControl(dataControlValues, rangeData, control); return(new ReturnResult()); }
/// <summary> /// find the start record and get its position /// </summary> /// <returns></returns> internal override ReturnResultBase Execute() { IRecord origRecord = DataviewSynchronizer.GetCurrentRecord(); bool recordFound = FindMatchingRecord(); if (recordFound) { // found a record - keep its position IRecord currentRecord = DataviewSynchronizer.GetCurrentRecord(); DbPos outPos; PositionCache.TryGetValue(new PositionId(currentRecord.getId()), out outPos); ResultStartPosition = outPos; LocalDataviewManager.Reset(); DataviewSynchronizer.RemoveRecord(currentRecord); } else { DataviewSynchronizer.SetCurrentRecord(origRecord != null ? origRecord.getId() : Int32.MinValue); } return(new GatewayResult()); }
/// <summary> /// !! /// </summary> /// <param name="command"></param> internal override ReturnResultBase Execute() { LocalDataviewManager.TaskViewsBuilder.FieldsBuilder = new FieldsBuilder(); RecordingManagerBuilder recordingManagerBuilder = new RecordingManagerBuilder(); LocalDataviewManager.BuildRecorder(); LocalDataviewManager.BuildViewsCollection(Task); LocalDataviewManager.RecordingManager.StartRecording(); GatewayResult retVal = OpenTables(); // if (l != tskr->dbs || !tskRt->AllDCTblsOpened) //{ // if (!(MAIN_PRG_PRG(tsk) && (BOOLEAN)ENV::backgnd_mode)) // tsk_close (l, TRUE, depth, FALSE, calltype, call_idx); // return (FALSE); //} ///return retVal; return(retVal); }
/// <summary> /// Reset user locates add by LocateAdd function. /// </summary> /// <returns></returns> internal override ReturnResultBase Execute() { LocalDataviewManager.ResetUserLocates(); return(new ReturnResult()); }
/// <summary> /// execute the view refresh command while keeping the current location. /// </summary> /// <param name="result"></param> /// <returns></returns> ReturnResultBase ExecuteRefreshAndKeepCurrentLocation() { ReturnResultBase result = new GatewayResult(); LocalDataviewManager.Reset(); //In order to build startposition using user locates reset the startposition. if (LocalDataviewManager.HasUserLocates) { startPosition = null; } // Release the ViewMain cursor and re-prepare it. if (TaskViews.ViewMain != null) { TaskViews.ViewMain.ReleaseCursor(); TaskViews.ViewMain.Prepare(); } //Performing UpdateAfterFetch(), while fetching recs with startpos, may cause the task to enter in create/EmptyDataView mode, if //no recs are fetched. This should be avoided because if no recs are fetched we should try fetching recs with no startpos. PerformUpdateAfterFetch = false; //if the location in not on 1st line, fetch from the current location backward if (this.RefreshMode == ViewRefreshMode.CurrentLocation) { result = FetchBackward(); } // fetch from current location forward if (result.Success) { result = base.Execute(); } PerformUpdateAfterFetch = true; //look for the right record to set the dataview on int currentRecordId = FindCurrentRecordRow(); // set the dataview on the right record - either the same record, if found, or the same line in te table, // if the previously current record was deleted if (currentRecordId != 0) { DataviewSynchronizer.SetCurrentRecord(currentRecordId); } else { //If no record found with CurrentLocation. Then set the RefreshMode as FirstRecord, Re-Execute ViewRefresh command. if (((DataView)Task.DataView).getSize() == 0) { RefreshMode = ViewRefreshMode.FirstRecord; result = Execute(); } else { //If CurrentRecordRow is out of boundary of total records fetched, then set CurrentRecordRow on last record fetched. CurrentRecordRow = CurrentRecordRow > ((DataView)Task.DataView).getSize() ? ((DataView)Task.DataView).getSize() : CurrentRecordRow; DataviewSynchronizer.SetCurrentRecordByIdx(CurrentRecordRow - 1); } } Task.RefreshDisplay(); return(result); }
/// <summary> /// CTOR /// </summary> /// <param name="viewBoundaries"></param> /// <param name="cursorPositionFlag"></param> public ViewRangeDataBuilder(ViewBoundaries viewBoundaries, LocalDataviewManager dataviewManager) { this.viewBoundaries = viewBoundaries; this.dataviewManager = dataviewManager; }
/// <summary> /// /// </summary> /// <param name="viewDefinition"></param> /// <param name="localDataviewManager"></param> public void Initialize(IDataSourceViewDefinition viewDefinition, LocalDataviewManager localDataviewManager) { DataSourceViewDefinition = viewDefinition; LocalDataviewManager = localDataviewManager; RangeBuilder = new ViewRangeDataBuilder(ViewBoundaries, ViewBoundaries.RuntimeViewBase.LocalDataviewManager); }