unit uEditorFacturasProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorGrid, Menus, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uViewGrid, pngimage, uBizFacturasProveedor, JvComponentBase; type IEditorFacturasProveedor = interface(IEditorGrid) ['{B055B7F3-5A99-4BAC-8D70-A954A6BC288D}'] function GetFacturasProveedor: IBizFacturasProveedor; procedure SetFacturasProveedor(const Value: IBizFacturasProveedor); property FacturasProveedor: IBizFacturasProveedor read GetFacturasProveedor write SetFacturasProveedor; end; TfEditorFacturasProveedor = class(TfEditorGrid, IEditorFacturasProveedor) procedure actEliminarExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actNuevoExecute(Sender: TObject); procedure FormShow(Sender: TObject); procedure OnListaAnosChange(Sender: TObject; const Text: string); private FFacturasProveedor: IBizFacturasProveedor; protected function GetFacturasProveedor: IBizFacturasProveedor; procedure SetFacturasProveedor(const Value: IBizFacturasProveedor); procedure SetViewGrid(const Value: IViewGrid); override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property FacturasProveedor: IBizFacturasProveedor read GetFacturasProveedor write SetFacturasProveedor; end; var fEditorFacturasProveedor: TfEditorFacturasProveedor; implementation uses uDataModuleFacturasProveedor, uViewFacturasProveedor, uEditorUtils, uDBSelectionList; {$R *.dfm} function ShowEditorFacturasProveedor (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorFacturasProveedor; begin AEditor := TfEditorFacturasProveedor.Create(Application); try AEditor.FacturasProveedor := (ABizObject as IBizFacturasProveedor); Result := AEditor.ShowModal; finally AEditor.Release; end; end; function ShowSelectEditorFacturasProveedor (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorFacturasProveedor; begin AEditor := TfEditorFacturasProveedor.Create(Application); try AEditor.FacturasProveedor := (ABizObject as IBizFacturasProveedor); // AEditor.SelectionBarVisible := True; Result := AEditor.ShowModal; finally AEditor.Release; end; end; { *************************** TfEditorFacturasProveedor *************************** } constructor TfEditorFacturasProveedor.Create(AOwner: TComponent); begin inherited; ViewGrid := CreateView(TfrViewFacturasProveedor) as IViewFacturasProveedor; end; destructor TfEditorFacturasProveedor.Destroy; begin FFacturasProveedor := NIL; inherited; end; procedure TfEditorFacturasProveedor.actEliminarExecute(Sender: TObject); begin if (Application.MessageBox('¿Desea borrar esta factura de proveedor?', 'Atención', MB_YESNO) = IDYES) then begin inherited; ViewGrid.RefreshGrid; end; end; procedure TfEditorFacturasProveedor.actModificarExecute(Sender: TObject); begin inherited; FacturasProveedor.Show; ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; procedure TfEditorFacturasProveedor.actNuevoExecute(Sender: TObject); begin inherited; FacturasProveedor.Insert; FacturasProveedor.Show; ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; function TfEditorFacturasProveedor.GetFacturasProveedor: IBizFacturasProveedor; begin Result := FFacturasProveedor; end; procedure TfEditorFacturasProveedor.SetFacturasProveedor(const Value: IBizFacturasProveedor); begin FFacturasProveedor := Value; dsDataTable.DataTable := FFacturasProveedor.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewFacturasProveedor).FacturasProveedor := FacturasProveedor; end; procedure TfEditorFacturasProveedor.SetViewGrid(const Value: IViewGrid); begin inherited; if Assigned(ViewGrid) and Assigned(FacturasProveedor) then (ViewGrid as IViewFacturasProveedor).FacturasProveedor := FFacturasProveedor; end; procedure TfEditorFacturasProveedor.FormShow(Sender: TObject); begin ListaAnos := dmFacturasProveedor.DarListaAnosFacturas; cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED inherited; end; procedure TfEditorFacturasProveedor.OnListaAnosChange(Sender: TObject; const Text: string); var aAux : ISelectedRowList; begin dmFacturasProveedor.FiltrarAno(FacturasProveedor, WhereDataTable, Text); if FacturasProveedor.DataTable.Active then actRefrescar.Execute; // Quitar las selecciones que hubiera anteriormente porque ya no valen if Supports(FacturasProveedor, ISelectedRowList, aAux) then if (aAux.SelectedRows.Count > 0) then aAux.SelectedRows.Clear; end; initialization RegisterEditor(IBizFacturasProveedor, ShowEditorFacturasProveedor, etItems); RegisterEditor(IBizFacturasProveedor, ShowSelectEditorFacturasProveedor, etSelectItems); finalization end.