TfvsDBGrid

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

Descripción

El objeto TfvsDBGrid (Grilla para mostrar registros de una tabla.) es la grilla usada para mostrar registros de un dataset.

TfvsDBGrid.

Identidad

  • Ancestro: TDBGrid
  • Carpeta: C:\DevelopPrx\library
  • Archivo: fvsDBGrid

Declaración

type
  TfvsOnGetPopupOptions = procedure (Sender: TComponent; aPopupMenu: TprxPopupMenu) of object;

const
  TfvsDBGrid_BackgroundColor = clWindow;

type
  THackDBGrid=class(TDBGrid);

type
  TfvsDBGrid = class(TDBGrid)
  private
    FColumnasOrden: TStringList;
    FRowSelect: Boolean;
    FImages: TImageList;
    FQuery: TprxADOQuery;
    FNavigateIndex: Integer;
    FNavigateCount: Integer;
    FColumnMovedFlag: Boolean;
    FOnGetPopupOptions: TfvsOnGetPopupOptions;

    FCheckBox: TDBCheckBox;

    FPropiedadesColumnasFlag: Boolean;
    FFiltroIncremental_Option: TprxADODataSet_Options_FiltroIncremental;
    FFiltroQBE_Option: TprxADODataSet_Options_FiltroQBE;

    FBackgroundColor: TColor;

    FPanelTotals: TPanel;

    FColumns_Totals: TfvsDBGrid_Column_Totals;

    FF9_Call: TNotifyEvent;
  protected
    property    CheckBox: TDBCheckBox read FCheckBox write FCheckBox;

    procedure   SetImages(aValue: TImageList); virtual;

    procedure   LocalColumnMoved(Sender: TObject; FromIndex, ToIndex: Integer);
    procedure   Local_DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure   ColumnOrderClick(Column: TColumn);
    procedure   OnPopupXtd(Sender: TObject); virtual;
    procedure   EventoNulo(Sender: TObject);

    property    Query: TprxADOQuery read FQuery write FQuery;

    procedure   FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE;

    procedure   PropiedadesDeColumnasClick(Sender: TObject);

    property    ColumnMovedFlag: Boolean read FColumnMovedFlag write FColumnMovedFlag;
    property    PropiedadesColumnasFlag: Boolean read FPropiedadesColumnasFlag write FPropiedadesColumnasFlag;
    property    FiltroIncremental_Option: TprxADODataSet_Options_FiltroIncremental read FFiltroIncremental_Option write FFiltroIncremental_Option;
    property    FiltroQBE_Option: TprxADODataSet_Options_FiltroQBE read FFiltroQBE_Option write FFiltroQBE_Option;

    property    BackgroundColor: TColor read FBackgroundColor write FBackgroundColor;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure   Loaded; override;

    function    DataSetId: String;

    procedure   WidthJustify(aResetFilter: Boolean = False);

    procedure   LocalOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); virtual;

    function    SelectedColumn: TColumn;
    property    RowSelect: Boolean read FRowSelect write FRowSelect;

    procedure   ForzarColumnOrderClick(aTexto: String);
    procedure   ColumnOrderReset;
    procedure   ColumnOrderApply(Sender: TObject);

    procedure   PropiedadesColumnasCargar;

    function    SelectedRowsCount: Integer;
    procedure   NavigateRecords(aCall: TprxNotifyEventWithContinue);
    procedure   NavigateRecordsSelected(aCall: TprxNotifyEventWithContinue);
    procedure   NavigateRecordsAll(aCall: TprxNotifyEventWithContinue);
    function    NavigateRecordCount: Integer;

    property    ColumnasOrden: TStringList read FColumnasOrden write FColumnasOrden;
    property    NavigateIndex: Integer read FNavigateIndex write FNavigateIndex;
    property    NavigateCount: Integer read FNavigateCount write FNavigateCount;

    procedure   WMHScroll(var Msg: TWMHScroll); message WM_HSCROLL;

    property    PanelTotals: TPanel read FPanelTotals write FPanelTotals;

    property    Columns_Totals: TfvsDBGrid_Column_Totals read FColumns_Totals write FColumns_Totals;

    property    F9_Call: TNotifyEvent read FF9_Call write FF9_Call;

    procedure   SelectAll;
    procedure   SelectNone;
  published
    property    Images: TImageList read FImages write SetImages;
    property    OnGetPopupOptions: TfvsOnGetPopupOptions read FOnGetPopupOptions write FOnGetPopupOptions;
  end;

Implementación

procedure WidthJustify(aResetFilter: Boolean = False)

Ajusta el ancho de las columnas a algo más prolijo que las opciones por defecto, considera el tipo de columna y su ancho.

procedure LocalOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState)

Administra las teclas presionadas dentro de la grilla, procesa las siguientes:

procedure ForzarColumnOrderClick(aTexto: String)

Dado un texto del tipo "nombrecolumna ASC o DESC" fuerza el ordenamiento de la grilla.

procedure ColumnOrderClick(Column: TColumn)

Agrega una columna al ordenamiento de los registros, el orden es aplicación es ASC, DESC, nulo.

procedure ColumnOrderReset

Resetea el ordenamiento de la grilla, no queda ninguna columna ordenada.

procedure ColumnOrderApply(Sender: TObject)

Aplica el órden de las columnas.

procedure OnPopupXtd(Sender: TObject)

Abre el menú popup de la grilla.

Menú popup de la grilla.

Funcionalidad de selección de registros

Esta funcionalidad aplica a la selección de registros y el procesamiento, por ejemplo: de opciones de menú, sobre éstos.

function SelectedRowsCount: Integer=

Retorna True si hay filas seleccionadas, en revisión y posible eliminación.

procedure NavigateRecords(aCall: TprxNotifyEventWithContinue)

Navega entre los registros de una grilla, desde el primero hasta el último, si la grilla tiene registros seleccionados, sólamente navega entre éstos. Si recibimos por argumento aCall llamamos a ese evento en cada registro.

procedure NavigateRecordsSelected(aCall: TprxNotifyEventWithContinue)

Similar a la anterior pero navega sólamente por registros seleccionados, si no los hay sólo navega el registro corriente.

procedure NavigateRecordsAll(aCall: TprxNotifyEventWithContinue)

Similar NavigateRecords pero navega por todos los registros, independientemente de los seleccionados.

function NavigateRecordCount: Integer

Retorna la cantidad de registros de la grilla, si tiene registros seleccionados retorna esa cantidad, sino retorna la cantidad de registros del DataSet.

Propiedades de columnas

procedure PropiedadesDeColumnasClick(Sender: TObject)

Abre la pantalla de propiedades de columnas que permite:

  • Ocultar columnas eliminándolas de la lista.
  • Cambiar el orden de las columnas cambiándolas de posición.
Propiedades de columnas.