Diferencia entre revisiones de «TprxADODataSetDetail»
(Página creada con «=Descripción= El objeto '''TprxADODataSetDetail''' (Funcionalidad genérica para detalles de comprobantes.) implementa funcionalidad genérica para detalles de comprobantes. =Identidad= Category:MANUAL/PROGRAMADOR Category:DATASETS *Ancestro: TprxADODataSetMaster *Carpeta: C:\DevelopPrx\library *Archivo: prxADODataSetDetail.pas =Declaración= <pre> type TprxADODataSetDetail = class(TprxADODataSetMaster) private FMaste…») |
|||
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
Línea 70: | Línea 70: | ||
===FCmpMasterDataSet: TprxADODataSetEdit=== | ===FCmpMasterDataSet: TprxADODataSetEdit=== | ||
Apunta al dataset que es su maestro en la relación master-detail, pero solo cuando | Apunta al dataset que es su maestro en la relación master-detail, pero solo cuando: | ||
<pre> | |||
if MasterDataSet is TprxCmpCABECERA then | if MasterDataSet is TprxCmpCABECERA then | ||
CmpMasterDataSet := MasterDataSet; | CmpMasterDataSet := MasterDataSet; | ||
</pre> | |||
=Implementación= | =Implementación= | ||
===procedure SetMasterDataSet(aValue: TprxADODataSetEdit)=== | ===procedure SetMasterDataSet(aValue: TprxADODataSetEdit)=== | ||
Línea 89: | Línea 88: | ||
*msgEdit. | *msgEdit. | ||
*msgCancel. | *msgCancel. | ||
===procedure ApplyMasterKey=== | |||
Refresca los datos del dataset para que correspondan al master que está vigente. Por ejemplo, si en una pantalla de detalles de facturas cambió el código de la factura tenemos que refrescar este dataset para que coincida con el detalle de la nueva factura. | |||
===procedure AssignMasterKey(Sender: TObject)=== | |||
Asignamos los valores de la clave del master, es función aparte porque se usa en TprxADODataSetEdit (es decir que no llamamos al inherited porque no queremos llamar a la función del ancestro). | |||
===Funciones derivadas=== | |||
Las siguientes funciones derivan del ancestro y agregan funcionalidad específica a este dataset: | |||
*function CanInsertXtd: Boolean. | |||
*procedure InsertXtd(Sender: TObject). | |||
*function CanEditXtd: Boolean. | |||
*procedure EditXtd(Sender: TObject). | |||
*function CanDeleteXtd(aAsk: Boolean): Boolean. | |||
*procedure DeleteXtd(Sender: TObject). | |||
*function PostXtd(Sender: TObject): Boolean. |
Revisión actual - 20:51 16 may 2025
Descripción
El objeto TprxADODataSetDetail (Funcionalidad genérica para detalles de comprobantes.) implementa funcionalidad genérica para detalles de comprobantes.
Identidad
- Ancestro: TprxADODataSetMaster
- Carpeta: C:\DevelopPrx\library
- Archivo: prxADODataSetDetail.pas
Declaración
type TprxADODataSetDetail = class(TprxADODataSetMaster) private FMasterDataSet: TprxADODataSetEdit; FCmpMasterDataSet: TprxADODataSetEdit; FNuevoSubtotal: Boolean; FApplyMasterKey_Count: Integer; procedure FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE; protected procedure SetTableName(aValue: String); override; procedure Notification(AComponent: TComponent; Operation: TOperation); override; function Get_TAG_READONLY: Boolean; override; function KeepFormOpen_Get: Boolean; override; procedure SetMasterDataSet(aValue: TprxADODataSetEdit); virtual; function EvaluarEstadoCabecera: Boolean; property CmpMasterDataSet: TprxADODataSetEdit read FCmpMasterDataSet write FCmpMasterDataSet; property xxNuevoSubtotal: Boolean read FNuevoSubtotal write FNuevoSubtotal; property ApplyMasterKey_Count: Integer read FApplyMasterKey_Count; // write FApplyMasterKey_Count; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Loaded; override; procedure Activate(aLoadRecords: Boolean); override; function IsTransactionMaster: Boolean; override; procedure AssignMasterKey(Sender: TObject); function CanInsertXtd: Boolean; override; procedure InsertXtd(Sender: TObject); override; function CanEditXtd: Boolean; override; procedure EditXtd(Sender: TObject); override; function CanDeleteXtd(aAsk: Boolean): Boolean; override; procedure DeleteXtd(Sender: TObject); override; function PostXtd(Sender: TObject): Boolean; override; procedure ApplyMasterKey; published property MasterDataSet: TprxADODataSetEdit read FMasterDataSet write SetMasterDataSet; //FMasterDataSet; end;
FMasterDataSet: TprxADODataSetEdit
Apunta al dataset que es su maestro en la relación master-detail.
FCmpMasterDataSet: TprxADODataSetEdit
Apunta al dataset que es su maestro en la relación master-detail, pero solo cuando:
if MasterDataSet is TprxCmpCABECERA then CmpMasterDataSet := MasterDataSet;
Implementación
procedure SetMasterDataSet(aValue: TprxADODataSetEdit)
Procedimiento para inicializar el master del dataset (propiedad FMasterDataSet).
function EvaluarEstadoCabecera: Boolean
Si el MasterDataSet es una cabecera de comprobante evalúa su estado, si es Nuevo o Abierto retorna True, de lo contrario retorna False.
procedure FieldMessage(var Message: TprxADODataSetMessage)
Recibe mensajes (Ver prxDataTypes, si el master está activo y ante alguno de los siguientes eventos aplica la clave del master para que el dataset se refresque trayendo los registros que corresponde a su maestro.
- msgNewRecord.
- msgScroll.
- msgEdit.
- msgCancel.
procedure ApplyMasterKey
Refresca los datos del dataset para que correspondan al master que está vigente. Por ejemplo, si en una pantalla de detalles de facturas cambió el código de la factura tenemos que refrescar este dataset para que coincida con el detalle de la nueva factura.
procedure AssignMasterKey(Sender: TObject)
Asignamos los valores de la clave del master, es función aparte porque se usa en TprxADODataSetEdit (es decir que no llamamos al inherited porque no queremos llamar a la función del ancestro).
Funciones derivadas
Las siguientes funciones derivan del ancestro y agregan funcionalidad específica a este dataset:
- function CanInsertXtd: Boolean.
- procedure InsertXtd(Sender: TObject).
- function CanEditXtd: Boolean.
- procedure EditXtd(Sender: TObject).
- function CanDeleteXtd(aAsk: Boolean): Boolean.
- procedure DeleteXtd(Sender: TObject).
- function PostXtd(Sender: TObject): Boolean.