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_FactuGES/Source/Modulos/Informes base/Views/uViewInformeBaseGrid.pas

285 lines
8.8 KiB
ObjectPascal
Raw Normal View History

{*******************************************************}
{ }
{ Administraci<63>n de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uViewInformeBaseGrid;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, ActnList, uDADataTable, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, dxPScxCommon, dxPScxGrid6Lnk,
dxPgsDlg;
type
IViewInformeBaseGrid = interface(IViewBase)
['{35BD610D-3BCF-4496-BA98-B86A7821CEFC}']
procedure ExpandirTodo;
procedure ContraerTodo;
procedure AjustarAncho;
procedure Preview;
procedure Print;
procedure PrintSetup;
procedure GotoFirst;
procedure GotoLast;
function GetColumnByCaption (const ACaption : String): TcxGridDBColumn;
function GetFocusedView : TcxGridDBTableView;
property FocusedView : TcxGridDBTableView read GetFocusedView;
function GetColumnCount: Integer;
function GetColumns(Index: Integer): TcxGridDBColumn;
property Columns[Index: Integer] : TcxGridDBColumn read GetColumns;
property ColumnCount : Integer read GetColumnCount;
function GetGroupedColumnCount: Integer;
function GetGroupedColumns(index: Integer): TcxGridColumn;
property GroupedColumns[Index: Integer] : TcxGridColumn read GetGroupedColumns;
property GroupedColumnCount : Integer read GetGroupedColumnCount;
function GetOnViewChanged : TNotifyEvent;
procedure SetOnViewChanged(const Value : TNotifyEvent);
property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged;
function GetViewProperties: String;
procedure SetViewProperties(const Value: String);
property ViewProperties: String read GetViewProperties write SetViewProperties;
function GetFilterValueList(index: Integer) : TStringList;
property FilterValueList[Index : Integer]: TStringList read GetFilterValueList;
function GetOnFilterChanged: TNotifyEvent;
procedure SetOnFilterChanged(const Value: TNotifyEvent);
property OnFilterChanged: TNotifyEvent read GetOnFilterChanged write SetOnFilterChanged;
end;
TfrViewInformeBaseGrid = class(TfrViewBase, IViewInformeBaseGrid)
dxPrintStyleManager1: TdxPrintStyleManager;
dxPrintStyleManager1Style1: TdxPSPrintStyle;
dxPageSetupDialog1: TdxPageSetupDialog;
dxPSEngineController1: TdxPSEngineController;
dxComponentPrinter: TdxComponentPrinter;
dxPrinterLinkcxGrid: TdxGridReportLink;
cxStyleRepositoryInforme: TcxStyleRepository;
cxStyleContentInforme: TcxStyle;
cxStyleFooterInforme: TcxStyle;
cxStyleGroupInforme: TcxStyle;
cxStyleHeaderInforme: TcxStyle;
cxStyleSelectionInforme: TcxStyle;
private
protected
FOnViewChanged : TNotifyEvent;
FOnFilterChanged : TNotifyEvent;
function GetColumnCount: Integer;
function GetColumns(Index: Integer): TcxGridDBColumn;
function GetGroupedColumnCount: Integer;
function GetGroupedColumns(Index: Integer): TcxGridColumn;
function GetFocusedView : TcxGridDBTableView; virtual; abstract;
function GetColumnByCaption (const ACaption : String): TcxGridDBColumn;
function GetOnViewChanged : TNotifyEvent; virtual;
procedure SetOnViewChanged(const Value : TNotifyEvent); virtual;
function GetOnFilterChanged: TNotifyEvent; virtual;
procedure SetOnFilterChanged(const Value: TNotifyEvent); virtual;
function GetViewProperties: String; virtual;
procedure SetViewProperties(const Value: String); virtual;
function GetFilterValueList(index: Integer) : TStringList; virtual;
procedure ActivarEventos; virtual;
procedure DesactivarEventos; virtual;
public
procedure Preview; virtual;
procedure Print; virtual;
procedure PrintSetup; virtual;
procedure GotoFirst; virtual;
procedure GotoLast; virtual;
procedure ExpandirTodo; virtual;
procedure ContraerTodo; virtual;
procedure AjustarAncho; virtual;
property FocusedView : TcxGridDBTableView read GetFocusedView;
property Columns[Index: Integer] : TcxGridDBColumn read GetColumns;
property ColumnCount : Integer read GetColumnCount;
property GroupedColumns[Index: Integer] : TcxGridColumn read GetGroupedColumns;
property GroupedColumnCount : Integer read GetGroupedColumnCount;
property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged;
property OnFilterChanged: TNotifyEvent read GetOnFilterChanged write SetOnFilterChanged;
property ViewProperties: String read GetViewProperties write SetViewProperties;
property FilterValueList[Index : Integer]: TStringList read GetFilterValueList;
constructor Create(AOwner: TComponent); override;
end;
implementation
{$R *.dfm}
{ TfrViewInformeBaseGrid }
procedure TfrViewInformeBaseGrid.ActivarEventos;
begin
//
end;
procedure TfrViewInformeBaseGrid.AjustarAncho;
begin
FocusedView.ApplyBestFit;
end;
procedure TfrViewInformeBaseGrid.ContraerTodo;
begin
FocusedView.ViewData.Collapse(True);
end;
constructor TfrViewInformeBaseGrid.Create(AOwner: TComponent);
begin
inherited;
FOnViewChanged := nil;
end;
procedure TfrViewInformeBaseGrid.DesactivarEventos;
begin
//
end;
procedure TfrViewInformeBaseGrid.ExpandirTodo;
begin
FocusedView.ViewData.Expand(True);
end;
function TfrViewInformeBaseGrid.GetColumnByCaption(
const ACaption: String): TcxGridDBColumn;
var
i : integer;
begin
Result := NIL;
for i := 0 to FocusedView.ColumnCount - 1 do
if FocusedView.Columns[i].Caption = ACaption then
begin
Result := FocusedView.Columns[i];
Break;
end;
end;
function TfrViewInformeBaseGrid.GetColumnCount: Integer;
begin
Result := FocusedView.ColumnCount;
end;
function TfrViewInformeBaseGrid.GetColumns(Index: Integer): TcxGridDBColumn;
begin
Result := FocusedView.Columns[Index];
end;
function TfrViewInformeBaseGrid.GetFilterValueList(
index: Integer): TStringList;
var
AValueList : TcxDataFilterValueList;
i : Integer;
begin
Result := TStringList.Create;
AValueList := TcxDataFilterValueList.Create(FocusedView.DataController.Filter);
try
AValueList.Load(Columns[Index].Index);
for i := 0 to AValueList.Count - 1 do
Result.Add(AValueList[i].DisplayText);
finally
FreeAndNil(AValueList);
end;
end;
function TfrViewInformeBaseGrid.GetGroupedColumnCount: Integer;
begin
Result := FocusedView.GroupedColumnCount;
end;
function TfrViewInformeBaseGrid.GetGroupedColumns(
Index: Integer): TcxGridColumn;
begin
Result := FocusedView.GroupedColumns[Index];
end;
function TfrViewInformeBaseGrid.GetOnFilterChanged: TNotifyEvent;
begin
Result := FOnFilterChanged;
end;
function TfrViewInformeBaseGrid.GetOnViewChanged: TNotifyEvent;
begin
Result := FOnViewChanged;
end;
function TfrViewInformeBaseGrid.GetViewProperties: String;
var
AStream : TStringStream;
begin
DesactivarEventos;
AStream := TStringStream.Create('');
try
FocusedView.StoreToStream(AStream, [gsoUseFilter,gsoUseSummary], FocusedView.Name);
Result := AStream.DataString;
finally
AStream.Free;
ActivarEventos;
end;
end;
procedure TfrViewInformeBaseGrid.GotoFirst;
begin
FocusedView.DataController.GotoFirst;
end;
procedure TfrViewInformeBaseGrid.GotoLast;
begin
FocusedView.DataController.GotoLast;
end;
procedure TfrViewInformeBaseGrid.Preview;
begin
dxPrinterLinkcxGrid.Preview;
end;
procedure TfrViewInformeBaseGrid.Print;
begin
dxPrinterLinkcxGrid.Print(True, nil);
end;
procedure TfrViewInformeBaseGrid.PrintSetup;
begin
dxPrinterLinkcxGrid.PageSetup;
end;
procedure TfrViewInformeBaseGrid.SetOnFilterChanged(const Value: TNotifyEvent);
begin
FOnFilterChanged := Value;
end;
procedure TfrViewInformeBaseGrid.SetOnViewChanged(const Value: TNotifyEvent);
begin
FOnViewChanged := Value;
end;
procedure TfrViewInformeBaseGrid.SetViewProperties(const Value: String);
var
AStream : TStringStream;
begin
DesactivarEventos;
AStream := TStringStream.Create(Value);
try
AStream.Position := 0;
FocusedView.RestoreFromStream(AStream, True, True, [gsoUseFilter,gsoUseSummary],
FocusedView.Name);
finally
AStream.Free;
ActivarEventos;
end;
end;
end.