Diferencia entre revisiones de «TTprxMENUS GRID Frame»
Línea 145: | Línea 145: | ||
===procedure fvsBotonOpcionesMENUGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu)=== | ===procedure fvsBotonOpcionesMENUGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu)=== | ||
Abre el menú popup desde el botón de opciones, este menú puede variar según el tipo de menú. | Abre el menú popup desde el botón de opciones, este menú puede variar según el tipo de menú (el ejemplo es desde un menú de usuario). | ||
[[Archivo:20250604 1523 POPUP GRILLA MENU.png|miniaturadeimagen|no|Menú popup desde el botón de opciones.]] | [[Archivo:20250604 1523 POPUP GRILLA MENU.png|miniaturadeimagen|no|Menú popup desde el botón de opciones.]] | ||
Línea 154: | Línea 154: | ||
*Habilita las opciones de impresión. | *Habilita las opciones de impresión. | ||
*Ordenar permite dar un orden al menú (ver [[TTprxMENUS_GRID_Frame_OrdenForm]]). | *Ordenar permite dar un orden al menú (ver [[TTprxMENUS_GRID_Frame_OrdenForm]]). | ||
===Ejemplo de menú popup desde un catálogo=== | |||
Esta opción se dá solamente para administradores. | |||
[[Archivo:20250604 1523 POPUP GRILLA MENU CATALOGO.png|miniaturadeimagen|no|Menú popup desde el botón de opciones para un catálogo.]] | |||
Permite: | |||
*Abrir la pantalla del objeto activo. | |||
*Diseñar el objeto activo permite modificar su estructura (por ejemplo: agregar un campo a una clase). | |||
*Exportar definición exporta la definición completa de un objeto. | |||
*Mostrar las dependencias sobre este objeto (qué objetos dependen de él). | |||
*Eliminar <nombre> elimina un objeto físicamente. | |||
*Estructura de la clase muestra la estructura de la clase, no se usa. | |||
*Campos foráneos de esta clase muestra los campos foráneos que tiene la clase activa. | |||
*Campos foráneos sobre esta clase muestra los campos de otras tablas que tienen clave foránea sobre la que tenemos resaltada. | |||
*Agregar a (o quitar de) favoritos. | |||
*Relaciones. | |||
*Opciones de impresión. | |||
*Ordenar. | |||
===procedure prxMENUS_CLIENT_Frame_OrdenForm_Click(Sender: TObject)=== | ===procedure prxMENUS_CLIENT_Frame_OrdenForm_Click(Sender: TObject)=== |
Revisión actual - 20:37 4 jun 2025
Introducción
El frame TTprxMENUS_GRID_Frame (Frame con grilla para mostrar objetos asociados a los menús del explorador.) implementa funcionalidad para mostrar una grilla con los objetos asociados al menú del explorador principal de la aplicación. Este frame es usado por los componentes de menús:
- TprxMENUS_MENU_STATS_Component componente para el menú estadístico.
- TprxMENUS_MENU_FAVS_Component componente para el menú de favoritos.
- TprxMENUS_MENU_Component componente para los menús de usuario.
- TprxMENUS_CATALOG_Component componente para los menús de los catálogos.
Todos estos se usan en TTprxMENUS_Frame.
Identidad
- Ancestro: TTfvsFrame
- Carpeta: C:\DevelopPrx\frames
- Archivo: prxMENUS_GRID_Frame.pas
Aspecto del frame
Vista en diseño

En diseño vemos:
- Un navegador para los registros.
- Un botón de opciones para el menú popup.
- La grilla para mostrar el contenido.
- El checkbox para el modo local.
Vista en runtime

