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; ActionList1: TActionList; actLista: TAction; actOtro: TAction; 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 actListaExecute(Sender: TObject); procedure actOtroExecute(Sender: TObject); procedure cbListaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure memDireccionDblClick(Sender: TObject); procedure bModificarClick(Sender: TObject); 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.actListaExecute(Sender: TObject); begin { cbLista.Enabled := True; memDireccion.Enabled := False;} end; procedure TfrViewDireccionEntregaPedidoCliente.actOtroExecute(Sender: TObject); begin { cbLista.Text := ''; cbLista.Enabled := False; memDireccion.Enabled := True; if Assigned(FPedido) then begin FController.VerDireccionEntrega(FPedido); if (FPedido.ID_ALMACEN > 0) then begin FPedido.Edit; FPedido.DataTable.FieldByName('ID_ALMACEN').AsVariant := Null; end; end; RefrescarDireccion;} end; procedure TfrViewDireccionEntregaPedidoCliente.bModificarClick(Sender: TObject); begin inherited; actOtro.Execute; end; 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.memDireccionDblClick( Sender: TObject); begin inherited; actOtro.Execute; 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.