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