This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES2/Source/Modulos/Informes base/Views/uEditorInformes.pas

221 lines
5.9 KiB
ObjectPascal
Raw Blame History

unit uEditorInformes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBBase, Menus, DB, uDADataTable, JvAppStorage,
JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList,
PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems,
TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent,
JvNavigationPane, pngimage, uBizInformes, uEditorBase,
uViewInformes, JvExComCtrls, JvStatusBar, uIEditorInformes, uInformesController,
uCustomView, uViewBase, JSDialog, uDAInterfaces;
type
TfEditorInformes = class(TfEditorDBBase, IEditorInformes)
ViewPopupMenu: TPopupMenu;
Modificar1: TMenuItem;
Eliminar1: TMenuItem;
N1: TMenuItem;
Nuevo1: TMenuItem;
pngImageNuevo: TPngImageList;
actPropiedades: TAction;
TBXSeparatorItem14: TTBXSeparatorItem;
TBXItem7: TTBXItem;
N2: TMenuItem;
Propiedades1: TMenuItem;
frViewInformes1: TfrViewInformes;
procedure actModificarExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure actPropiedadesExecute(Sender: TObject);
procedure actPropiedadesUpdate(Sender: TObject);
private
procedure ComprobarPrivilegios;
protected
FInformes : IBizInforme;
FController : IInformesController;
FViewInformes : IViewInformes;
function GetInformes: IBizInforme;
procedure SetInformes(const Value: IBizInforme);
function GetController: IInformesController;
procedure SetController(const Value: IInformesController);
procedure NuevoInterno; override;
procedure EliminarInterno; override;
procedure RefrescarInterno; override;
public
property Informes: IBizInforme read GetInformes write SetInformes;
property Controller: IInformesController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
{ TfEditorInformes }
uses uDataModuleUsuarios, uFactuGES_App;
function TfEditorInformes.GetController: IInformesController;
begin
Result := FController;
end;
function TfEditorInformes.GetInformes: IBizInforme;
begin
Result := FInformes;
end;
procedure TfEditorInformes.NuevoInterno;
var
Respuesta: integer;
Opcion: integer;
i: integer;
begin
try
Respuesta := frViewInformes1.JsNuevoDialog.Execute;
if Respuesta <> IDCANCEL then
begin
frViewInformes1.JsNuevoDialog.CustomButtonResult;
Opcion := frViewInformes1.JsNuevoDialog.CustomButtonResult;
for i := 0 to frViewInformes1.JsNuevoDialog.CustomButtons.Count - 1 do
if (frViewInformes1.JsNuevoDialog.CustomButtons.Items[i].Value = Opcion) then
break;
FController.Nuevo(frViewInformes1.JsNuevoDialog.CustomButtons.Items[i].Info.Strings[0], FInformes);
// showmessage('Opcion seleccionada: ' + frViewInformes1.JsNuevoDialog.CustomButtons.Items[i].Info.Strings[0]);
end;
finally
FViewInformes.Refresh;
end;
end;
procedure TfEditorInformes.RefrescarInterno;
begin
inherited;
if Assigned(FViewInformes) then
FViewInformes.Refresh;
end;
procedure TfEditorInformes.SetController(const Value: IInformesController);
begin
FController := Value;
end;
procedure TfEditorInformes.SetInformes(const Value: IBizInforme);
begin
FInformes := Value;
dsDataTable.DataTable := FInformes.DataTable;
ComprobarPrivilegios;
if Assigned(FViewInformes) then
begin
FViewInformes.Informes := FInformes;
end;
end;
procedure TfEditorInformes.actModificarExecute(Sender: TObject);
begin
inherited;
try
FController.Ver(FInformes);
finally
FViewInformes.Refresh;
end;
end;
procedure TfEditorInformes.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(FInformes) then
raise Exception.Create('No hay ninguna informe asociado');
if not Assigned(FViewInformes) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(FController) then
raise Exception.Create('No hay ning<6E>n Controller asignado');
FViewInformes.OnDblClick := actModificar.OnExecute;
FViewInformes.PopupMenu := ViewPopupMenu;
Informes.DataTable.Active := True;
FViewInformes.Refresh;
end;
destructor TfEditorInformes.Destroy;
begin
FViewInformes := NIL;
FController := NIL;
FInformes := NIL;
inherited;
end;
procedure TfEditorInformes.EliminarInterno;
begin
// if not FController.EsModificable then
// ShowMessage('Este Controller no se puede borrar')
if (Application.MessageBox('<27>Desea borrar este informe?', 'Atenci<63>n', MB_YESNO) = IDYES) then
begin
FController.Eliminar(FInformes);
FViewInformes.Refresh;
end;
end;
procedure TfEditorInformes.actPropiedadesExecute(Sender: TObject);
begin
inherited;
{
if Assigned(FController) then
try
FController.VerPropiedades;
actGuardar.Execute;
finally
FViewController.Refresh;
end;
}
end;
procedure TfEditorInformes.actPropiedadesUpdate(Sender: TObject);
begin
inherited;
{
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
and not (dsDataTable.DataTable.State = dsInsert)
else
(Sender as TAction).Enabled := False;
}
end;
procedure TfEditorInformes.ComprobarPrivilegios;
begin
if (AppFactuGES.UsuarioActivo.LOGIN <> 'admin') then
begin
actNuevo.Enabled := False;
actNuevo.Visible := False;
actEliminar.Enabled := False;
actEliminar.Visible := False;
actPropiedades.Enabled := False;
actPropiedades.Visible := False;
end;
end;
constructor TfEditorInformes.Create(AOwner: TComponent);
begin
inherited;
FViewInformes := frViewInformes1;
actModificar.ShortCut := ShortCut(VK_RETURN, []);
end;
end.