unit uEditorPedidosProveedor; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, uCustomEditor, uEditorGrid, uBizPedidosProveedor, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, uViewPedidosProveedor, Menus, DB, uDADataTable, ComCtrls, uViewGrid, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, JvComponentBase; type IEditorPedidosProveedor = interface(IEditorGrid) ['{B7F914EC-3EB4-436F-98B9-6D3E4486C84F}'] function GetPedidosProveedor: IBizPedidosProveedor; procedure SetPedidosProveedor(const Value: IBizPedidosProveedor); property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write SetPedidosProveedor; end; TfEditorPedidosProveedor = class(TfEditorGrid, IEditorPedidosProveedor) frViewBarraSeleccion: TfrViewBarraSeleccion; procedure actEliminarExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actNuevoExecute(Sender: TObject); procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject); procedure frViewBarraSeleccionbCancelarClick(Sender: TObject); procedure actDuplicarExecute(Sender: TObject); private FPedidosProveedor: IBizPedidosProveedor; protected function GetPedidosProveedor: IBizPedidosProveedor; function GetSelectionBarVisible: Boolean; procedure SetPedidosProveedor(const Value: IBizPedidosProveedor); procedure SetSelectionBarVisible(const Value: Boolean); procedure SetViewGrid(const Value: IViewGrid); override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property PedidosProveedor: IBizPedidosProveedor read GetPedidosProveedor write SetPedidosProveedor; property SelectionBarVisible: Boolean read GetSelectionBarVisible write SetSelectionBarVisible; end; var fEditorPedidosProveedor : TfEditorPedidosProveedor; implementation uses uDataModulePedidosProveedor, uEditorUtils, uBizPresupuestosCliente, uDataModulePresupuestos; {$R *.DFM} function ShowEditorPedidosProveedor (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorPedidosProveedor; begin AEditor := TfEditorPedidosProveedor.Create(Application); try AEditor.PedidosProveedor := (ABizObject as IBizPedidosProveedor); Result := AEditor.ShowModal; finally AEditor.Release; end; end; function ShowSelectEditorPedidosProveedor (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorPedidosProveedor; begin AEditor := TfEditorPedidosProveedor.Create(Application); try AEditor.PedidosProveedor := (ABizObject as IBizPedidosProveedor); AEditor.SelectionBarVisible := True; Result := AEditor.ShowModal; finally AEditor.Release; end; end; { TfEditorPedidosProveedor } { ***************************** TfEditorPedidosProveedor ***************************** } constructor TfEditorPedidosProveedor.Create(AOwner: TComponent); begin inherited; ViewGrid := CreateView(TfrViewPedidosProveedor) as IViewPedidosProveedor; end; destructor TfEditorPedidosProveedor.Destroy; begin FPedidosProveedor := NIL; inherited; end; procedure TfEditorPedidosProveedor.actEliminarExecute(Sender: TObject); begin if (MessageDlg('¿Desea borrar este presupuesto?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then begin inherited; ViewGrid.RefreshGrid; end; end; procedure TfEditorPedidosProveedor.actModificarExecute(Sender: TObject); begin inherited; PedidosProveedor.Show; ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; procedure TfEditorPedidosProveedor.actNuevoExecute(Sender: TObject); begin inherited; PedidosProveedor.Insert; PedidosProveedor.Show; ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; procedure TfEditorPedidosProveedor.frViewBarraSeleccionactSeleccionarExecute( Sender: TObject); begin inherited; ViewGrid.SyncFocusedRecordsFromGrid; ModalResult := mrOK; end; procedure TfEditorPedidosProveedor.frViewBarraSeleccionbCancelarClick(Sender: TObject); begin inherited; frViewBarraSeleccion.actCancelarExecute(Sender); end; function TfEditorPedidosProveedor.GetPedidosProveedor: IBizPedidosProveedor; begin Result := FPedidosProveedor; end; function TfEditorPedidosProveedor.GetSelectionBarVisible: Boolean; begin Result := frViewBarraSeleccion.Visible end; procedure TfEditorPedidosProveedor.SetPedidosProveedor(const Value: IBizPedidosProveedor); begin FPedidosProveedor := Value; dsDataTable.DataTable := FPedidosProveedor.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewPedidosProveedor).PedidosProveedor := PedidosProveedor; end; procedure TfEditorPedidosProveedor.SetSelectionBarVisible(const Value: Boolean); begin frViewBarraSeleccion.Visible := True; ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute; end; procedure TfEditorPedidosProveedor.SetViewGrid(const Value: IViewGrid); begin inherited; if Assigned(ViewGrid) and Assigned(PedidosProveedor) then (ViewGrid as IViewPedidosProveedor).PedidosProveedor := PedidosProveedor; end; procedure TfEditorPedidosProveedor.actDuplicarExecute(Sender: TObject); var APedido: IBizPedidosProveedor; begin inherited; APedido := dmPedidos.GetItem(PedidosProveedor.CODIGO); PedidosProveedor.Insert; PedidosProveedor.CopyFrom(APedido); PedidosProveedor.DataTable.ApplyUpdates; ViewGrid.RefreshGrid; // ViewGrid.GotoFirst; end; initialization RegisterEditor(IBizPedidosProveedor, ShowEditorPedidosProveedor, etItems); RegisterEditor(IBizPedidosProveedor, ShowSelectEditorPedidosProveedor, etSelectItems); finalization end.