unit uViewMontaje; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, DBCtrls, Grids, DBGrids, uBizMontajes, Mask, ComCtrls, uCustomView, uViewDireccion, uViewTelefonos, uViewInternet, uViewCategorias, JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, cxGraphics, uViewDatosYSeleccionContacto, cxMaskEdit, cxDropDownEdit, cxImageComboBox, cxCalendar, uViewPresupuestoRelacionado, uViewPresupuestoMontaje; type IViewMontaje = interface(IViewBase) ['{A9189F38-9832-4919-9B98-56F345C2AACA}'] function GetMontaje: IBizMontaje; procedure SetMontaje(const Value: IBizMontaje); property Montaje: IBizMontaje read GetMontaje write SetMontaje; end; TfrViewMontaje = class(TfrViewBase, IViewMontaje) Bevel1: TBevel; DADataSource: TDADataSource; Label5: TLabel; pnlGeneral: TPanel; Label3: TLabel; Label4: TLabel; frViewDatosYSeleccionContacto: TfrViewDatosYSeleccionContacto; cbSituacion: TcxDBImageComboBox; edtFechaIni: TcxDBDateEdit; edtFechaFin: TcxDBDateEdit; frViewPresupuestoMontaje: TfrViewPresupuestoMontaje; private FMontaje: IBizMontaje; protected procedure OnPresupuestoChanged(Sender : TObject); procedure OnContactoChanged (Sender : TObject); function GetMontaje: IBizMontaje; procedure SetMontaje(const Value: IBizMontaje); public property Montaje: IBizMontaje read GetMontaje write SetMontaje; end; implementation uses uDataModuleMontajes, uBizContacto, uDataModuleContactos, uDataModulePresupuestos, uBizPresupuestosCliente; {$R *.dfm} { TfrViewMontajes } { ******************************* TfrViewMontajes ******************************** } function TfrViewMontaje.GetMontaje: IBizMontaje; begin Result := FMontaje; end; procedure TfrViewMontaje.OnContactoChanged(Sender: TObject); begin FMontaje.Cliente := (frViewDatosYSeleccionContacto.Contacto as IBizCliente); end; procedure TfrViewMontaje.OnPresupuestoChanged(Sender: TObject); begin if not (FMontaje.DataTable.State in dsEditModes) then FMontaje.Edit; FMontaje.Presupuesto := frViewPresupuestoMontaje.Presupuesto; frViewDatosYSeleccionContacto.Contacto := Montaje.Cliente; end; procedure TfrViewMontaje.SetMontaje(const Value: IBizMontaje); begin FMontaje := Value; if Assigned(FMontaje) then DADataSource.DataTable := FMontaje.DataTable else DADataSource.DataTable := NIL; frViewDatosYSeleccionContacto.Contacto := FMontaje.Cliente; frViewDatosYSeleccionContacto.OnContactoChanged := OnContactoChanged; frViewPresupuestoMontaje.Presupuesto := FMontaje.Presupuesto; frViewPresupuestoMontaje.OnPresupuestoChanged := OnPresupuestoChanged; end; initialization RegisterClass(TfrViewMontaje); finalization UnRegisterClass(TfrViewMontaje); end.