Diferencia entre revisiones de «Tfva campos item»
(Página creada con «=Descripción= El objeto '''Tfva_campos_item''' (Componente que representa un campo de un dataset.) representa a un campo de un TprxADODataSetEdit, implementa funcionalidad que simplifica el comportamiento del campo en una pantalla de edición. =Identidad= Category:MANUAL/PROGRAMADOR Category:DATASETS *Ancestro: TComponent *Carpeta: C:\DevelopPrx\library *Archivo: fva_campos_item,pas =Declaración= <pre> type Tfva_campos_ite…») |
|||
| (No se muestran 2 ediciones intermedias del mismo usuario) | |||
| Línea 153: | Línea 153: | ||
*Fcampos_calculados: TStringList; | *Fcampos_calculados: TStringList; | ||
*FComputo: String; | *FComputo: String; | ||
=Implementación= | |||
===function TableName: String=== | |||
Retorna el nombre de la tabla del [[TprxADODataSetEdit]] que pertenece el campo. | |||
===function ArmarEnumeracion: Boolean=== | |||
Arma los elementos del combo de un campo tipo enumeración. | |||
Carga la definición desde las tablas de [[:Category:DEV ENUMERACIONES|Enumeraciones]] usando el siguiente SQL: | |||
<pre> | |||
SELECT | |||
prxenumeraciones.Enumeracion | |||
, prxenumeraciones.pSelect | |||
, prxenumeraciones.Inicializacion | |||
, prxenumeracionesD.Codigo | |||
FROM prxenumeraciones, prxenumeracionesD WHERE | |||
prxenumeraciones.Enumeracion = @Atributo | |||
AND prxenumeracionesD.Enumeracion = prxenumeraciones.Enumeracion | |||
ORDER BY | |||
prxenumeracionesD.Enumeracion | |||
, prxenumeracionesD.Linea | |||
</pre> | |||
===procedure CrearSelectCamposCalculados(aCommandFields: TStringList; aCommandFrom: TStringList; aCommandLeftOuter: TStringList)=== | |||
Al SELECT normal para traer los campos de la tabla, agrega los comandos necesarios (LEFT OUTER JOIN) para traer campos calculados (ej: traer la descripción de un artículo). | |||
===function ValidateField(aConstraint: String; var aMsg: String): Boolean=== | |||
Valida un valor ingresado en un campo de tipo 'clase'. | |||
===function ValidateFieldAlias(aTablaF: String; aCampoF: String; aFieldName: String; aAttribute: String; aValorL: String; var aValorRetorno: Variant): Boolean=== | |||
Valida un valor según los campos Alias de una tabla, si encuentra algo retorna el valor del campo clave de la tabla foránea. | |||
===function EDIT_ONENTER: Boolean=== | |||
Ejecutada en el OnEnter de un control de edición. | |||
===function EDIT_SELECT(aConstraint: String = blank): Boolean=== | |||
Ejecutada al presionar F5 para seleccionar un valor en un control de edición. El argumento '''aConstraint''' solo se informa si la misma existe sobre el campo. | |||
===function EDIT_ONEXIT: Boolean=== | |||
Ejecutada en el OnExit de un control de edición. | |||
===function EDIT_VALIDATE(var aMsg: String): Boolean=== | |||
Valida un valor ingresado en un control de edición. | |||
=Uso= | |||
Revisión actual - 21:03 22 may 2025
Descripción
El objeto Tfva_campos_item (Componente que representa un campo de un dataset.) representa a un campo de un TprxADODataSetEdit, implementa funcionalidad que simplifica el comportamiento del campo en una pantalla de edición.
Identidad
- Ancestro: TComponent
- Carpeta: C:\DevelopPrx\library
- Archivo: fva_campos_item,pas
Declaración
type
Tfva_campos_item = class(TComponent)
private
FADODataSet: TprxADODataSet;
FAncestro: String;
FFieldName: String;
FLogicalName: String;
FColumna: Integer;
FAtributo: String;
FEnteros: Integer;
FDecimales: Integer;
FComportamiento: String;
FClave: Boolean;
FRequerido: Boolean;
FControl: String;
FAlias: Boolean;
FEditaEnINSERT: Boolean;
FEditaEnUPDATE: Boolean;
FIndicaDefecto: Boolean;
FVisible: Boolean;
FGrupo: String;
FPanel: String;
FIndicaciones: String;
FValorPorDefecto: String;
FRelacionesCampo: Boolean;
Fcampos_calculados: TStringList;
FComputo: String;
FFKTablaForanea: String;
FFKCamposPropios: TStringList;
FFKCamposForaneos: TStringList;
FRelaxValidation: Boolean;
FFieldNo: Integer;
FLookupDS: TprxADODataSetLookup;
FCargarElementos: String;
FEditControl: TWinControl;
protected
function ValidateFieldAlias(aTablaF: String; aCampoF: String; aFieldName: String; aAttribute: String; aValorL: String; var aValorRetorno: Variant): Boolean;
public
FEnumeracionItems: String;
FEnumeracionInicializacion: String;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
function TableName: String;
function Get_Constante: Boolean;
function Get_Field: TField;
function Get_Query: TprxADOQuery;
function CrearFieldDefCampo(aField: TField; aEnteros: Integer; aDecimales: Integer; aRequired: Boolean): TField;
procedure CrearFieldDefCamposCalculados(vDS: TADODataSet);
procedure CrearSelectCamposCalculados(aCommandFields: TStringList; aCommandFrom: TStringList; aCommandLeftOuter: TStringList);
function ValidateField(aConstraint: String; var aMsg: String): Boolean;
function ArmarEnumeracion: Boolean;
function EDIT_ONENTER: Boolean;
function EDIT_SELECT(aConstraint: String = ''): Boolean;
function EDIT_ONEXIT: Boolean;
function EDIT_VALIDATE(var aMsg: String): Boolean;
property ADODataSet: TprxADODataSet read FADODataSet write FADODataSet;
property Ancestro: String read FAncestro write FAncestro;
property FieldName: String read FFieldName write FFieldName;
property LogicalName: String read FLogicalName write FLogicalName;
property Columna: Integer read FColumna write FColumna;
property Atributo: String read FAtributo write FAtributo;
property Enteros: Integer read FEnteros write FEnteros;
property Decimales: Integer read FDecimales write FDecimales;
property Comportamiento: String read FComportamiento write FComportamiento;
property Clave: Boolean read FClave write FClave;
property Requerido: Boolean read FRequerido write FRequerido;
property Control: String read FControl write FControl;
property EnumeracionItems: String read FEnumeracionItems write FEnumeracionItems;
property EnumeracionInicializacion: String read FEnumeracionInicializacion write FEnumeracionInicializacion;
property Alias: Boolean read FAlias write FAlias;
property EditaEnINSERT: Boolean read FEditaEnINSERT write FEditaEnINSERT;
property EditaEnUPDATE: Boolean read FEditaEnUPDATE write FEditaEnUPDATE;
property Constante: Boolean read Get_Constante; //FConstante write FConstante;
property Field: TField read Get_Field;
property Query: TprxADOQuery read Get_Query;
property IndicaDefecto: Boolean read FIndicaDefecto write FIndicaDefecto;
property Visible: Boolean read FVisible write FVisible;
property Grupo: String read FGrupo write FGrupo;
property xxPanel: String read FPanel write FPanel;
property Indicaciones: String read FIndicaciones write FIndicaciones;
property ValorPorDefecto: String read FValorPorDefecto write FValorPorDefecto;
property RelacionesCampo: Boolean read FRelacionesCampo write FRelacionesCampo;
property campos_calculados: TStringList read Fcampos_calculados write Fcampos_calculados;
property Computo: String read FComputo write FComputo;
property FKTablaForanea: String read FFKTablaForanea write FFKTablaForanea;
property FKCamposPropios: TStringList read FFKCamposPropios write FFKCamposPropios;
property FKCamposForaneos: TStringList read FFKCamposForaneos write FFKCamposForaneos;
property RelaxValidation: Boolean read FRelaxValidation write FRelaxValidation;
property FieldNo: Integer read FFieldNo write FFieldNo;
property LookupDS: TprxADODataSetLookup read FLookupDS write FLookupDS;
property CargarElementos: String read FCargarElementos write FCargarElementos;
property EditControl: TWinControl read FEditControl write FEditControl;
published
end;
Atributos del campo
Las siguientes variables corresponden a los atributos del campo cargados en la función TprxADODataSetEdit.StructureLoad:
- FADODataSet: TprxADODataSet;
- FAncestro: String;
- FFieldName: String;
- FLogicalName: String;
- FColumna: Integer;
- FAtributo: String;
- FEnteros: Integer;
- FDecimales: Integer;
- FComportamiento: String;
- FClave: Boolean;
- FRequerido: Boolean;
- FControl: String;
- FAlias: Boolean;
- FEditaEnINSERT: Boolean;
- FEditaEnUPDATE: Boolean;
- FIndicaDefecto: Boolean;
- FVisible: Boolean;
- FGrupo: String;
- FPanel: String;
- FIndicaciones: String;
- FValorPorDefecto: String;
- FRelacionesCampo: Boolean;
- Fcampos_calculados: TStringList;
- FComputo: String;
Implementación
function TableName: String
Retorna el nombre de la tabla del TprxADODataSetEdit que pertenece el campo.
function ArmarEnumeracion: Boolean
Arma los elementos del combo de un campo tipo enumeración.
Carga la definición desde las tablas de Enumeraciones usando el siguiente SQL:
SELECT prxenumeraciones.Enumeracion , prxenumeraciones.pSelect , prxenumeraciones.Inicializacion , prxenumeracionesD.Codigo FROM prxenumeraciones, prxenumeracionesD WHERE prxenumeraciones.Enumeracion = @Atributo AND prxenumeracionesD.Enumeracion = prxenumeraciones.Enumeracion ORDER BY prxenumeracionesD.Enumeracion , prxenumeracionesD.Linea
procedure CrearSelectCamposCalculados(aCommandFields: TStringList; aCommandFrom: TStringList; aCommandLeftOuter: TStringList)
Al SELECT normal para traer los campos de la tabla, agrega los comandos necesarios (LEFT OUTER JOIN) para traer campos calculados (ej: traer la descripción de un artículo).
function ValidateField(aConstraint: String; var aMsg: String): Boolean
Valida un valor ingresado en un campo de tipo 'clase'.
function ValidateFieldAlias(aTablaF: String; aCampoF: String; aFieldName: String; aAttribute: String; aValorL: String; var aValorRetorno: Variant): Boolean
Valida un valor según los campos Alias de una tabla, si encuentra algo retorna el valor del campo clave de la tabla foránea.
function EDIT_ONENTER: Boolean
Ejecutada en el OnEnter de un control de edición.
function EDIT_SELECT(aConstraint: String = blank): Boolean
Ejecutada al presionar F5 para seleccionar un valor en un control de edición. El argumento aConstraint solo se informa si la misma existe sobre el campo.
function EDIT_ONEXIT: Boolean
Ejecutada en el OnExit de un control de edición.
function EDIT_VALIDATE(var aMsg: String): Boolean
Valida un valor ingresado en un control de edición.