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/uViewInformes.pas

258 lines
7.2 KiB
ObjectPascal

unit uViewInformes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, cxGraphics, cxCustomData, cxStyles, cxTL,
cxImageComboBox, cxMaskEdit, cxTextEdit, cxInplaceContainer, cxDBTL,
cxControls, cxTLData, Menus, uBizInformes, DB, uDADataTable,
ImgList, PngImageList,
//EasyListview,
// MPCommonUtilities,
// MPCommonObjects,
pngimage, JSDialog, uDAInterfaces, ComCtrls, cxContainer, cxListView,
JvExComCtrls, JvListView;
type
IViewInformes = interface(IViewBase)
['{D991FCEC-08DB-4F77-BD57-FA04B3C88788}']
function GetDblClick: TNotifyEvent;
procedure SetDblClick(const Value: TNotifyEvent);
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
function GetPopupMenu: TPopupMenu;
procedure SetPopupMenu(const Value: TPopupMenu);
property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
function GetInformes: IBizInforme;
procedure SetInformes(const Value: IBizInforme);
property Informes: IBizInforme read GetInformes write SetInformes;
procedure Refresh;
end;
TfrViewInformes = class(TfrViewBase, IViewInformes)
ReportImages: TPngImageList;
dsDataTable: TDADataSource;
JsNuevoDialog: TJSDialog;
EasyListview: TcxListView;
procedure EasyListviewSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
procedure EasyListviewDblClick(Sender: TObject);
// procedure EasyListviewItemDblClick(Sender: TCustomEasyListview;
// Button: TEasyMouseButton; MousePos: TPoint;
// HitInfo: TEasyHitInfoItem);
{ procedure EasyListviewItemContextMenu(Sender: TCustomEasyListview;
HitInfo: TEasyHitInfoItem; WindowPoint: TPoint; var Menu: TPopupMenu;
var Handled: Boolean);
procedure EasyListviewItemSelectionChanged(Sender: TCustomEasyListview;
Item: TEasyItem);
procedure EasyListviewItemDblClick(Sender: TCustomEasyListview;
Button: TCommonMouseButton; MousePos: TPoint; HitInfo: TEasyHitInfoItem);
}
protected
FInformes : IBizInforme;
FOnDblClick: TNotifyEvent;
FPopupMenu: TPopupMenu;
function GetDblClick: TNotifyEvent; virtual;
procedure SetDblClick(const Value: TNotifyEvent); virtual;
function GetPopupMenu: TPopupMenu; virtual;
procedure SetPopupMenu(const Value: TPopupMenu); virtual;
function GetInformes: IBizInforme; virtual;
procedure SetInformes(const Value: IBizInforme); virtual;
public
procedure Refresh; override;
property Informes: IBizInforme read GetInformes write SetInformes;
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
end;
implementation
{$R *.dfm}
{ TfrViewInformes }
function TfrViewInformes.GetInformes: IBizInforme;
begin
Result := FInformes;
end;
procedure TfrViewInformes.EasyListviewDblClick(Sender: TObject);
begin
inherited;
if Assigned(FOnDblClick) then
FOnDblClick(Self);
end;
procedure TfrViewInformes.EasyListviewSelectItem(Sender: TObject;
Item: TListItem; Selected: Boolean);
begin
inherited;
if Selected then
begin
//showmessage(Item.Caption);
FInformes.First;
FInformes.Locate('ID', Item.Indent, []);
end;
end;
function TfrViewInformes.GetDblClick: TNotifyEvent;
begin
Result := FOnDblClick;
end;
function TfrViewInformes.GetPopupMenu: TPopupMenu;
begin
Result := FPopupMenu;
end;
procedure TfrViewInformes.Refresh;
var
// Group: TEasyGroup;
// GroupModificable: TEasyGroup;
AItem : TListItem;
i: Integer;
IDSelected : integer;
CategoriaAux : String;
Opcion: TJsCustomButtonItem;
begin
inherited;
if not Assigned(FInformes) then
Exit;
// EasyListview.BeginUpdate; // BeginUpdate(False);
try
IDSelected := 0;
if EasyListview.Items.Count > 0 then
begin
for i := 0 to EasyListview.Items.Count - 1 do
if EasyListview.Items[i].Selected then
IDSelected := EasyListview.Items[i].Indent; // Columna ID
EasyListview.Items.Clear;
end;
// Group := EasyListview.Groups.Add;
// Group.Caption := 'Controles generales';
// Group.Bold := True;
// GroupModificable := EasyListview.Groups.Add;
// GroupModificable.Caption := 'Controles personalizados';
// GroupModificable.Bold := True;
with FInformes do
begin
JsNuevoDialog.CustomButtons.Clear;
FInformes.First;
for i := 0 to (FInformes.RecordCount - 1) do
begin
{ if CategoriaAux <> FInformes.CATEGORIA then
begin
CategoriaAux := FInformes.CATEGORIA;
// Group := EasyListview.Groups.Add;
// Group.Caption := FInformes.CATEGORIA;
// Group.Bold := True;
Opcion := JsNuevoDialog.CustomButtons.Add;
// Opcion.Caption := Group.Caption;
Opcion.Info.Add(FInformes.CONTROLLER);
end;
// if EsModificable then
}
AItem := EasyListview.Items.Add;
AItem.Caption := NOMBRE;
AItem.Indent := ID;
// else
// AItem := GroupNoModificable.Items.Add(NIL);
{ AItem.ImageIndex := ICONO;
AItem.Captions[0] := NOMBRE;
AItem.Captions[1] := DESCRIPCION;
AItem.Captions[3] := IntToStr(ID);
AItem.Captions[4] := MODIFICABLE;
AItem.DetailCount := 2;
AItem.Details[0] := 0; // Columna NOMBRE;
AItem.Details[1] := 1; // Columna DESCRIPCION;
AItem.Selected := (IDSelected = AItem.Captions[3]);
}
FInformes.Next;
end;
end;
finally
// EasyListview.Sort.SortAll;
// EasyListview.EndUpdate;
if (IDSelected = 0) and (EasyListview.Items.Count > 0) then
EasyListview.Items[0].Selected := True;
for i := 0 to EasyListview.Items.Count - 1 do
if EasyListview.Items[i].Selected then
begin
FInformes.First;
FInformes.Locate('ID', EasyListview.Items[i].Indent, []);
Break;
end;
// EasyListview.ShowGroupMargins := True;
end
end;
procedure TfrViewInformes.SetInformes(const Value: IBizInforme);
begin
FInformes := Value;
dsDataTable.DataTable := Value.DataTable;
end;
procedure TfrViewInformes.SetDblClick(const Value: TNotifyEvent);
begin
FOnDblClick := Value;
end;
procedure TfrViewInformes.SetPopupMenu(const Value: TPopupMenu);
begin
FPopupMenu := Value;
end;
{
procedure TfrViewInformes.EasyListviewItemContextMenu(
Sender: TCustomEasyListview; HitInfo: TEasyHitInfoItem;
WindowPoint: TPoint; var Menu: TPopupMenu; var Handled: Boolean);
begin
inherited;
if Assigned(FPopupMenu) then
Menu := FPopupMenu;
end;
procedure TfrViewInformes.EasyListviewItemDblClick(Sender: TCustomEasyListview;
Button: TCommonMouseButton; MousePos: TPoint; HitInfo: TEasyHitInfoItem);
begin
inherited;
if Assigned(FOnDblClick) then
FOnDblClick(Self);
end;
procedure TfrViewInformes.EasyListviewItemSelectionChanged(
Sender: TCustomEasyListview; Item: TEasyItem);
begin
inherited;
if not Item.Destroying then
begin
FInformes.First;
FInformes.Locate('ID', StrToInt(Item.Captions[3]), []);
end;
end;
}
end.