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); procedure OnListaAnosChange(Sender: TObject; const Text: string); procedure FormShow(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, uDBSelectionList; {$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; procedure TfEditorPedidosProveedor.OnListaAnosChange(Sender: TObject; const Text: string); var aAux : ISelectedRowList; begin dmPedidos.FiltrarAno(PedidosProveedor, WhereDataTable, Text); if PedidosProveedor.DataTable.Active then actRefrescar.Execute; // Quitar las selecciones que hubiera anteriormente porque ya no valen if Supports(PedidosProveedor, ISelectedRowList, aAux) then if (aAux.SelectedRows.Count > 0) then aAux.SelectedRows.Clear; end; procedure TfEditorPedidosProveedor.FormShow(Sender: TObject); begin ListaAnos := dmPedidos.DarListaAnosPedidos; cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED inherited; end; initialization RegisterEditor(IBizPedidosProveedor, ShowEditorPedidosProveedor, etItems); RegisterEditor(IBizPedidosProveedor, ShowSelectEditorPedidosProveedor, etSelectItems); finalization end.