En runtime vemos:
- El navegador muestra los botones para agregar una pantalla al menú, para eliminar una pantalla del menú, para abrir la pantalla y para refrescar.
- El botón de opciones está listo para mostrar el menú local.
- La grilla contiene los objetos asociados al ítem de menú seleccionado.
- El checkbox para el modo local.
Declaración
type TTprxMENUS_GRID_Frame = class(TTfvsFrame) PanelGRID_Abajo: TPanel; PanelGRID_Navegador: TPanel; Panel2: TPanel; fvsBotonOpcionesGRID: TfvsBotonOpciones; Panel4: TPanel; fvsDBNavigatorGRID: TfvsDBNavigator; fvsDBGrid_CONTENIDO: TfvsDBGrid; Panel1: TPanel; CheckBox_MODO_LOCAL: TCheckBox; procedure fvsDBNavigatorMENUNavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean); procedure fvsBotonOpcionesMENUGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu); procedure fvsDBGrid_CONTENIDODrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure fvsDBGrid_CONTENIDODblClick(Sender: TObject); procedure prxMENUS_CLIENT_Frame_OrdenForm_Click(Sender: TObject); private FExecPopupMenu: TprxPopupMenu; FCatalogosShowing: Boolean; FProgresoForm: TTprxProgresoForm; FQueryRESULTADO: TprxADOQuery; FDataSourceRESULTADO: TDataSource; FDataSet_Options_Impresion_Menu: TprxADODataSet_Options_Impresion_Menu; FMENU_Component: TprxMENUS_Component; FBitmapSinPermiso: TBitmap; FDataSet_Options_Relaciones: TprxADODataSet_Options_Relaciones; FFAVS_ObjectId: String; FAgregar_a_favoritos_Text: String; FAgregar_a_favoritos_Bitmap: String; FQuitar_de_favoritos_Text: String; FQuitar_de_favoritos_Bitmap: String; protected property MENU_Component: TprxMENUS_Component read FMENU_Component write FMENU_Component; property DataSet_Options_Relaciones: TprxADODataSet_Options_Relaciones read FDataSet_Options_Relaciones write FDataSet_Options_Relaciones; property ExecPopupMenu: TprxPopupMenu read FExecPopupMenu write FExecPopupMenu; procedure AsociarObjetoClick(Sender: TObject); property CatalogosShowing: Boolean read FCatalogosShowing write FCatalogosShowing; property ProgresoForm: TTprxProgresoForm read FProgresoForm write FProgresoForm; property DataSourceRESULTADO: TDataSource read FDataSourceRESULTADO write FDataSourceRESULTADO; property DataSet_Options_Impresion_Menu: TprxADODataSet_Options_Impresion_Menu read FDataSet_Options_Impresion_Menu write FDataSet_Options_Impresion_Menu; property BitmapSinPermiso: TBitmap read FBitmapSinPermiso write FBitmapSinPermiso; procedure FAVS_AgregarClick(Sender: TObject); procedure FAVS_EliminarClick(Sender: TObject); procedure FAVS_GetPopupOptions(aObjectId: String; aPermit: Boolean; aPopupMenu: TprxPopupMenu); property FAVS_ObjectId: String read FFAVS_ObjectId write FFAVS_ObjectId; property Agregar_a_favoritos_Text: String read FAgregar_a_favoritos_Text; property Agregar_a_favoritos_Bitmap: String read FAgregar_a_favoritos_Bitmap; property Quitar_de_favoritos_Text: String read FQuitar_de_favoritos_Text; property Quitar_de_favoritos_Bitmap: String read FQuitar_de_favoritos_Bitmap; public constructor Create(aOwner: TComponent); override; procedure OnFrameShow(Sender: TObject); override; procedure Menu_Set(aComponent: TprxMENUS_Component); procedure ContenidoRefrescar(Sender: TObject); property QueryRESULTADO: TprxADOQuery read FQueryRESULTADO write FQueryRESULTADO; function MODO_LOCAL: Boolean; end;
Implementación
procedure OnFrameShow(Sender: TObject)
Ejecutado cuando se muestra el frame:
- Inicializa componentes locales.
- Deshabilita / invisibiliza botones del navegador que no se necesitan.
- Inicializa opciones para agregar o quitar de favoritos (si corresponde).
procedure Menu_Set(aComponent: TprxMENUS_Component)
Activa un menú.
procedure ContenidoRefrescar(Sender: TObject)
Refresca el contenido de un menú.
Recibido desde el navegador:
- Si es el botón de nbRefresh (refresco) refresca el contenido de la grilla.
- Si es el botón de nbInsert (inserción) abre una pantalla para agregar un objeto al menú, el objeto debe existir previamente.
- Si es el botón de nbDelete (eliminado) elimina un objeto del menú, no elimina el objeto en sí.
- Si es el botón de nbEdit (edición) lo toma como una acción de abrir y abre esa pantalla.
procedure fvsDBGrid_CONTENIDODrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState)
Este procedimiento dibuja el ícono asociado al objeto en la columna Img.

procedure fvsBotonOpcionesMENUGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu)
Abre el menú popup desde el botón de opciones, este menú puede variar según el tipo de menú (el ejemplo es desde un menú de usuario).

Este menú permite:
- Abrir la pantalla del objeto activo.
- Agregar el objeto activo a favoritos (si ya está en favoritos la opción dirá Quitar de favoritos).
- Permite definir relaciones con otras pantallas.
- Habilita las opciones de impresión.
- Ordenar permite dar un orden al menú (ver TTprxMENUS_GRID_Frame_OrdenForm).
Ejemplo de menú popup desde un catálogo
Esta opción se dá solamente para administradores.

Permite:
- Abrir la pantalla del objeto activo.
- Diseñar el objeto activo permite modificar su estructura (por ejemplo: agregar un campo a una clase).
- Exportar definición exporta la definición completa de un objeto.
- Mostrar las dependencias sobre este objeto (qué objetos dependen de él).
- Eliminar <nombre> elimina un objeto físicamente.
- Estructura de la clase muestra la estructura de la clase, no se usa.
- Campos foráneos de esta clase muestra los campos foráneos que tiene la clase activa.
- Campos foráneos sobre esta clase muestra los campos de otras tablas que tienen clave foránea sobre la que tenemos resaltada.
- Agregar a (o quitar de) favoritos.
- Relaciones.
- Opciones de impresión.
- Ordenar.
procedure prxMENUS_CLIENT_Frame_OrdenForm_Click(Sender: TObject)
Abre el form para ordenar el contenido de la grilla TTprxMENUS_GRID_Frame_OrdenForm.
Opciones de favoritos
procedure FAVS_AgregarClick(Sender: TObject)
Abre el form para seleccionar un objeto para agregar al menú.
procedure FAVS_EliminarClick(Sender: TObject)
Ejecuta el procedimiento para eliminar un objeto de un menú.
procedure FAVS_GetPopupOptions(aObjectId: String; aPermit: Boolean; aPopupMenu: TprxPopupMenu)
Agrega las opciones de agregar a / quitar de favoritos.
Uso
Usado por los componentes de menús:
- TprxMENUS_MENU_STATS_Component componente para el menú estadístico.
- TprxMENUS_MENU_FAVS_Component componente para el menú de favoritos.
- TprxMENUS_MENU_Component componente para los menús de usuario.
- TprxMENUS_CATALOG_Component componente para los menús de los catálogos.