TpAUX CAMPO ASIGNACION unit

De Pragma Wiki
Revisión del 17:52 22 may 2025 de Luciano Carou (discusión | contribs.) (→‎Usos)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Descripción

El objeto TpAUX_CAMPO_ASIGNACION_unit (Asignación de valores) procesa los auxiliares de tipo ASIGNACION, ver detalles en DEV AUXILIARES/ASIGNACION.

Identidad

  • Ancestro: TComponent
  • Carpeta: C:\DevelopPrx\pPRAGMA
  • Archivo: pAUX_CAMPO_ASIGNACION_unit.pas

Declaración

const
  TpAUX_CAMPO_ASIGNACION_ONENTER = 'ONENTER';
  TpAUX_CAMPO_ASIGNACION_ONEXIT  = 'ONEXIT';

type
  TpAUX_CAMPO_ASIGNACION_unit = class(TComponent)
  private
    FDataSet: TDataSet;
    FClase: String;
    FCampo: String;

    FQuery: TprxADOQuery;
    FSQL_COMANDO: TStringList;
    FSQL_COMANDO_SELECT: TStringList;

    FTag_Estadistica: Boolean;
    FTag_Porcentaje100: Boolean;
    FTag_Evento: String;
    FTag_OnPost: Boolean;
    FTag_ValorNulo: Boolean;

    FItems: TStringList;
  protected
    property    SQL_COMANDO: TStringList read FSQL_COMANDO write FSQL_COMANDO;

    property    Tag_Estadistica: Boolean read FTag_Estadistica;
    property    Tag_Porcentaje100: Boolean read FTag_Porcentaje100;
    property    Tag_Evento: String read FTag_Evento;
    property    Tag_OnPost: Boolean read FTag_OnPost;
    property    Tag_ValorNulo: Boolean read FTag_ValorNulo;

    function    Exec_FieldAssignEstadistica(aCampo: String; aSQL: TStringList): Variant;
    function    Exec_FieldAssignPorcentaje100(aCampo: String; aSQL: TStringList): Double;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;

    function    Procesar(aEvento: String; aOnPost: Boolean = False): Boolean;
    function    ProcesarPost: Boolean;

    property    DataSet: TDataSet read FDataSet write FDataSet;
    property    Clase: String read FClase write FClase;
    property    Campo: String read FCampo write FCampo;

    property    Query: TprxADOQuery read FQuery write FQuery;

    property    Items: TStringList read FItems;

    property    SQL_COMANDO_SELECT: TStringList read FSQL_COMANDO_SELECT write FSQL_COMANDO_SELECT;
  published
  end;

Implementación

function Procesar(aEvento: String; aOnPost: Boolean = False): Boolean

Procesa las asignaciones correspondientes al campo como detonador, si encuentra un valor lo asigna al campo:

TprxADODataSetEdit(DataSet).AssignValueToField(Items[I], vValor);

function Exec_FieldAssignPorcentaje100(aCampo: String; aSQL: TStringList): Double

Arma y ejecuta la sentencia de asignación por diferencia.

function Exec_FieldAssignEstadistica(aCampo: String; aSQL: TStringList): Variant

Asigna un valor estadístico.

Modo de uso

El auxiliar se usa de la siguiente manera:

prxADOClientDM.pAUX_CAMPO_ASIGNACION_unit.DataSet := Self;
prxADOClientDM.pAUX_CAMPO_ASIGNACION_unit.Clase   := ppTableName;
prxADOClientDM.pAUX_CAMPO_ASIGNACION_unit.Campo   := aFieldName;
prxADOClientDM.pAUX_CAMPO_ASIGNACION_unit.Procesar(TpAUX_CAMPO_ASIGNACION_ONENTER);

Primero asignamos las propiedades:

  • Dataset que se asigna al mismo componente que está llamando al auxiliar.
  • Clase se inicializa al nombre de la tabla del componente que está llamando al auxiliar.
  • Campo se inicializa al nombre del campo cuyo valor queremos asignar.

Posteriormente se llama directamente a la función Execute que validará las condiciones de posteo.

prxADOClientDM.pAUX_CAMPO_ASIGNACION_unit.Procesar(TpAUX_CAMPO_ASIGNACION_ONENTER);

Usos

El auxiliar se usa en: