TprxADODataSetEdit
Introducción
El objeto TprxADODataSetEdit (Dataset con habilidades de armado de pantallas y edición de datos.) es un dataset bastante complejo que implementa habilidades para:
- Cargar la estructura de una tabla.
- Armar los campos.
- Ejecutar validaciones y eventos.
- Guardar los datos en la base usando transacciones.
Es el ancestro de otros datasets con funcionalidad aún más específica (aunque no tan general como éste).
Identidad
- Ancestro: TprxADODataSet
- Carpeta: C:\DevelopPrx\library
- Archivo: prxADODataSetEdit.pas
Declaración
type TprxADODataSetEdit = class(TprxADODataSet) private FQuerySQL: TStringList; FIsMasterDataSet: Boolean; FRecordExistenceChecked: Boolean; FLastDatabaseOp: TprxADODataSetLastDatabaseOp; FOnEditReady: TDataSetNotifyEvent; FOnExistingKey: TDataSetNotifyEvent; FOnMostrarIndicaciones: TprxADOShowFieldHint; FCommandFields: TStringList; FCommandFrom: TStringList; FCommandLeftOuter: TStringList; FCommandOrderBy: TStrings; FLocalInsertXtdFlag: Boolean; FAddNavButtons: Boolean; FOnOpcionesPopupXtd: TprxOnOpcionesPopup; FOnEnterExternal: TprxADODataFieldOnEnter; FOnExitExternal: TprxADODataFieldOnExit; FFilteredOnInsert: Boolean; FDetalleCodigo: String; FDetalleVisual: String; FQueryAUX: TprxADOQuery; FListaFK: TStringList; FCascadeUpdate: Boolean; FCascadeDelete: Boolean; Fop_insert: Boolean; Fop_update: Boolean; Fop_delete: Boolean; FBookmark: TBookmark; FCommandText_Select: String; FCommandText_Where: String; FOnVerifyKeyData: TprxADOVerifyKeyData; FCallingDataSet: TprxADODataSetEdit; FCMP_RELACION_ACCION: String; FCMP_RELACION_ESTADO: String; FCMP_RELACION_RECIDS: TStringList; FTableDescription: String; FCatalogo: String; FTipoDato: String; FTAG_READONLY: Boolean; FTAG_AUTOPRINT: Boolean; FStatusBar: TStatusBar; Ffvs: Boolean; Fdevlog_monitor: Tfva_devlog_monitor; FUsaPanelPIE_Comentarios: Boolean; FUsaPanelPIE_Totales: Boolean; FPropertyFieldList: TStringList; Frefresco_modo: String; FPopupOptions: TprxADODataSet_Options; FTransactionTimeStamp: String; FCanDeleteCheckConstraints_NotInList: TStringList; // Para asignar prxADOQueryRESULTADO: TprxADOQuery del form de ejecución de // consultas... FClassConsultasResultado_Query: TprxADOQuery; FWHERE: TprxADODataSet_WHERE; Fdevlog_TestCommands: TStringList; FClase_Muestra_tab_first: Boolean; FClase_Muestra_tab_last: Boolean; FClase_Muestra_tab_comments: Boolean; FClase_Muestra_panel_comments: Integer; FBandFilter: TComponent; FRelacionesComponent: TComponent; FOnExitFieldXtd_Result: Boolean; FSCANDOCS_Field: String; // Los usamos para OnEnterFieldXtd y OnExitFieldXtd... FFieldEvent_FieldName: String; FFieldEvent_FieldValue: Variant; protected FTableName: String; FLoadRecords: Boolean; InLocateRecordFlag: Boolean; procedure SetTableName(aValue: String); virtual; procedure SetCommandOrderBy(aValue: TStrings); procedure SetCallingDataSet(aValue: TprxADODataSetEdit); procedure Set_fvs(aValue: Boolean); function GetCatalogo: String; function GetTipoDato: String; function Get_TAG_READONLY: Boolean; virtual; function Get_TAG_AUTOPRINT: Boolean; virtual; function StructureLoad: Integer; virtual; procedure DefaultValuesAssign; virtual; function KeyFieldsLoaded(aFieldName: String): Boolean; function LocateRecord: Boolean; virtual; procedure LocalAfterPost(DataSet: TDataSet); function LocalAfterPostInsert(DataSet: TDataSet): String; procedure LocalAfterPostIndicaDefecto; function LocalAfterPostEdit(DataSet: TDataSet; aWhere: String): String; function LocalAfterPostDelete(DataSet: TDataSet; aWhere: String): String; function CommandText_Select_Make(aTop1: Boolean = False): String; { 16/05/2025 function CommandText_Select_Make_DeUnBAK_PodemosBorrarlo(aTop1: Boolean = False): String; } property LocalInsertXtdFlag: Boolean read FLocalInsertXtdFlag write FLocalInsertXtdFlag; property FilteredOnInsert: Boolean read FFilteredOnInsert write FFilteredOnInsert; property Bookmark: TBookmark read FBookmark write FBookmark; property CommandText_Where: String read FCommandText_Where write FCommandText_Where; property refresco_modo: String read Frefresco_modo write Frefresco_modo; property PopupOptions: TprxADODataSet_Options read FPopupOptions write FPopupOptions; property QuerySQL: TStringList read FQuerySQL write FQuerySQL; // Los usamos para OnEnterFieldXtd y OnExitFieldXtd... property FieldEvent_FieldName: String read FFieldEvent_FieldName write FFieldEvent_FieldName; property FieldEvent_FieldValue: Variant read FFieldEvent_FieldValue write FFieldEvent_FieldValue; public FieldsXtdList: Tfva_campos_items; procedure Loaded; override; property CommandText_Select: String read FCommandText_Select; function FieldIsComputed(aFieldNo: Integer): Boolean; procedure LocalAfterScroll(DataSet: TDataSet); override; procedure Activate(aLoadRecords: Boolean); override; function IsTransactionMaster: Boolean; virtual; function Select(aSQLCommand: String = ''): Boolean; override; function LocalAfterPostWhere(DataSet: TDataSet): String; procedure DefaultValueAdd(aFieldName: String; aDefaultValue: String); procedure AssignFieldValueByName(aFieldName: String; aFieldValue: Variant); override; procedure AssignValueToField(aCampo: String; aValue: Variant); constructor Create(AOwner: TComponent); override; destructor Destroy; override; function DataSetId: String; function LocateRecordOnClient(aKeyValuesA: TprxFieldValues; aKeyValuesCount: Integer): Boolean; function LocateRecordOnServer(aKeyValuesA: TprxFieldValues; aKeyValuesCount: Integer): Boolean; function CanInsertXtd: Boolean; virtual; procedure InsertXtd(Sender: TObject); virtual; function CanEditXtd: Boolean; virtual; procedure EditXtd(Sender: TObject); virtual; function PostXtd(Sender: TObject): Boolean; virtual; procedure CancelXtd(Sender: TObject); virtual; function CanDeleteXtd(aAsk: Boolean): Boolean; virtual; function CanDeleteCheckConstraints(aWarn: Boolean): Boolean; procedure DeleteXtd(Sender: TObject); virtual; procedure DeleteRecordsXtd(Sender: TObject); virtual; function UpdateBatchXtd(AffectRecords: TAffectRecords = arAll): Boolean; virtual; procedure OnEnterFieldXtd(Sender: TObject; aFieldName: String; aFieldValue: Variant); virtual; function OnExitFieldXtd(Sender: TObject; aFieldName: String; aFieldValue: Variant; aErrMsg: String): Boolean; virtual; function OnChangeFieldXtd(Sender: TObject; aFieldName: String; aFieldValue: Variant): Boolean; virtual; function ArmarClaveAuditoria: String; function ArmarClaveAuditoriaLARGO: String; procedure GetPopupOptions(Sender: TprxPopupMenu); {overload; }virtual; function DetailsEnabled: Boolean; function ORIGENES_Initialize(aMenu: TprxPopupMenu): Integer; function SelectXtd(aLoadRecords: Boolean): Boolean; property RecordExistenceChecked: Boolean read FRecordExistenceChecked write FRecordExistenceChecked; function ValidateQuery: TprxADOQuery; property CommandFields: TStringList read FCommandFields write FCommandFields; property CommandFrom: TStringList read FCommandFrom write FCommandFrom; property CommandLeftOuter: TStringList read FCommandLeftOuter write FCommandLeftOuter; property LastDatabaseOp: TprxADODataSetLastDatabaseOp read FLastDatabaseOp; property DetalleCodigo: String read FDetalleCodigo; property DetalleVisual: String read FDetalleVisual; property QueryAUX: TprxADOQuery read FQueryAUX write FQueryAUX; property ListaFK: TStringList read FListaFK write FListaFK; property CascadeUpdate: Boolean read FCascadeUpdate write FCascadeUpdate; property CascadeDelete: Boolean read FCascadeDelete write FCascadeDelete; property op_insert: Boolean read Fop_insert write Fop_insert; property op_update: Boolean read Fop_update write Fop_update; property op_delete: Boolean read Fop_delete write Fop_delete; property TAG_READONLY: Boolean read Get_TAG_READONLY; property TAG_AUTOPRINT: Boolean read Get_TAG_AUTOPRINT; property ppOnVerifyKeyData: TprxADOVerifyKeyData read FOnVerifyKeyData write FOnVerifyKeyData; property xxCallingDataSet: TprxADODataSetEdit read FCallingDataSet write SetCallingDataSet; property CMP_RELACION_ACCION: String read FCMP_RELACION_ACCION write FCMP_RELACION_ACCION; property CMP_RELACION_ESTADO: String read FCMP_RELACION_ESTADO write FCMP_RELACION_ESTADO; property CMP_RELACION_RECIDS: TStringList read FCMP_RELACION_RECIDS write FCMP_RELACION_RECIDS; property TableDescription: String read FTableDescription; property Catalogo: String read GetCatalogo; property TipoDato: String read GetTipoDato; property StatusBar: TStatusBar read FStatusBar write FStatusBar; property fvs: Boolean read Ffvs write Set_fvs; property x_devlog_monitor: Tfva_devlog_monitor read Fdevlog_monitor write Fdevlog_monitor; property UsaPanelPIE_Comentarios: Boolean read FUsaPanelPIE_Comentarios write FUsaPanelPIE_Comentarios; property UsaPanelPIE_Totales: Boolean read FUsaPanelPIE_Totales write FUsaPanelPIE_Totales; property PropertyFieldList: TStringList read FPropertyFieldList; property CanDeleteCheckConstraints_NotInList: TStringList read FCanDeleteCheckConstraints_NotInList write FCanDeleteCheckConstraints_NotInList; property WHERE: TprxADODataSet_WHERE read FWHERE write FWHERE; property devlog_TestCommands: TStringList read Fdevlog_TestCommands write Fdevlog_TestCommands; property Clase_Muestra_tab_first: Boolean read FClase_Muestra_tab_first write FClase_Muestra_tab_first; property Clase_Muestra_tab_last: Boolean read FClase_Muestra_tab_last write FClase_Muestra_tab_last; property Clase_Muestra_tab_comments: Boolean read FClase_Muestra_tab_comments write FClase_Muestra_tab_comments; property Clase_Muestra_panel_comments : Integer read FClase_Muestra_panel_comments write FClase_Muestra_panel_comments; property OnExitFieldXtd_Result: Boolean read FOnExitFieldXtd_Result; property SCANDOCS_Field: String read FSCANDOCS_Field; published property ppTableName: String read FTableName write SetTableName; property ppCommandOrderBy: TStrings read FCommandOrderBy write SetCommandOrderBy; property ppIsMasterDataSet: Boolean read FIsMasterDataSet write FIsMasterDataSet; property ppOnEditReady: TDataSetNotifyEvent read FOnEditReady write FOnEditReady; property ppAddNavButtons: Boolean read FAddNavButtons write FAddNavButtons; property ppOnOpcionesPopupXtd: TprxOnOpcionesPopup read FOnOpcionesPopupXtd write FOnOpcionesPopupXtd; property ppOnShowFieldHint: TprxADOShowFieldHint read FOnMostrarIndicaciones write FOnMostrarIndicaciones; property ppOnEnterExternal: TprxADODataFieldOnEnter read FOnEnterExternal write FOnEnterExternal; property ppOnExitExternal: TprxADODataFieldOnExit read FOnExitExternal write FOnExitExternal; property ppOnExistingKey: TDataSetNotifyEvent read FOnExistingKey write FOnExistingKey; property TransactionTimeStamp: String read FTransactionTimeStamp write FTransactionTimeStamp; property ClassConsultasResultado_Query: TprxADOQuery read FClassConsultasResultado_Query write FClassConsultasResultado_Query; property LoadRecords: Boolean read FLoadRecords; property BandFilter: TComponent read FBandFilter write FBandFilter; property RelacionesComponent: TComponent read FRelacionesComponent write FRelacionesComponent; function FieldControlEnable(aFieldName: String; aCondition: Boolean): Boolean; function FieldControlDisable(aFieldName: String; aCondition: Boolean): Boolean; end;