unit uViewObra; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, DBCtrls, Grids, DBGrids, uBizObras, Mask, ComCtrls, uCustomView, JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl, uDAInterfaces, uViewDatosYSeleccionCliente, cxMemo, uViewDatosYSeleccionProveedor, uViewSubcontrataObra, uViewClienteAsociadoObra; type IViewObra = interface(IViewBase) ['{D8669267-CAC9-468E-9923-2D3B2DD30CED}'] function GetObra: IBizObra; procedure SetObra(const Value: IBizObra); property Obra: IBizObra read GetObra write SetObra; end; TfrViewObra = class(TfrViewBase, IViewObra) DADataSource: TDADataSource; ePersonaContacto: TcxDBTextEdit; eTlfTelefono: TcxDBTextEdit; eTlfMovil: TcxDBTextEdit; eFax: TcxDBTextEdit; dxLayoutControlObraGroup_Root: TdxLayoutGroup; dxLayoutControlObra: TdxLayoutControl; dxLayoutControlObraGroup1: TdxLayoutGroup; dxLayoutControlObraItem3: TdxLayoutItem; eNombre: TcxDBTextEdit; dxLayoutControlObraItem4: TdxLayoutItem; dxLayoutControlObraItem1: TdxLayoutItem; dxLayoutControlObraItem5: TdxLayoutItem; dxLayoutControlObraItem6: TdxLayoutItem; dxLayoutControlObraGroup3: TdxLayoutGroup; dxLayoutControlObraItem10: TdxLayoutItem; eCalle: TcxDBTextEdit; dxLayoutControlObraItem2: TdxLayoutItem; ePoblacion: TcxDBTextEdit; dxLayoutControlObraItem7: TdxLayoutItem; dxLayoutControlObraGroup5: TdxLayoutGroup; eCodigoPostal: TcxDBTextEdit; dxLayoutControlObraItem9: TdxLayoutItem; dxLayoutControlObraGroup6: TdxLayoutGroup; eProvincia: TcxDBTextEdit; dxLayoutControlObraGroup7: TdxLayoutGroup; dxLayoutControlObraGroup4: TdxLayoutGroup; dxLayoutControlObraItem11: TdxLayoutItem; eObservaciones: TcxDBMemo; dxLayoutControlObraGroup2: TdxLayoutGroup; dxLayoutControlObraGroup8: TdxLayoutGroup; dxLayoutControlObraGroup9: TdxLayoutGroup; dxLayoutControlObraGroup10: TdxLayoutGroup; dxLayoutControlObraItem8: TdxLayoutItem; frViewSubcontrataObra1: TfrViewSubcontrataObra; frViewClienteAsociadoObra1: TfrViewClienteAsociadoObra; dxLayoutControlObraItem12: TdxLayoutItem; dxLayoutControlObraItem13: TdxLayoutItem; protected FObra: IBizObra; function GetObra: IBizObra; procedure SetObra(const Value: IBizObra); procedure OnClienteChanged(Sender : TObject); procedure OnSubcontrataChanged(Sender : TObject); public property Obra: IBizObra read GetObra write SetObra; end; implementation uses uDataModuleObras; {$R *.dfm} { TfrViewObras } { ******************************* TfrViewObras ******************************** } function TfrViewObra.GetObra: IBizObra; begin Result := FObra; end; procedure TfrViewObra.OnClienteChanged(Sender: TObject); begin if Assigned(FObra) then begin FObra.Edit; FObra.ID_CLIENTE := frViewClienteAsociadoObra1.ID_Cliente; end; end; procedure TfrViewObra.OnSubcontrataChanged(Sender: TObject); begin if Assigned(FObra) then begin FObra.Edit; FObra.ID_SUBCONTRATA := frViewSubcontrataObra1.ID_Proveedor; end; end; procedure TfrViewObra.SetObra(const Value: IBizObra); begin FObra := Value; frViewClienteAsociadoObra1.OnClienteChanged := NIL; frViewSubcontrataObra1.OnProveedorChanged := NIL; if Assigned(FObra) then begin DADataSource.DataTable := FObra.DataTable; if not FObra.ID_CLIENTEIsNull then frViewClienteAsociadoObra1.ID_Cliente := FObra.ID_CLIENTE; if not FObra.ID_SUBCONTRATAIsNull then frViewSubcontrataObra1.ID_Proveedor := FObra.ID_SUBCONTRATA; frViewClienteAsociadoObra1.OnClienteChanged := OnClienteChanged; frViewSubcontrataObra1.OnProveedorChanged := OnSubcontrataChanged; end else DADataSource.DataTable := NIL; end; end.