This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
AlonsoYSal_FactuGES/Base/uEditorGrid.pas
2007-06-21 16:02:50 +00:00

250 lines
6.6 KiB
ObjectPascal

unit uEditorGrid;
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, uViewGrid,
uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
JvComponentBase;
type
IEditorGrid = interface(IEditorDBBase)
['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}']
end;
TfEditorGrid = class(TfEditorDBBase, IEditorGrid)
tbxEditFiltro: TTBXEditItem;
tbxFiltro: TTBXToolbar;
TBXItem7: TTBXItem;
GridPopupMenu: TPopupMenu;
Modificar1: TMenuItem;
Eliminar1: TMenuItem;
N1: TMenuItem;
Nuevo1: TMenuItem;
TBXLabelItem1: TTBXLabelItem;
actQuitarFiltro: TAction;
N2: TMenuItem;
Previsualizar1: TMenuItem;
Imprimir1: TMenuItem;
TBXSeparatorItem14: TTBXSeparatorItem;
TBXItem33: TTBXItem;
actDuplicar: TAction;
TBXSeparatorItem15: TTBXSeparatorItem;
TBXItem34: TTBXItem;
Duplicar1: TMenuItem;
actAnchoAuto: TAction;
TBXItem35: TTBXItem;
actFiltrar: TAction;
TBXItem37: TTBXItem;
procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
procedure FormShow(Sender: TObject);
procedure actPrevisualizarExecute(Sender: TObject);
procedure actConfPaginaExecute(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
procedure actQuitarFiltroExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actDuplicarUpdate(Sender: TObject);
procedure actDuplicarExecute(Sender: TObject);
procedure JvFormStorageSavePlacement(Sender: TObject);
procedure JvFormStorageRestorePlacement(Sender: TObject);
procedure actRefrescarExecute(Sender: TObject);
procedure actAnchoAutoExecute(Sender: TObject);
procedure actFiltrarExecute(Sender: TObject);
procedure actFiltrarUpdate(Sender: TObject);
private
FViewGrid : IViewGrid;
protected
procedure SetViewGrid(const Value : IViewGrid); virtual;
function GetViewGrid: IViewGrid;
public
property ViewGrid: IViewGrid read GetViewGrid write SetViewGrid;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uDataModuleBase, uCustomEditor, cxGridTableView;
{$R *.dfm}
{
********************************* TfEditorGrid *********************************
}
destructor TfEditorGrid.Destroy;
begin
FViewGrid := NIL;
inherited;
end;
function TfEditorGrid.GetViewGrid: IViewGrid;
begin
Result := FViewGrid;
end;
procedure TfEditorGrid.SetViewGrid(const Value: IViewGrid);
begin
FViewGrid := Value;
if Assigned(FViewGrid) then
begin
FViewGrid.PopupMenu := GridPopupMenu;
FViewGrid.OnDblClick := actModificar.OnExecute;
end;
end;
procedure TfEditorGrid.tbxEditFiltroChange(Sender: TObject; const Text: String);
begin
if Assigned(ViewGrid) then
ViewGrid.Filter := Text;
end;
procedure TfEditorGrid.FormShow(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.ShowEmbedded(Self);
end;
procedure TfEditorGrid.actPrevisualizarExecute(Sender: TObject);
begin
inherited;
ViewGrid.Preview;
end;
procedure TfEditorGrid.actConfPaginaExecute(Sender: TObject);
begin
inherited;
ViewGrid.PrintSetup;
end;
procedure TfEditorGrid.actImprimirExecute(Sender: TObject);
begin
inherited;
ViewGrid.Print;
end;
procedure TfEditorGrid.actQuitarFiltroExecute(Sender: TObject);
begin
if Assigned(ViewGrid) then
begin
tbxEditFiltro.Text := '';
ViewGrid.Filter := '';
end;
end;
procedure TfEditorGrid.actModificarExecute(Sender: TObject);
begin
inherited;
ViewGrid.SyncFocusedRecordsFromGrid;
end;
procedure TfEditorGrid.actEliminarExecute(Sender: TObject);
begin
ViewGrid.SyncFocusedRecordsFromGrid; // Esto va ANTES del inherited. No cambiar.
inherited;
end;
constructor TfEditorGrid.Create(AOwner: TComponent);
begin
inherited;
actModificar.ShortCut := ShortCut(VK_RETURN, []);
end;
procedure TfEditorGrid.actDuplicarUpdate(Sender: TObject);
begin
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 TfEditorGrid.actDuplicarExecute(Sender: TObject);
begin
ViewGrid.SyncFocusedRecordsFromGrid; // Esto va ANTES del inherited. No cambiar.
inherited;
end;
procedure TfEditorGrid.JvFormStorageSavePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.StoreToRegistry;
end;
procedure TfEditorGrid.JvFormStorageRestorePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.RestoreFromRegistry;
end;
procedure TfEditorGrid.actRefrescarExecute(Sender: TObject);
var
FocusedRow, TopRow : Integer;
begin
ViewGrid.SyncFocusedRecordsFromGrid;
TopRow := (ViewGrid.Grid.ActiveView.Controller as TcxGridTableController).TopRowIndex;
FocusedRow := ViewGrid.Grid.ActiveView.DataController.FocusedRowIndex;
inherited;
ViewGrid.Grid.ActiveView.DataController.FocusedRowIndex := FocusedRow;
(ViewGrid.Grid.ActiveView.Controller as TcxGridTableController).TopRowIndex := TopRow;
// ViewGrid.Grid.ActiveView.Controller.TopRowIndex := TopRow;
// ViewGrid.SyncFocusedRecordsFromDataSet;
end;
procedure TfEditorGrid.actAnchoAutoExecute(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.AjustarAncho;
end;
procedure TfEditorGrid.actFiltrarExecute(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.ActivarDesactivarFiltros;
if Assigned(ViewGrid) then
if ViewGrid.EstanFiltrosVisible then
begin
tbxEditFiltro.Visible := False;
TBXItem7.Visible := False;
end
else
begin
tbxEditFiltro.Text := '';
tbxEditFiltro.Visible := True;
TBXItem7.Visible := True;
end;
end;
procedure TfEditorGrid.actFiltrarUpdate(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
(Sender as TAction).Checked := ViewGrid.EstanFiltrosVisible
end;
initialization
RegisterClass(TfEditorGrid);
finalization
UnRegisterClass(TfEditorGrid);
end.