unit uEditorPedidoProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uBizPedidosProveedor, uViewPedidoProveedor, uCustomView, uViewBase, uViewContenido, StdCtrls, pngimage, AppEvnts, uViewDetallesFamilias, uViewDetallesNormales, uViewDetallesPedidosProveedor, uViewTotalPedido, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, uViewIncidencias, JvComponentBase; type IEditorPedidoProveedor = interface(IEditorDBItem) ['{A2784067-14B2-48AA-9696-B0CA420B4973}'] function GetPedidoProveedor: IBizPedidosProveedor; procedure SetPedidoProveedor(const Value: IBizPedidosProveedor); property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor write SetPedidoProveedor; end; TfEditorPedidoProveedor = class(TfEditorDBItem, IEditorPedidoProveedor) pagContenido: TTabSheet; frViewDetallesPedidosProveedor: TfrViewDetallesPedidosProveedor; frViewTotalPedido: TfrViewTotalPedido; pagInicidencias: TTabSheet; frViewPedidoProveedor1: TfrViewPedidoProveedor; frViewIncidencias: TfrViewIncidencias; procedure actEliminarExecute(Sender: TObject); procedure FormShow(Sender: TObject); override; procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange( Sender: TObject); private FPedidoProveedor: IBizPedidosProveedor; FViewPedidoProveedor: IViewPedidoProveedor; protected function GetPedidoProveedor: IBizPedidosProveedor; function GetViewPedidoProveedor: IViewPedidoProveedor; procedure SetPedidoProveedor(const Value: IBizPedidosProveedor); procedure SetViewPedidoProveedor(const Value: IViewPedidoProveedor); property ViewPedidoProveedor: IViewPedidoProveedor read GetViewPedidoProveedor write SetViewPedidoProveedor; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property PedidoProveedor: IBizPedidosProveedor read GetPedidoProveedor write SetPedidoProveedor; end; var fEditorPedidoProveedor: TfEditorPedidoProveedor; implementation uses uEditorUtils, uDataModulePedidosProveedor, uBizImportesDetalleBase, uDataModulePresupuestos, uBizPresupuestosCliente, uExceptions; {$R *.dfm} function ShowEditorPedidoProveedor (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorPedidoProveedor; begin AEditor := TfEditorPedidoProveedor.Create(Application); try AEditor.PedidoProveedor := (ABizObject as IBizPedidosProveedor); Result := AEditor.ShowModal; finally AEditor.Release; end; end; { TfEditorPedidoProveedor } { **************************** TfEditorPedidoProveedor **************************** } constructor TfEditorPedidoProveedor.Create(AOwner: TComponent); begin inherited; // ViewPedidoProveedor := CreateView(TfrViewPedidoProveedor) as IViewPedidoProveedor; pgPaginas.ActivePageIndex := 0; ViewPedidoProveedor := frViewPedidoProveedor1; end; destructor TfEditorPedidoProveedor.Destroy; begin FViewPedidoProveedor := NIL; FPedidoProveedor := NIL; inherited; end; procedure TfEditorPedidoProveedor.actEliminarExecute(Sender: TObject); begin if (Application.MessageBox('¿Desea borrar este pedido a proveedor?', 'Atención', MB_YESNO) = IDYES) then inherited; end; procedure TfEditorPedidoProveedor.FormShow(Sender: TObject); begin inherited; if not Assigned(FViewPedidoProveedor) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(PedidoProveedor) then raise Exception.Create('No hay ningún pedido asignado'); PedidoProveedor.DataTable.Active := True; // FViewPedidoProveedor.ShowEmbedded(pagGeneral); // FViewPedidoProveedor.SetFocus; end; function TfEditorPedidoProveedor.GetPedidoProveedor: IBizPedidosProveedor; begin Result := FPedidoProveedor; end; function TfEditorPedidoProveedor.GetViewPedidoProveedor: IViewPedidoProveedor; begin Result := FViewPedidoProveedor; end; procedure TfEditorPedidoProveedor.SetPedidoProveedor(const Value: IBizPedidosProveedor); begin FPedidoProveedor := Value; if Assigned(FPedidoProveedor) then begin dsDataTable.DataTable := FPedidoProveedor.DataTable; frViewTotalPedido.DADataSource.DataTable := FPedidoProveedor.DataTable; frViewIncidencias.DADataSource.DataTable := FPedidoProveedor.DataTable; frViewDetallesPedidosProveedor.DADataSource.DataTable := FPedidoProveedor.Detalles.DataTable; if Assigned(FViewPedidoProveedor) then FViewPedidoProveedor.PedidoProveedor := FPedidoProveedor; end; end; procedure TfEditorPedidoProveedor.SetViewPedidoProveedor(const Value: IViewPedidoProveedor); begin FViewPedidoProveedor := Value; if Assigned(FViewPedidoProveedor) and Assigned(PedidoProveedor) then FViewPedidoProveedor.PedidoProveedor := PedidoProveedor; end; procedure TfEditorPedidoProveedor.frViewDatosYSeleccionContactoedtlNombrePropertiesChange( Sender: TObject); begin inherited; if Length(frViewPedidoProveedor1.frViewDatosYSeleccionContacto.edtlNombre.Text) = 0 then JvNavPanelHeader.Caption := 'Nuevo pedido a proveedor' else JvNavPanelHeader.Caption := 'Pedido para ' + frViewPedidoProveedor1.frViewDatosYSeleccionContacto.edtlNombre.Text + ' (' + FPedidoProveedor.SITUACION + ')'; Caption := JvNavPanelHeader.Caption; end; initialization RegisterEditor(IBizPedidosProveedor, ShowEditorPedidoProveedor, etItem); finalization end.