unit uEditorRemesasCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, JvNavigationPane, uViewRemesasCliente, uBizRemesasCliente, ActnList, DBActns, uViewGrid, Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX, TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable, JvFormAutoSize, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, pngimage, uIEditorRemesasCliente, uEditorGridBase, JvComponentBase, uViewGridBase, uRemesasClienteController, JvExComCtrls, JvStatusBar; type TfEditorRemesasCliente = class(TfEditorGridBase, IEditorRemesasCliente) actVolcarDisco: TAction; TBXItem37: TTBXItem; TBXSeparatorItem17: TTBXSeparatorItem; N4: TMenuItem; Volcaradisco1: TMenuItem; TBXSubmenuItem2: TTBXSubmenuItem; TBXItem38: TTBXItem; procedure FormShow(Sender: TObject); procedure actVolcarDiscoExecute(Sender: TObject); procedure actVolcarDiscoUpdate(Sender: TObject); private FRemesasCliente: IBizRemesaCliente; FController : IRemesasClienteController; protected function GetRemesasCliente: IBizRemesaCliente; procedure SetRemesasCliente(const Value: IBizRemesaCliente); function GetController : IRemesasClienteController; virtual; procedure SetController (const Value : IRemesasClienteController); virtual; procedure NuevoInterno; override; procedure EliminarInterno; override; procedure ModificarInterno; override; procedure PrevisualizarInterno; override; procedure ImprimirInterno; override; //Si queremos crear otra vista para el editor heredado solo tendriamos que //sobreescribir este metodo procedure AsignarVista; virtual; public procedure PonerTitulos(const ATitulo: string = ''); override; property RemesasCliente: IBizRemesaCliente read GetRemesasCliente write SetRemesasCliente; property Controller : IRemesasClienteController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation uses uCustomEditor, uDataModuleRemesasCliente, uDataModuleUsuarios, //uEditorRemesaCliente, uEditorDBBase, uBizFamilias, uFamiliasController, uBancaElectronicaController, cxGrid, cxGridCustomTableView; //, uListaRemesasCliente; {$R *.dfm} { ****************************** TfEditorRemesasCliente ******************************* } procedure TfEditorRemesasCliente.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(RemesasCliente) then raise Exception.Create('No hay ningún RemesaCliente asignado'); RemesasCliente.DataTable.Active := True; ViewGrid.GotoFirst; end; function TfEditorRemesasCliente.GetRemesasCliente: IBizRemesaCliente; begin Result := FRemesasCliente; end; procedure TfEditorRemesasCliente.ImprimirInterno; begin inherited; FController.Print(RemesasCliente); end; function TfEditorRemesasCliente.GetController: IRemesasClienteController; begin Result := FController; end; procedure TfEditorRemesasCliente.ModificarInterno; begin inherited; FController.Ver(RemesasCliente); end; procedure TfEditorRemesasCliente.NuevoInterno; begin inherited; FController.Anadir(RemesasCliente); FController.Ver(RemesasCliente); end; procedure TfEditorRemesasCliente.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de remesas de cobro - ' + dmUsuarios.EmpresaActual.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorRemesasCliente.PrevisualizarInterno; begin inherited; FController.Preview(RemesasCliente); end; procedure TfEditorRemesasCliente.SetRemesasCliente(const Value: IBizRemesaCliente); begin FRemesasCliente := Value; dsDataTable.DataTable := FRemesasCliente.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewRemesasCliente).RemesasCliente := RemesasCliente; end; procedure TfEditorRemesasCliente.SetController(const Value: IRemesasClienteController); begin FController := Value; end; destructor TfEditorRemesasCliente.Destroy; begin FRemesasCliente := NIL; FController := NIl; inherited; end; procedure TfEditorRemesasCliente.EliminarInterno; begin if (Application.MessageBox('¿Desea borrar esta remesa de cobro?', 'Atención', MB_YESNO) = IDYES) then begin inherited; //Para que en el caso de no poderse realizar la operación se refresquen //los datos y no nos permita eliminar un registro a la segunda if not FController.Eliminar(RemesasCliente) then actRefrescar.Execute; end; end; procedure TfEditorRemesasCliente.actVolcarDiscoExecute(Sender: TObject); var ABancaController : IBancaElectronicaController; begin inherited; ABancaController := TBancaElectronicaController.Create; try ABancaController.GenerarFicheroNorma19(FRemesasCliente.ID); finally ABancaController := NIL; end; end; procedure TfEditorRemesasCliente.actVolcarDiscoUpdate(Sender: TObject); begin inherited; if HayDatos and Assigned(ViewGrid) then (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) and not ViewGrid.IsEmpty else (Sender as TAction).Enabled := False; end; procedure TfEditorRemesasCliente.AsignarVista; begin ViewGrid := CreateView(TfrViewRemesasCliente) as IViewRemesasCliente; end; constructor TfEditorRemesasCliente.Create(AOwner: TComponent); begin inherited; AsignarVista; end; end.