git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@102 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
221 lines
5.9 KiB
ObjectPascal
221 lines
5.9 KiB
ObjectPascal
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.
|