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; 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; frViewDatosYSeleccionCliente1: TfrViewDatosYSeleccionCliente; dxLayoutControlObraGroup7: TdxLayoutGroup; dxLayoutControlObraItem8: TdxLayoutItem; dxLayoutControlObraGroup4: TdxLayoutGroup; dxLayoutControlObraItem11: TdxLayoutItem; eObservaciones: TcxDBMemo; dxLayoutControlObraGroup2: TdxLayoutGroup; dxLayoutControlObraGroup8: TdxLayoutGroup; protected FObra: IBizObra; function GetObra: IBizObra; procedure SetObra(const Value: IBizObra); procedure OnClienteChanged(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 := frViewDatosYSeleccionCliente1.ID_Cliente; end; end; procedure TfrViewObra.SetObra(const Value: IBizObra); begin FObra := Value; frViewDatosYSeleccionCliente1.OnClienteChanged := NIL; if Assigned(FObra) then begin DADataSource.DataTable := FObra.DataTable; if not FObra.ID_CLIENTEIsNull then frViewDatosYSeleccionCliente1.ID_Cliente := FObra.ID_CLIENTE; frViewDatosYSeleccionCliente1.OnClienteChanged := OnClienteChanged; end else DADataSource.DataTable := NIL; end; end.