unit uEditorRemesasProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, JvNavigationPane, uViewRemesasProveedor, uBizRemesasProveedor, 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, uIEditorRemesasProveedor, uEditorGridBase, JvComponentBase, uViewGridBase, uRemesasProveedorController, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; type TfEditorRemesasProveedor = class(TfEditorGridBase, IEditorRemesasProveedor) actVolcarDisco: TAction; TBXSeparatorItem17: TTBXSeparatorItem; N4: TMenuItem; Volcaradisco1: TMenuItem; TBXSubmenuItem2: TTBXSubmenuItem; TBXItem38: TTBXItem; JsListaRemesasNoEliminadas: TJSDialog; JsPrevisualizarDialog: TJSDialog; JsImprimirDialog: TJSDialog; procedure FormShow(Sender: TObject); procedure actVolcarDiscoExecute(Sender: TObject); procedure actVolcarDiscoUpdate(Sender: TObject); private FRemesasProveedor: IBizRemesaProveedor; FController : IRemesasProveedorController; protected function GetRemesasProveedor: IBizRemesaProveedor; procedure SetRemesasProveedor(const Value: IBizRemesaProveedor); function GetController : IRemesasProveedorController; virtual; procedure SetController (const Value : IRemesasProveedorController); 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 RemesasProveedor: IBizRemesaProveedor read GetRemesasProveedor write SetRemesasProveedor; property Controller : IRemesasProveedorController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation uses uCustomEditor, uDataModuleRemesasProveedor, uDataModuleUsuarios, uGridUtils, uDBSelectionListUtils, uFactuGES_App, uEditorDBBase, uBizFamilias, uFamiliasController, // uBancaElectronicaController, cxGrid, cxGridCustomTableView; //, uListaRemesasProveedor; {$R *.dfm} { ****************************** TfEditorRemesasProveedor ******************************* } procedure TfEditorRemesasProveedor.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(RemesasProveedor) then raise Exception.Create('No hay ningún RemesaProveedor asignado'); RemesasProveedor.DataTable.Active := True; ViewGrid.GotoFirst; //Para que coja el ancho automático actAnchoAuto.Execute; end; function TfEditorRemesasProveedor.GetRemesasProveedor: IBizRemesaProveedor; begin Result := FRemesasProveedor; end; procedure TfEditorRemesasProveedor.ImprimirInterno; var Respuesta : Integer; ARemesasProveedor: IBizRemesaProveedor; AllItems: Boolean; begin ARemesasProveedor := Nil; AllItems := False; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); //Si esta agrupado solo podré imprimir la lista de elementos visibles if not ViewGrid.esSeleccionCeldaDatos then inherited else begin Respuesta := JsImprimirDialog.Execute; if Respuesta <> IDCANCEL then begin case JsImprimirDialog.CustomButtonResult of 200 : begin // Lista de elementos visibles inherited; end; 100 : begin // Elemento Seleccionado if AllItems then begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasProveedor as ISeleccionable).SelectedRecords); ARemesasProveedor := (Controller as IRemesasProveedorController).ExtraerSeleccionados(RemesasProveedor) as IBizRemesaProveedor; end else ARemesasProveedor := RemesasProveedor; if Assigned(ARemesasProveedor) then FController.Print(ARemesasProveedor, AllItems); end; end; end; end; end; function TfEditorRemesasProveedor.GetController: IRemesasProveedorController; begin Result := FController; end; procedure TfEditorRemesasProveedor.ModificarInterno; begin inherited; FController.Ver(RemesasProveedor); end; procedure TfEditorRemesasProveedor.NuevoInterno; begin inherited; FController.Anadir(RemesasProveedor); FController.Ver(RemesasProveedor); end; procedure TfEditorRemesasProveedor.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de remesas de pago - ' + AppFactuGES.EmpresaActiva.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorRemesasProveedor.PrevisualizarInterno; var Respuesta : Integer; ARemesasProveedor: IBizRemesaProveedor; AllItems: Boolean; begin ARemesasProveedor := Nil; AllItems := False; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); //Si esta agrupado solo podré imprimir la lista de elementos visibles if not ViewGrid.esSeleccionCeldaDatos then inherited else begin Respuesta := JsPrevisualizarDialog.Execute; if Respuesta <> IDCANCEL then begin case JsPrevisualizarDialog.CustomButtonResult of 200 : begin // Lista de elementos visibles inherited; end; 100 : begin // Elemento Seleccionado if AllItems then begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasProveedor as ISeleccionable).SelectedRecords); ARemesasProveedor := (Controller as IRemesasProveedorController).ExtraerSeleccionados(RemesasProveedor) as IBizRemesaProveedor; end else ARemesasProveedor := RemesasProveedor; if Assigned(ARemesasProveedor) then FController.Preview(ARemesasProveedor, AllItems); end; end; end; end; end; procedure TfEditorRemesasProveedor.SetRemesasProveedor(const Value: IBizRemesaProveedor); begin FRemesasProveedor := Value; dsDataTable.DataTable := FRemesasProveedor.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewRemesasProveedor).RemesasProveedor := RemesasProveedor; end; procedure TfEditorRemesasProveedor.SetController(const Value: IRemesasProveedorController); begin FController := Value; end; destructor TfEditorRemesasProveedor.Destroy; begin FRemesasProveedor := NIL; FController := NIl; inherited; end; procedure TfEditorRemesasProveedor.EliminarInterno; var ARemesas: IBizRemesaProveedor; AllItems: Boolean; begin ARemesas := Nil; AllItems := False; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); if AllItems then begin if (Application.MessageBox('¿Desea borrar las remesas de proveedor seleccionadas?', 'Atención', MB_YESNO) = IDYES) then begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RemesasProveedor as ISeleccionable).SelectedRecords); ARemesas := (Controller as IRemesasProveedorController).ExtraerSeleccionados(RemesasProveedor) as IBizRemesaProveedor; end end else begin if (Application.MessageBox('¿Desea borrar esta remesa de pago?', 'Atención', MB_YESNO) = IDYES) then ARemesas := RemesasProveedor; end; if Assigned(ARemesas) then begin FController.Eliminar(ARemesas, AllItems); if AllItems then begin if (ARemesas.DataTable.RecordCount > 0) then begin with ARemesas.DataTable do begin First; while not EOF do begin JsListaRemesasNoEliminadas.Content.Add('Ref. remesa: ' + ARemesas.REFERENCIA + ' ' + ARemesas.NOMBRE); Next; end; end; JsListaRemesasNoEliminadas.Execute; end; end; end; actRefrescar.Execute; ViewGrid.GotoFirst; end; procedure TfEditorRemesasProveedor.actVolcarDiscoExecute(Sender: TObject); //var // ABancaController : IBancaElectronicaController; begin // inherited; // ABancaController := TBancaElectronicaController.Create; // try // ABancaController.GenerarFicheroNorma19(FRemesasProveedor.ID); // finally // ABancaController := NIL; // end; end; procedure TfEditorRemesasProveedor.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 TfEditorRemesasProveedor.AsignarVista; begin ViewGrid := CreateView(TfrViewRemesasProveedor) as IViewRemesasProveedor; end; constructor TfEditorRemesasProveedor.Create(AOwner: TComponent); begin inherited; AsignarVista; end; end.