Diferencia entre revisiones de «TTfvsDBClientFrameGridConsultas»
(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…») |
|||
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 6: | Línea 6: | ||
Las consultas no usan el panel de criterios de búsqueda ya que sus argumentos son los que definen el resultado. | Las consultas no usan el panel de criterios de búsqueda ya que sus argumentos son los que definen el resultado. | ||
No confundir con [[TTfvsDBClientFrameGridClases]] que sirve exclusivamente para las clases (ver [[:Category:DEV CLASES|Clases]]). | |||
=[[QUEESESTO/IDENTIDAD|Identidad]]= | =[[QUEESESTO/IDENTIDAD|Identidad]]= | ||
[[Category:MANUAL/PROGRAMADOR]] | [[Category:MANUAL/PROGRAMADOR]] | ||
Línea 94: | Línea 97: | ||
===procedure fvsDBGridResultadoGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu)=== | ===procedure fvsDBGridResultadoGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu)=== | ||
Arma el menú popup cuando el usuario presiona el botón de opciones (botón amarillo a la derecha del navegador): | |||
[[Archivo:20250530 1602 MENU POPUP.png|miniaturadeimagen|no|Menú popup.]] | |||
*Si la consulta define criterios agrega la opción '''Definir criterios...''' (ver [[DEV AUXILIARES/SELECCION CRITERIOS]]). | |||
*Si la consulta define opciones las agrega (ver [[DEV AUXILIARES/OPCIONES]]). | |||
*Agrega la opción de '''Relaciones'''. | |||
*Agrega el menú de impresión. | |||
===procedure ArmarConsulta=== | |||
Arma los comandos de la consulta leyéndolos desde [[DEV CONSULTAS/DETALLE|Consultas, detalle (prxconsultasD)]]. | |||
===procedure SQLEjecutar(Sender: TObject)=== | |||
Ejecuta la sentencia de la consulta. | |||
===procedure TimerREFRESCOTimer(Sender: TObject)=== | |||
Cuando el form se hace visible espera 500 milisegundos para posicionar el cursor sobre el primer campo de los argumentos, o si no los tiene, ejecutar la función de refresco de los datos. Esta función es la ejecutada después de esos 500 milisegundos. | |||
Además, asigna valores a los campos ocultos (caso especial IdUsuarioDeLaConsulta que está oculto por estructura de la tabla) el resto lo estaría por configuración de atributos ocultos. | |||
===procedure AbrirFormCriterios(Sender: TObject)=== | |||
Abre el form de los criterios si existen (ver [[DEV AUXILIARES/SELECCION CRITERIOS]]). | |||
===function ClassShow_AgregarControles: Boolean=== | |||
Agrega los controles específicos de la consulta. Por ejemplo, los argumentos según lo definido en [[DEV CONSULTAS/ARGUMENTOS|Consultas, argumentos (prxconsultasA)]]. | |||
Los argumentos ocupan el panel superior. Por ejemplo, dos criterios: | |||
*Cliente. | |||
*Fecha. | |||
[[Archivo:20250530 1611 ARGUMENTOS CONSULTA.png|miniaturadeimagen|no|Argumentos de una consulta.]] | |||
Si la consulta no tiene argumentos ese panel no estará visible. | |||
=Uso= | |||
Este frame se usa para todo lo definido en [[:Category:DEV CONSULTAS|Consultas]]. |
Revisión actual - 17:28 2 jun 2025
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.

Las consultas no usan el panel de criterios de búsqueda ya que sus argumentos son los que definen el resultado.
No confundir con TTfvsDBClientFrameGridClases que sirve exclusivamente para las clases (ver Clases).
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
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)
Arma el menú popup cuando el usuario presiona el botón de opciones (botón amarillo a la derecha del navegador):

- Si la consulta define criterios agrega la opción Definir criterios... (ver DEV AUXILIARES/SELECCION CRITERIOS).
- Si la consulta define opciones las agrega (ver DEV AUXILIARES/OPCIONES).
- Agrega la opción de Relaciones.
- Agrega el menú de impresión.
procedure ArmarConsulta
Arma los comandos de la consulta leyéndolos desde Consultas, detalle (prxconsultasD).
procedure SQLEjecutar(Sender: TObject)
Ejecuta la sentencia de la consulta.
procedure TimerREFRESCOTimer(Sender: TObject)
Cuando el form se hace visible espera 500 milisegundos para posicionar el cursor sobre el primer campo de los argumentos, o si no los tiene, ejecutar la función de refresco de los datos. Esta función es la ejecutada después de esos 500 milisegundos.
Además, asigna valores a los campos ocultos (caso especial IdUsuarioDeLaConsulta que está oculto por estructura de la tabla) el resto lo estaría por configuración de atributos ocultos.
procedure AbrirFormCriterios(Sender: TObject)
Abre el form de los criterios si existen (ver DEV AUXILIARES/SELECCION CRITERIOS).
function ClassShow_AgregarControles: Boolean
Agrega los controles específicos de la consulta. Por ejemplo, los argumentos según lo definido en Consultas, argumentos (prxconsultasA).
Los argumentos ocupan el panel superior. Por ejemplo, dos criterios:
- Cliente.
- Fecha.

Si la consulta no tiene argumentos ese panel no estará visible.
Uso
Este frame se usa para todo lo definido en Consultas.