unit uViewDireccionEntregaContratoCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, uBizContratosCliente, cxGraphics, dxLayoutControl, cxMemo, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, ActnList, uContratosClienteController, Buttons, cxDBEdit, uDAInterfaces; type IViewDireccionEntregaContratoCliente = interface(IViewBase) ['{7467855C-066F-4A60-B88F-2837C8050B1E}'] function GetContratoCliente: IBizContratoCliente; procedure SetContratoCliente(const Value: IBizContratoCliente); property ContratoCliente: IBizContratoCliente read GetContratoCliente write SetContratoCliente; end; TfrViewDireccionEntregaContratoCliente = class(TfrViewBase, IViewDireccionEntregaContratoCliente) dxLayoutControl1: TdxLayoutControl; dxLayoutGroup1: TdxLayoutGroup; dsPedido: TDADataSource; dsAlmacenes: TDADataSource; dxLayoutControl1Item1: TdxLayoutItem; eCalle: TcxDBTextEdit; dxLayoutControl1Item2: TdxLayoutItem; ePoblacion: TcxDBTextEdit; dxLayoutControl1Item3: TdxLayoutItem; eProvincia: TcxDBTextEdit; dxLayoutControl1Item4: TdxLayoutItem; eCodigoPostal: TcxDBTextEdit; dxLayoutControl1Item5: TdxLayoutItem; eTlfTrabajo: TcxDBTextEdit; dxLayoutControl1Item6: TdxLayoutItem; ePersonaContacto: TcxDBTextEdit; dxLayoutControl1Group3: TdxLayoutGroup; dxLayoutControl1Group1: TdxLayoutGroup; dxLayoutControl1Group5: TdxLayoutGroup; dxLayoutControl1Group4: TdxLayoutGroup; procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); protected // FAlmacenesController : IAlmacenesController; // FAlmacenes: IBizAlmacen; FPedido : IBizContratoCliente; FController : IContratosClienteController; function GetContratoCliente: IBizContratoCliente; procedure SetContratoCliente(const Value: IBizContratoCliente); procedure RefrescarDireccion; public property ContratoCliente: IBizContratoCliente read GetContratoCliente write SetContratoCliente; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation {$R *.dfm} uses uEditorRegistryUtils; procedure TfrViewDireccionEntregaContratoCliente.cbListaPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin { if Assigned(FPedido) and (FPedido.ID_ALMACEN <> FAlmacenes.ID) then begin FPedido.Edit; FPedido.CALLE := FAlmacenes.CALLE; FPedido.POBLACION := FAlmacenes.POBLACION; FPedido.POBLACION := FAlmacenes.POBLACION; FPedido.PROVINCIA := FAlmacenes.PROVINCIA; FPedido.CODIGO_POSTAL := FAlmacenes.CODIGO_POSTAL; FPedido.PERSONA_CONTACTO := FAlmacenes.PERSONA_CONTACTO; FPedido.TELEFONO := FAlmacenes.TELEFONO; RefrescarDireccion; end;} end; constructor TfrViewDireccionEntregaContratoCliente.Create(AOwner: TComponent); begin inherited; FPedido := NIL; { FController := TContratosClienteController.Create; FAlmacenesController := TAlmacenesController.Create; FAlmacenes := FAlmacenesController.BuscarTodos; FAlmacenes.DataTable.Active := True; dsAlmacenes.DataTable := FAlmacenes.DataTable;} end; destructor TfrViewDireccionEntregaContratoCliente.Destroy; begin { cbLista.Properties.OnValidate := Nil; FAlmacenesController := Nil; FAlmacenes := Nil; FController := NIL; } FPedido := NIL; inherited; end; function TfrViewDireccionEntregaContratoCliente.GetContratoCliente: IBizContratoCliente; begin Result := FPedido; end; procedure TfrViewDireccionEntregaContratoCliente.RefrescarDireccion; begin { memDireccion.Lines.Clear; if Assigned(FPedido) then begin memDireccion.Lines.Add(FPedido.CALLE); memDireccion.Lines.Add(FPedido.CODIGO_POSTAL + ' ' + FPedido.POBLACION); memDireccion.Lines.Add(FPedido.PROVINCIA); end;} end; procedure TfrViewDireccionEntregaContratoCliente.SetContratoCliente( const Value: IBizContratoCliente); begin FPedido := Value; if Assigned(FPedido) then dsPedido.DataTable := FPedido.DataTable else dsPedido.DataTable := NIL; { cbLista.Properties.OnValidate := NIL; dsPedido.DataTable := nil; FPedido := Value; if not FPedido.EsNuevo then RefrescarDireccion; // Esto al final para que no salten los eventos del cxComboBox dsPedido.DataTable := FPedido.DataTable; cbLista.Properties.OnValidate := cbListaPropertiesValidate;} end; end.