Diferencia entre revisiones de «Tfva campos item»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
 
(No se muestra una edición intermedia del mismo usuario)
Línea 188: Línea 188:
Ejecutada en el OnEnter de un control de edición.
Ejecutada en el OnEnter de un control de edición.


===function EDIT_SELECT(aConstraint: String = ''): Boolean===
===function EDIT_SELECT(aConstraint: String = blank): Boolean===
Ejecutada al presionar F5 para seleccionar un valor en un control de edición.
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===
===function EDIT_ONEXIT: Boolean===
Línea 196: Línea 196:
===function EDIT_VALIDATE(var aMsg: String): Boolean===
===function EDIT_VALIDATE(var aMsg: String): Boolean===
Valida un valor ingresado en un control de edición.
Valida un valor ingresado en un control de edición.
=Uso=

Revisión actual - 22: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.

Uso