unit uViewObraReserva; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, uBizPedidosProveedor, cxGraphics, dxLayoutControl, cxMemo, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, ActnList, uBizAlmacenes, uAlmacenesController, uPedidosProveedorController, Buttons, uDAInterfaces, uBizObras, uObrasController, cxButtonEdit, cxDBEdit, ExtCtrls, ImgList, PngImageList; type IViewDireccionEntregaPedidoProv = interface(IViewBase) ['{7467855C-066F-4A60-B88F-2837C8050B1E}'] function GetPedidoProveedor: IBizPedidoProveedor; procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; end; TfrViewObraReserva = class(TfrViewBase, IViewDireccionEntregaPedidoProv) dxLayoutControl1: TdxLayoutControl; dxLayoutGroup1: TdxLayoutGroup; dsPedido: TDADataSource; dxLayoutControl1Item6: TdxLayoutItem; cbListaObrasReserva: TcxDBLookupComboBox; dsObras: TDADataSource; Label1: TLabel; dxLayoutControl1Item1: TdxLayoutItem; dxLayoutControl1Item2: TdxLayoutItem; Button3: TBitBtn; dxLayoutControl1Group1: TdxLayoutGroup; PngImageList: TPngImageList; ActionList1: TActionList; actVerObra: TAction; procedure actVerObraExecute(Sender: TObject); procedure actVerObraUpdate(Sender: TObject); procedure cbListaObrasReservaPropertiesEditValueChanged(Sender: TObject); protected FObrasController : IObrasController; FObras: IBizObra; FPedido : IBizPedidoProveedor; FController : IPedidosProveedorController; function GetPedidoProveedor: IBizPedidoProveedor; procedure SetPedidoProveedor(const Value: IBizPedidoProveedor); public property PedidoProveedor: IBizPedidoProveedor read GetPedidoProveedor write SetPedidoProveedor; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation {$R *.dfm} uses uEditorRegistryUtils, uCustomView, uEditorElegirPersonaContactoPedido, uStringsUtils; procedure TfrViewObraReserva.actVerObraExecute(Sender: TObject); begin inherited; FObrasController.Ver(FObras); end; procedure TfrViewObraReserva.actVerObraUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := Assigned(FObras) and (not EsCadenaVacia(cbListaObrasReserva.Text)); end; procedure TfrViewObraReserva.cbListaObrasReservaPropertiesEditValueChanged( Sender: TObject); begin inherited; { if Assigned(FPedido) and (FPedido.Active) then begin if not (FPedido.ID_OBRAIsNull) and (FPedido.NOMBRE_OBRA <> cbListaObrasReserva.Text) then begin FPedido.Edit; FPedido.NOMBRE_OBRA := cbListaObrasReserva.Text; end; end;} end; constructor TfrViewObraReserva.Create(AOwner: TComponent); begin inherited; FController := TPedidosProveedorController.Create; FObrasController := TObrasController.Create; FObras := FObrasController.BuscarTodos; FObras.DataTable.Active := True; dsObras.DataTable := FObras.DataTable; end; destructor TfrViewObraReserva.Destroy; begin cbListaObrasReserva.Properties.OnEditValueChanged := NIL; FObrasController := Nil; FObras := Nil; FController := NIL; inherited; end; function TfrViewObraReserva.GetPedidoProveedor: IBizPedidoProveedor; begin Result := FPedido; end; procedure TfrViewObraReserva.SetPedidoProveedor( const Value: IBizPedidoProveedor); begin dsPedido.DataTable := nil; cbListaObrasReserva.Properties.OnEditValueChanged := NIL; FPedido := Value; dsPedido.DataTable := FPedido.DataTable; cbListaObrasReserva.Properties.OnEditValueChanged := cbListaObrasReservaPropertiesEditValueChanged; end; end.