unit uViewFacturaCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, DB, uDADataTable, uCustomView, uViewDatosYSeleccionCliente, uBizFacturasCliente, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl, cxMemo, cxMaskEdit, cxDropDownEdit, cxCalendar, cxSpinEdit, StdCtrls, Mask, DBCtrls, cxGraphics, dxLayoutLookAndFeels; type IViewFacturaCliente = interface(IViewBase) ['{3A95930C-20B3-41E9-93CB-21138ADB5B70}'] function GetFactura: IBizFacturaCliente; procedure SetFactura(const Value: IBizFacturaCliente); property Factura: IBizFacturaCliente read GetFactura write SetFactura; end; TfrViewFacturaCliente = class(TfrViewBase, IViewFacturaCliente) DADataSource: TDADataSource; dxLayoutControl1Group_Root: TdxLayoutGroup; dxLayoutControl1: TdxLayoutControl; dxLayoutControl1Item1: TdxLayoutItem; eReferencia: TcxDBTextEdit; dxLayoutControl1Item2: TdxLayoutItem; edtFecha: TcxDBDateEdit; dxLayoutControl1Group1: TdxLayoutGroup; dxLayoutControl1Group2: TdxLayoutGroup; dxLayoutControl1Item4: TdxLayoutItem; memFormaPago: TcxDBMemo; dxLayoutControl1Item5: TdxLayoutItem; memObservaciones: TcxDBMemo; dxLayoutControl1Group3: TdxLayoutGroup; dxLayoutControl1Group5: TdxLayoutGroup; dxLayoutControl1Item6: TdxLayoutItem; frViewClienteFactura: TfrViewDatosYSeleccionCliente; edtVencimiento: TcxDBSpinEdit; dxLayoutControl1Item7: TdxLayoutItem; dxLayoutControl1Group7: TdxLayoutGroup; dxLayoutControl1Group6: TdxLayoutGroup; dxLayoutControl1Item3: TdxLayoutItem; cbSituacion: TcxDBComboBox; dxLayoutControl1Item8: TdxLayoutItem; edtFechaDecision: TcxDBDateEdit; edtFechaVencimiento: TcxDBDateEdit; dxLayoutControl1Item9: TdxLayoutItem; dxLayoutControl1Group9: TdxLayoutGroup; dxLayoutControl1Group4: TdxLayoutGroup; dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; procedure cbSituacionPropertiesInitPopup(Sender: TObject); procedure OnCreate(Sender: TObject); private FFactura : IBizFacturaCliente; protected function GetFactura: IBizFacturaCliente; procedure SetFactura(const Value: IBizFacturaCliente); public property Factura: IBizFacturaCliente read GetFactura write SetFactura; end; implementation uses uDataModuleContactos, schFacturasClienteClient_Intf; {$R *.dfm} { TfrViewFacturaCliente } procedure TfrViewFacturaCliente.cbSituacionPropertiesInitPopup(Sender: TObject); begin inherited; with cbSituacion.Properties.Items do begin if Count = 0 then begin BeginUpdate; try Clear; AddStrings(Factura. DarListaSituaciones); finally EndUpdate; end; end; end; end; function TfrViewFacturaCliente.GetFactura: IBizFacturaCliente; begin Result := FFactura; end; procedure TfrViewFacturaCliente.OnCreate(Sender: TObject); begin frViewClienteFactura.MsgElegirCliente := 'Elija el cliente al que se le realizará la factura.'; end; procedure TfrViewFacturaCliente.SetFactura(const Value: IBizFacturaCliente); begin FFactura := Value; if Assigned(FFactura) then begin DADataSource.DataTable := FFactura.DataTable; //Solo se deshabilita al insertar, luego la referencia será modificable eReferencia.Enabled := (FFactura.DataTable.State = dsInsert); end else DADataSource.DataTable := NIL; frViewClienteFactura.Cliente := FFactura.Cliente; end; end.