TTfvsDBClientFrameGridConsultas

De Pragma Wiki
Revisión del 20:49 30 may 2025 de Luciano Carou (discusión | contribs.) (Página creada con «=Descripción= El frame '''TTfvsDBClientFrameGridConsultas''' (Implementa grilla para consultas) implementa todo lo necesario para armar y procesar las consultas definidas en la categoría Consultas. En diseño tiene casi el mismo aspecto que su ancestro, pero agrega un botón de '''Refrescar''' para actualizar los datos de la grilla. Archivo:20250530 1540 TTfvsDBClientFrameGridConsultas BOTON REFRESCAR.png|miniaturadeimagen|no|Botón de…»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Descripción

El frame TTfvsDBClientFrameGridConsultas (Implementa grilla para consultas) implementa todo lo necesario para armar y procesar las consultas definidas en la categoría Consultas.

En diseño tiene casi el mismo aspecto que su ancestro, pero agrega un botón de Refrescar para actualizar los datos de la grilla.

Botón de refrescar.

Las consultas no usan el panel de criterios de búsqueda ya que sus argumentos son los que definen el resultado.

Identidad

  • Ancestro: TTfvsDBClientFrame
  • Carpeta: C:\DevelopPrx\frames
  • Archivo: fvsDBClientFrameGridConsultas.pas

Declaración

type
  TTfvsDBClientFrameGridConsultas = class(TTfvsDBClientFrameGridCustom)
    prxScrollBoxCRITERIOS: TprxScrollBox;
    ButtonREFRESCAR: TButton;
    TimerREFRESCO: TTimer;
    StatusBar1: TStatusBar;
    procedure TimerREFRESCOTimer(Sender: TObject);
    procedure SQLEjecutar(Sender: TObject);
    procedure DBNavigatorCONTENIDONavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean);
    procedure fvsDBGridResultadoGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu);
    procedure prxADODataSetEdit1ppOnShowFieldHint(Sender: TprxADODataSet; aCampo, aAtributo: String; aEnteros, aDecimales: Integer; aRequerido: Boolean; aIndicaciones: String; aConstraint: String);
  private
    FSentenciaList: TStringList;
    FQueryRESULTADO: TprxADOQuery;
    FDataSourceRESULTADO: TDataSource;
    FSQL_Criterios: String;
    FCriteriosForm: TTprxCriteriosConsultasForm;
  protected
    procedure   SetDataSet(aValue: TprxADODataSetEdit); override;

    function    UsaCRITERIOSFlag: Boolean; override;

    procedure   ArmarConsulta;
    procedure   AbrirFormCriterios(Sender: TObject);

    property    SentenciaList: TStringList read FSentenciaList write FSentenciaList;
    property    QueryRESULTADO: TprxADOQuery read FQueryRESULTADO write FQueryRESULTADO;
    property    DataSourceRESULTADO: TDataSource read FDataSourceRESULTADO write FDataSourceRESULTADO;

    property    SQL_Criterios: String read FSQL_Criterios write FSQL_Criterios;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure   OnFrameShow(Sender: TObject); override;

    function    AgregarControles(aDataSet: TprxADODataSetEdit; aTableName: String): Integer; override;

    procedure   ClassShow_BuildFrame(Sender: TObject); override;
    function    ClassShow_AgregarTablaMaster(aTabla: String): Boolean; override;
    function    ClassShow_AgregarControles: Boolean; override;
    function    ClassShow_Activate(aActivateDataSet: Boolean): Boolean; override;

    procedure   Relaciones_GetIds(aField: String; aList: TStringList);

    function    Argumentos: String;

    property    CriteriosForm: TTprxCriteriosConsultasForm read FCriteriosForm write FCriteriosForm;
  end;

Implementación

procedure DBNavigatorCONTENIDONavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean)

Implementa una respuesta al botón de refresco que hace un refresco del dataset que a su vez actualiza el contenido de la grilla:

if aButton = nbRefresh then
   begin
   SQLEjecutar(Sender);
   fvsDBGridResultado.WidthJustify;

   aHandled := True;
   end;

procedure OnFrameShow(Sender: TObject)

Oculta algunos botones del navegador ya que al ser una consulta no requiere operaciones de edición, los botones son:

  • nbInsert inserción de registros.
  • nbDelete eliminado de registros.
  • nbEdit edición de registros.
  • nbPost posteo de registros.
  • nbCancel cancelar una operación en curso.

Arma a consulta usando la función ArmarConsulta.

Si la consulta no usa argumentos entonces llama directamente al refresco.

procedure prxADODataSetEdit1ppOnShowFieldHint(Sender: TprxADODataSet; aCampo, aAtributo: String; aEnteros, aDecimales: Integer; aRequerido: Boolean; aIndicaciones: String; aConstraint: String)

Muestra las indicaciones del campo en el StatusBar.

procedure fvsDBGridResultadoGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu)