Diferencia entre revisiones de «TTprxMENUS GRID Frame»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 2 ediciones intermedias del mismo usuario)
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)===
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.

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:

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

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

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ú.

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

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.

Mostrar ícono en cada elemento.

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).

Menú popup desde el botón de opciones.

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).

Esta opción se dá solamente para administradores.

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)

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: