TpAUX CAMPO ASIGNACION unit
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:
- [[TprxADODataSetEdit].OnEnterFieldXtd.
- Tfva_campos_items.DefaultValuesAssign.