ConstruccionesCNJ_FactuGES/Base/GUIBase/uEditorGridBase.pas
2007-06-21 15:50:59 +00:00

257 lines
7.1 KiB
ObjectPascal

{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uEditorGridBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX, TB2Item,
ImgList, PngImageList, StdActns, TB2ExtItems, TBXExtItems, uViewGridBase,
uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls,
JvStatusBar;
type
IEditorGridBase = interface(IEditorDBBase)
['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}']
end;
TfEditorGridBase = class(TfEditorDBBase, IEditorGridBase)
tbxEditFiltro: TTBXEditItem;
tbxFiltro: TTBXToolbar;
GridPopupMenu: TPopupMenu;
Modificar1: TMenuItem;
Eliminar1: TMenuItem;
N1: TMenuItem;
Nuevo1: TMenuItem;
TBXLabelItem1: TTBXLabelItem;
actQuitarFiltro: TAction;
N2: TMenuItem;
Previsualizar1: TMenuItem;
Imprimir1: TMenuItem;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXItem7: TTBXItem;
TBXSeparatorItem14: TTBXSeparatorItem;
TBXItem33: TTBXItem;
N3: TMenuItem;
Actualizar1: TMenuItem;
TBXItem34: TTBXItem;
actAnchoAuto: TAction;
TBXSeparatorItem16: TTBXSeparatorItem;
TBXItem35: TTBXItem;
TBXItem36: TTBXItem;
procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
procedure FormShow(Sender: TObject); override;
procedure actQuitarFiltroExecute(Sender: TObject);
procedure actDuplicarUpdate(Sender: TObject);
procedure JvFormStorageSavePlacement(Sender: TObject);
procedure JvFormStorageRestorePlacement(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actNuevoUpdate(Sender: TObject);
procedure actAnchoAutoExecute(Sender: TObject);
procedure actAnchoAutoUpdate(Sender: TObject);
procedure actRefrescarUpdate(Sender: TObject);
private
FViewGrid : IViewGridBase;
protected
procedure SetViewGrid(const Value : IViewGridBase); virtual;
function GetViewGrid: IViewGridBase;
procedure PrevisualizarInterno; override;
procedure ConfPaginaInterno; override;
procedure ImprimirInterno; override;
procedure RefrescarInterno; override;
public
property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uDataModuleBase, uCustomEditor, cxGridTableView, uViewGrid;
{$R *.dfm}
{
********************************* TfEditorGridBase *****************************
}
destructor TfEditorGridBase.Destroy;
begin
FViewGrid := NIL;
inherited;
end;
function TfEditorGridBase.GetViewGrid: IViewGridBase;
begin
Result := FViewGrid;
end;
procedure TfEditorGridBase.ImprimirInterno;
begin
inherited;
(ViewGrid as IViewGrid).Print;
end;
procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase);
begin
FViewGrid := Value;
if Assigned(FViewGrid) then
begin
FViewGrid.PopupMenu := GridPopupMenu;
FViewGrid.OnDblClick := actModificar.OnExecute;
end;
end;
procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String);
begin
if Assigned(ViewGrid) then
begin
if Length(Text) > 0 then
ViewGrid.Filter := Text
else
actQuitarFiltro.Execute;
end;
end;
procedure TfEditorGridBase.FormShow(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.ShowEmbedded(Self);
end;
procedure TfEditorGridBase.actEliminarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorGridBase.actModificarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorGridBase.actNuevoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Assigned(dsDataTable.DataTable);
end;
procedure TfEditorGridBase.actQuitarFiltroExecute(Sender: TObject);
begin
if Assigned(ViewGrid) then
begin
tbxEditFiltro.Text := '';
ViewGrid.Filter := '';
end;
end;
procedure TfEditorGridBase.actRefrescarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Assigned(dsDataTable.DataTable);
end;
procedure TfEditorGridBase.ConfPaginaInterno;
begin
inherited;
(ViewGrid as IViewGrid).PrintSetup;
end;
constructor TfEditorGridBase.Create(AOwner: TComponent);
begin
inherited;
actModificar.ShortCut := ShortCut(VK_RETURN, []);
end;
procedure TfEditorGridBase.actAnchoAutoExecute(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.AjustarAncho;
end;
procedure TfEditorGridBase.actAnchoAutoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorGridBase.actDuplicarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root);
end;
procedure TfEditorGridBase.PrevisualizarInterno;
begin
inherited;
(ViewGrid as IViewGrid).Preview;
end;
procedure TfEditorGridBase.RefrescarInterno;
var
FocusedRow, TopRow : Integer;
begin
TopRow := ViewGrid._FocusedView.Controller.TopRowIndex;
FocusedRow := ViewGrid._FocusedView.DataController.FocusedRowIndex;
ViewGrid._FocusedView.BeginUpdate;
try
inherited;
finally
ViewGrid._FocusedView.EndUpdate;
ViewGrid._FocusedView.DataController.FocusedRowIndex := FocusedRow;
ViewGrid._FocusedView.Controller.TopRowIndex := TopRow;
end;
end;
procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root);
end;
initialization
RegisterClass(TfEditorGridBase);
finalization
UnRegisterClass(TfEditorGridBase);
end.