unit uViewDireccionEntregaPedidoCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, uBizPedidosCliente, cxGraphics, dxLayoutControl, cxMemo, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, ActnList, uPedidosClienteController, Buttons, cxDBEdit; type IViewDireccionEntregaPedidoCliente = interface(IViewBase) ['{7467855C-066F-4A60-B88F-2837C8050B1E}'] function GetPedidoCliente: IBizPedidoCliente; procedure SetPedidoCliente(const Value: IBizPedidoCliente); property PedidoCliente: IBizPedidoCliente read GetPedidoCliente write SetPedidoCliente; end; TfrViewDireccionEntregaPedidoCliente = class(TfrViewBase, IViewDireccionEntregaPedidoCliente) 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 : IBizPedidoCliente; FController : IPedidosClienteController; function GetPedidoCliente: IBizPedidoCliente; procedure SetPedidoCliente(const Value: IBizPedidoCliente); procedure RefrescarDireccion; public property PedidoCliente: IBizPedidoCliente read GetPedidoCliente write SetPedidoCliente; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation {$R *.dfm} uses uEditorRegistryUtils; procedure TfrViewDireccionEntregaPedidoCliente.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 TfrViewDireccionEntregaPedidoCliente.Create(AOwner: TComponent); begin inherited; FPedido := NIL; { FController := TPedidosClienteController.Create; FAlmacenesController := TAlmacenesController.Create; FAlmacenes := FAlmacenesController.BuscarTodos; FAlmacenes.DataTable.Active := True; dsAlmacenes.DataTable := FAlmacenes.DataTable;} end; destructor TfrViewDireccionEntregaPedidoCliente.Destroy; begin { cbLista.Properties.OnValidate := Nil; FAlmacenesController := Nil; FAlmacenes := Nil; FController := NIL; } FPedido := NIL; inherited; end; function TfrViewDireccionEntregaPedidoCliente.GetPedidoCliente: IBizPedidoCliente; begin Result := FPedido; end; procedure TfrViewDireccionEntregaPedidoCliente.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 TfrViewDireccionEntregaPedidoCliente.SetPedidoCliente( const Value: IBizPedidoCliente); 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.