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/InformesBase/Cliente/uViewControlGrid.pas

285 lines
8.7 KiB
ObjectPascal
Raw Normal View History

{*******************************************************}
{ }
{ Administraci<63>n de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uViewControlGrid;
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, dxPScxGridLnk,
dxPgsDlg;
type
IViewControlGrid = interface(IViewBase)
['{566F315A-70A6-4BCE-8A02-0C7E10FF311A}']
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;
TfrViewControlGrid = class(TfrViewBase, IViewControlGrid)
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}
{ TfrViewControlGrid }
procedure TfrViewControlGrid.ActivarEventos;
begin
//
end;
procedure TfrViewControlGrid.AjustarAncho;
begin
FocusedView.ApplyBestFit;
end;
procedure TfrViewControlGrid.ContraerTodo;
begin
FocusedView.ViewData.Collapse(True);
end;
constructor TfrViewControlGrid.Create(AOwner: TComponent);
begin
inherited;
FOnViewChanged := nil;
end;
procedure TfrViewControlGrid.DesactivarEventos;
begin
//
end;
procedure TfrViewControlGrid.ExpandirTodo;
begin
FocusedView.ViewData.Expand(True);
end;
function TfrViewControlGrid.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 TfrViewControlGrid.GetColumnCount: Integer;
begin
Result := FocusedView.ColumnCount;
end;
function TfrViewControlGrid.GetColumns(Index: Integer): TcxGridDBColumn;
begin
Result := FocusedView.Columns[Index];
end;
function TfrViewControlGrid.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 TfrViewControlGrid.GetGroupedColumnCount: Integer;
begin
Result := FocusedView.GroupedColumnCount;
end;
function TfrViewControlGrid.GetGroupedColumns(
Index: Integer): TcxGridColumn;
begin
Result := FocusedView.GroupedColumns[Index];
end;
function TfrViewControlGrid.GetOnFilterChanged: TNotifyEvent;
begin
Result := FOnFilterChanged;
end;
function TfrViewControlGrid.GetOnViewChanged: TNotifyEvent;
begin
Result := FOnViewChanged;
end;
function TfrViewControlGrid.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 TfrViewControlGrid.GotoFirst;
begin
FocusedView.DataController.GotoFirst;
end;
procedure TfrViewControlGrid.GotoLast;
begin
FocusedView.DataController.GotoLast;
end;
procedure TfrViewControlGrid.Preview;
begin
dxPrinterLinkcxGrid.Preview;
end;
procedure TfrViewControlGrid.Print;
begin
dxPrinterLinkcxGrid.Print(True, nil);
end;
procedure TfrViewControlGrid.PrintSetup;
begin
dxPrinterLinkcxGrid.PageSetup;
end;
procedure TfrViewControlGrid.SetOnFilterChanged(const Value: TNotifyEvent);
begin
FOnFilterChanged := Value;
end;
procedure TfrViewControlGrid.SetOnViewChanged(const Value: TNotifyEvent);
begin
FOnViewChanged := Value;
end;
procedure TfrViewControlGrid.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.