Diferencia entre revisiones de «TprxCmpCABECERA»
Línea 255: | Línea 255: | ||
Este mismo componente sirve para las derivadas de '''cmpCABECERA_pragma_XTD''' o '''cmpCABECERA''', ambas clases implementan campos con nombres ligeramente distintos. | Este mismo componente sirve para las derivadas de '''cmpCABECERA_pragma_XTD''' o '''cmpCABECERA''', ambas clases implementan campos con nombres ligeramente distintos. | ||
< | <blockquote> | ||
La clase TprxCmpCABECERA inicializa las propiedades según los campos definidos en la clase [[cmpCABECERA]]. | La clase TprxCmpCABECERA inicializa las propiedades según los campos definidos en la clase [[cmpCABECERA]]. | ||
La clase TcmpCABECERA_pragma_XTD_implemented inicializa las propiedades según los campos defindos en [[cmpCABECERA_pragma_XTD]]. | La clase TcmpCABECERA_pragma_XTD_implemented inicializa las propiedades según los campos defindos en [[cmpCABECERA_pragma_XTD]]. | ||
</ | </blockquote> | ||
Para no tener que escribir dos componentes con nombres de campos distintos, estos nombres se asignan a las siguientes variables del componente y se usan en el código: | Para no tener que escribir dos componentes con nombres de campos distintos, estos nombres se asignan a las siguientes variables del componente y se usan en el código: |
Revisión del 15:09 19 may 2025
Introducción
El objeto TprxCmpCABECERA (Funcionalidad genérica para cabeceras de comprobantes) implementa funcionalidad genérica para cabeceras de comprobantes.
Los ancestros que representan cabeceras de comprobantes son:
- La clase cmpCABECERA_pragma_XTD.
- La clase cmpCABECERA.
Identidad
- Ancestro: TprxADODataSetMaster
- Carpeta: C:\DevelopPrx\classes
- Archivo: prxCmpCABECERA.pas
Declaración
type TprxCmpCABECERA = class(TprxADODataSetMaster) private FListaFamilias: TStringList; FListaTipos: TStringList; FTags_Familia: TStringList; FEstadoNuevo: String; FCodigoNuevo: String; FQueryNumeracion: TprxADOQuery; FTipoCambio: String; protected FFamilia_Codigo: String; FFamilia_Descripcion: String; FFamilia_Circuito: String; FFamilia_SignoOpuesto: Boolean; FFamilia_PeriodoAbierto: String; FFamilia_UsaValuacion: Boolean; FFamilia_EditaFechaValuacion: Boolean; FFamilia_MuestraTotal: Boolean; FFamilia_MuestraPanelTotal: Boolean; FFamilia_Edita_cmpTotal: Boolean; FFamilia_cmpTotal_tab_first: Boolean; FFamilia_MuestraMoneda: Boolean; FFamilia_TablaCabecera: String; FFamilia_CampoTotal: String; FFamilia_CampoTotalLocal: String; FFamilia_CampoFecha: String; FFamilia_GuionSeparador: Boolean; FFamilia_CalculaImpuestos: String; FcmpCodigo_Name: String; FcmpUsuario_Name: String; FcmpFamilia_Name: String; FcmpTipo_Name: String; FcmpTipo_Descripcion_Name: String; FcmpPuntoEmision_Name: String; FcmpPuntoEmision_Descripcion_Name: String; FcmpLetra_Name: String; FcmpNumero_Name: String; FcmpFecha_Name: String; FcmpEstado_Name: String; FcmpTS_Name: String; FcmpMoneda_Name: String; FcmpTipoCambio_Name: String; FcmpFechaValuacion_Name: String; FcmpCotizacion_Name: String; FcmpTotal_Name: String; FcmpTotal_Local_Name: String; FcmpComentarios_Name: String; FcmpReferencia_Name: String; FcmpReferenciaFecha_Name: String; FcmpValidacionReferencia: String; FcmpValidacionReferenciaLetras: String; procedure Set_cmpCodigo_Value(aValue: String); virtual; function Get_cmpCodigo_Value: String; virtual; procedure Set_cmpUsuario_Value(aValue: String); virtual; function Get_cmpUsuario_Value: String; virtual; procedure Set_cmpFamilia_Value(aValue: String); virtual; function Get_cmpFamilia_Value: String; virtual; procedure Set_cmpTipo_Value(aValue: String); virtual; function Get_cmpTipo_Value: String; virtual; procedure Set_cmpPuntoEmision_Value(aValue: String); virtual; function Get_cmpPuntoEmision_Value: String; virtual; procedure Set_cmpLetra_Value(aValue: String); virtual; function Get_cmpLetra_Value: String; virtual; procedure Set_cmpNumero_Value(aValue: Integer); virtual; function Get_cmpNumero_Value: Integer; virtual; procedure Set_cmpFecha_Value(aValue: TDatetime); virtual; function Get_cmpFecha_Value: TDatetime; virtual; procedure Set_cmpEstado_Value(aValue: String); virtual; function Get_cmpEstado_Value: String; virtual; procedure Set_cmpTS_Value(aValue: String); function Get_cmpTS_Value: String; procedure Set_cmpMoneda_Value(aValue: String); function Get_cmpMoneda_Value: String; procedure Set_cmpTipoCambio_Value(aValue: String); function Get_cmpTipoCambio_Value: String; procedure Set_cmpFechaValuacion_Value(aValue: TDatetime); function Get_cmpFechaValuacion_Value: TDatetime; procedure Set_cmpCotizacion_Value(aValue: Double); function Get_cmpCotizacion_Value: Double; procedure Set_cmpTotal_Value(aValue: Double); function Get_cmpTotal_Value: Double; procedure Set_cmpComentarios_Value(aValue: String); function Get_cmpComentarios_Value: String; procedure Set_cmpReferencia_Value(aValue: String); function Get_cmpReferencia_Value: String; procedure DefaultValuesAssign; override; procedure SetTableName(aValue: String); override; function CodigoComprobante(aFamilia: String; aTipo: String; aPuntoEmision: String; aLetra: String; aNumero: Integer): String; function TomarUltimoNumeroEnUso(aPermiteFechaAnterior: Boolean; var aFechaAnterior: TDateTime): Integer; function AsignarNumero: Boolean; function AsignarEstado(aComprobante: String; aEstado: String): Boolean; function Referencia_Habilita: Boolean; function Referencia_Valida: Boolean; function Referencia_ValidarFormato(aFieldName: String; aValue: String; var aErrMsg: String): Boolean; function Referencia_ValidarExistencia(var aErrMsg: String; aAutImp: Boolean): Boolean; function RemitoCombustible_ValidarExistencia(var aErrMsg: String; aAutImp: Boolean): Boolean; property ListaFamilias: TStringList read FListaFamilias write FListaFamilias; property ListaTipos: TStringList read FListaTipos write FListaTipos; property QueryNumeracion: TprxADOQuery read FQueryNumeracion write FQueryNumeracion; property TipoCambio: String read FTipoCambio; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Loaded; override; function ModoAnulacion: String; function ModoImpresion_Automatica: Boolean; property Tags_Familia: TStringList read FTags_Familia write FTags_Familia; property cmpCodigo_Value: String read Get_cmpCodigo_Value write Set_cmpCodigo_Value; property cmpUsuario_Value: String read Get_cmpUsuario_Value write Set_cmpUsuario_Value; property cmpFamilia_Value: String read Get_cmpFamilia_Value write Set_cmpFamilia_Value; property cmpTipo_Value: String read Get_cmpTipo_Value write Set_cmpTipo_Value; property cmpPuntoEmision_Value: String read Get_cmpPuntoEmision_Value write Set_cmpPuntoEmision_Value; property cmpLetra_Value: String read Get_cmpLetra_Value write Set_cmpLetra_Value; property cmpNumero_Value: Integer read Get_cmpNumero_Value write Set_cmpNumero_Value; property cmpFecha_Value: TDatetime read Get_cmpFecha_Value write Set_cmpFecha_Value; property cmpEstado_Value: String read Get_cmpEstado_Value write Set_cmpEstado_Value; property cmpTS_Value: String read Get_cmpTS_Value write Set_cmpTS_Value; property cmpMoneda_Value: String read Get_cmpMoneda_Value write Set_cmpMoneda_Value; property cmpTipoCambio_Value: String read Get_cmpTipoCambio_Value write Set_cmpTipoCambio_Value; property cmpFechaValuacion_Value: TDatetime read Get_cmpFechaValuacion_Value write Set_cmpFechaValuacion_Value; property cmpCotizacion_Value: Double read Get_cmpCotizacion_Value write Set_cmpCotizacion_Value; property cmpTotal_Value: Double read Get_cmpTotal_Value write Set_cmpTotal_Value; property cmpComentarios_Value: String read Get_cmpComentarios_Value write Set_cmpComentarios_Value; property cmpReferencia_Value: String read Get_cmpReferencia_Value write Set_cmpReferencia_Value; function ImprimirComprobanteXtd: Boolean; function ImprimirComprobanteXtd_Registrado: Boolean; function AsignarComprobante_Registrado: Boolean; function EstadoAprobacion: String; function CanInsertXtd: Boolean; override; function PuedeRegistrar(var aMsg: String; aOP: String): Boolean; virtual; function PuedeEliminar(var aMsg: String): Boolean; virtual; function ReabrirComprobanteVerificar: Boolean; function ReabrirComprobante: Boolean; virtual; procedure GetPopupOptions(Sender: TprxPopupMenu); override; procedure OnEnterFieldXtd(Sender: TObject; aFieldName: String; aFieldValue: Variant); override; function OnExitFieldXtd(Sender: TObject; aFieldName: String; aFieldValue: Variant; aErrMsg: String): Boolean; override; procedure InsertXtd(Sender: TObject); override; procedure EditXtd(Sender: TObject); override; procedure CancelXtd(Sender: TObject); override; function RequeryXtd: Boolean; override; function UpdateBatchXtd(AffectRecords: TAffectRecords = arAll): Boolean; override; procedure DeleteAndPostXtd(Sender: TObject); function EliminarComprobante(Sender: TObject): Boolean; function EliminarComprobanteXtd(Sender: TObject): Boolean; procedure Totalizar(aMode: String); virtual; function Subtotal: Double; property Familia_Codigo: String read FFamilia_Codigo; property Familia_Descripcion: String read FFamilia_Descripcion; property Familia_Circuito: String read FFamilia_Circuito; property Familia_SignoOpuesto: Boolean read FFamilia_SignoOpuesto; property Familia_PeriodoAbierto: String read FFamilia_PeriodoAbierto; property Familia_UsaValuacion: Boolean read FFamilia_UsaValuacion; property Familia_EditaFechaValuacion: Boolean read FFamilia_EditaFechaValuacion; property Familia_MuestraTotal: Boolean read FFamilia_MuestraTotal; property Familia_MuestraPanelTotal: Boolean read FFamilia_MuestraPanelTotal; property Familia_Edita_cmpTotal: Boolean read FFamilia_Edita_cmpTotal; property Familia_cmpTotal_tab_first: Boolean read FFamilia_cmpTotal_tab_first write FFamilia_cmpTotal_tab_first; property Familia_MuestraMoneda: Boolean read FFamilia_MuestraMoneda; property Familia_TablaCabecera: String read FFamilia_TablaCabecera; property Familia_CampoTotal: String read FFamilia_CampoTotal; property Familia_CampoTotalLocal: String read FFamilia_CampoTotalLocal; property Familia_CampoFecha: String read FFamilia_CampoFecha; property Familia_GuionSeparador: Boolean read FFamilia_GuionSeparador; property Familia_CalculaImpuestos: String read FFamilia_CalculaImpuestos; property cmpCodigo_Name: String read FcmpCodigo_Name; property cmpUsuario_Name: String read FcmpUsuario_Name; property cmpFamilia_Name: String read FcmpFamilia_Name; property cmpTipo_Name: String read FcmpTipo_Name; property cmpTipo_Descripcion_Name: String read FcmpTipo_Descripcion_Name; property cmpPuntoEmision_Name: String read FcmpPuntoEmision_Name; property cmpPuntoEmision_Descripcion_Name: String read FcmpPuntoEmision_Descripcion_Name; property cmpLetra_Name: String read FcmpLetra_Name; property cmpNumero_Name: String read FcmpNumero_Name; property cmpFecha_Name: String read FcmpFecha_Name; property cmpEstado_Name: String read FcmpEstado_Name; property cmpTS_Name: String read FcmpTS_Name; property cmpMoneda_Name: String read FcmpMoneda_Name; property cmpTipoCambio_Name: String read FcmpTipoCambio_Name; property cmpFechaValuacion_Name: String read FcmpFechaValuacion_Name; property cmpCotizacion_Name: String read FcmpCotizacion_Name; property cmpTotal_Name: String read FcmpTotal_Name; property cmpTotal_Local_Name: String read FcmpTotal_Local_Name; property cmpComentarios_Name: String read FcmpComentarios_Name; property cmpReferencia_Name: String read FcmpReferencia_Name; property cmpReferenciaFecha_Name: String read FcmpReferenciaFecha_Name; property cmpValidacionReferencia: String read FcmpValidacionReferencia write FcmpValidacionReferencia; property cmpValidacionReferenciaLetras: String read FcmpValidacionReferenciaLetras write FcmpValidacionReferenciaLetras; property xxEstadoNuevo: String read FEstadoNuevo write FEstadoNuevo; property CodigoNuevo: String read FCodigoNuevo; published end;
Propiedades de nombres de campos
Este mismo componente sirve para las derivadas de cmpCABECERA_pragma_XTD o cmpCABECERA, ambas clases implementan campos con nombres ligeramente distintos.
La clase TprxCmpCABECERA inicializa las propiedades según los campos definidos en la clase cmpCABECERA.
La clase TcmpCABECERA_pragma_XTD_implemented inicializa las propiedades según los campos defindos en cmpCABECERA_pragma_XTD.
Para no tener que escribir dos componentes con nombres de campos distintos, estos nombres se asignan a las siguientes variables del componente y se usan en el código:
Orden | Variable en el dataset | Campo en cmpCABECERA_pragma_XTD | Campo en cmpCABECERA |
---|---|---|---|
1 | FcmpCodigo_Name: String | FCMPCODIGO | cmpCodigo |
2 | FcmpUsuario_Name: String | FCMPUSUARIO | cmpUsuario |
3 | FcmpFamilia_Name: String | FCMPFAMILIA | cmpFamilia |
4 | FcmpTipo_Name: String | FCMPTIPO | cmpTipo |
5 | FcmpTipo_Descripcion_Name: String | No tiene campo | No tiene campo |
6 | FcmpPuntoEmision_Name: String | FCMPPUNTOVENTA | cmpPuntoEmision |
7 | FcmpPuntoEmision_Descripcion_Name: String | No tiene campo | No tiene campo |
8 | FcmpLetra_Name: String | FCMPLETRA | cmpLetra |
9 | FcmpNumero_Name: String | FCMPNUMERO | cmpNumero |
10 | FcmpFecha_Name: String | FCMPFECHA | cmpFecha |
11 | FcmpEstado_Name: String | FCMPESTADO | cmpEstado |
12 | FcmpTS_Name: String | No existe el campo | cmpTS |
13 | FcmpMoneda_Name: String | FCMPMONEDA | cmpMoneda |
14 | FcmpTipoCambio_Name: String | NA | cmpTipoCambio |
15 | FcmpFechaValuacion_Name: String | FCMPFECHAVALUACION | cmpFechaValuacion |
16 | FcmpCotizacion_Name: String | FCMPCOTIZACION | cmpCotizacion |
17 | FcmpTotal_Name: String | FCMPTOTAL | cmpTotal |
18 | FcmpTotal_Local_Name: String | FCMPTOTAL_LOCAL | cmpTotal_Local |
19 | FcmpComentarios_Name: String | FCMPCOMENTARIOS | cmpComentarios |
20 | FcmpReferencia_Name: String | FREFERENCIA | Referencia |
21 | FcmpReferenciaFecha_Name: String | FREFERENCIAFECHA | ReferenciaFecha |
Por ejemplo, la variable FcmpCodigo_Name se define como protected:
protected FcmpCodigo_Name: String;
Y luego en public:
public property cmpCodigo_Name: String read FcmpCodigo_Name;
En la clase TprxCmpCABECERA se inicializa como:
FcmpCodigo_Name := 'cmpCodigo';
Y en TcmpCABECERA_pragma_XTD_implemented (que deriva de TprxCmpCABECERA) se inicializa como:
FcmpCodigo_Name := 'FCMPCODIGO';