Diferencia entre revisiones de «TTfvsDBClientFrameGridClases»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 7 ediciones intermedias del mismo usuario)
Línea 2: Línea 2:
El frame '''TTfvsDBClientFrameGridClases''' (Implementa grilla para clases) implementa una grilla usada para mostrar las clases que hemos definido en [[:Category:DEV CLASES|Clases]].
El frame '''TTfvsDBClientFrameGridClases''' (Implementa grilla para clases) implementa una grilla usada para mostrar las clases que hemos definido en [[:Category:DEV CLASES|Clases]].


Está armado para mostrar en una grilla lo que hemos definido en:
Según lo documentado en [[DEV ETIQUETAS/FRAME EDICION]] este frame correspondería a la '''instancia 1'''.
*[[DEV CLASES|Clases (prxclases)]].
*[[DEV CLASES/CAMPOS|Clases, campos (prxcampos)]].


No confundir con [[TTfvsDBClientFrameGridConsultas]] que sirve exclusivamente para las consultas (ver [[:Category:DEV CONSULTAS|Consultas]]).
No se debe confundir con [[TTfvsDBClientFrameGridConsultas]] que sirve exclusivamente para las consultas (ver [[:Category:DEV CONSULTAS|Consultas]]).
 
===Criterios de filtrado===
Esta grilla implementa los criterios de filtrado documentados en [[TTprxADOBandFilter]].
 
[[Archivo:20250602 1238 CRITERIOS DE FILTRADO.png|miniaturadeimagen|no|Criterios de filtrado.]]
 
===Archivos adjuntos===
Esta grilla implementa el uso de archivos adjuntos documentados en [[COMPROBANTES/ADJUNTOS]].
 
[[Archivo:20250602 1242 ADJUNTOS.png|miniaturadeimagen|no|Archivos adjuntos.]]


=[[QUEESESTO/IDENTIDAD|Identidad]]=
=[[QUEESESTO/IDENTIDAD|Identidad]]=
Línea 14: Línea 22:
*Carpeta: C:\DevelopPrx\frames
*Carpeta: C:\DevelopPrx\frames
*Archivo: fvsDBClientFrameGridClases.pas
*Archivo: fvsDBClientFrameGridClases.pas
=Declaración=
<pre>
type
  TTfvsDBClientFrameGridClases = class(TTfvsDBClientFrameGridCustom)
    PanelCRITERIOSFILTRADO: TPanel;
    SpeedButtonCRITERIOSFILTRADO: TprxSpeedButton;
    BevelCRITERIOS_TITULO: TBevel;
    Action_INSERT_Master: TAction;
    Action_EDIT_Master: TAction;
    Action_DELETE_Master: TAction;
    procedure fvsDBGridResultadoGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu);
    procedure DBNavigatorCONTENIDONavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean);
    procedure SpeedButtonCRITERIOSFILTRADOClick(Sender: TObject);
    procedure ActualizarRegistrosEnTitulo(Sender: TObject);
    procedure OnExecute_INSERT_Click(Sender: TObject);
    procedure OnExecute_EDIT_Click(Sender: TObject);
    procedure OnExecute_DELETE_Click(Sender: TObject);
  private
  protected
    procedure  SetDataSet(aValue: TprxADODataSetEdit); override;
    function    UsaCRITERIOSFlag: Boolean;
    procedure  FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE;
    procedure  SpeedButtonCRITERIOSFILTRADO_GetOptions(Sender: TprxPopupMenu);
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure  OnFrameShow(Sender: TObject); 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  ClassShow_Activate_GetFilterCommands(aDataSet: TprxADODataSetEdit); override;
    procedure  OnExecute_INSERT(var aHandled: Boolean); override;
    procedure  OnExecute_EDIT(var aHandled: Boolean); override;
    procedure  OnExecute_POST(var aHandled: Boolean); override;
    procedure  OnExecute_CANCEL(var aHandled: Boolean); override;
    procedure  OnExecute_DELETE(var aHandled: Boolean); override;
    procedure  OnExecute_REFRESH(var aHandled: Boolean); override;
    procedure  Relaciones_GetIds(aField: String; aList: TStringList);
  end;
</pre>
=Implementación=
===procedure OnFrameShow(Sender: TObject)===
Al mostrarse el frame se configuran algunos componentes:
*Botón de criterios de filtrado.
*Si las operaciones de inserción y/o edición no se usan las deshabilita en el navegador.
*Agrega el acceso a la pantalla a la tabla '''USUARIO_MENU_PREFS'''.
===procedure fvsDBGridResultadoGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu)===
Arma el menú popup del botón de opciones:
*Agrega la opción de '''Abrir''' para ir a la ficha del registro (ver [[TTfvsDBClientFrameMasterClases|Implementa ficha de clases (TTfvsDBClientFrameMasterClases)]]).
*Agrega la opción de '''Opciones de la clase''' (ver [[DEV AUXILIARES/OPCIONES|OPCIONES]]: Opciones de menú objetos).
*Agrega la opción de relaciones.
*Agrega la opción de archivos adjuntos (ver [[COMPROBANTES/ADJUNTOS]]).
*Si el dataset tiene detalles habilita esa opción.
*Habilita la opción de seguimiento marcada como obsoleta.
*Habilita el menú de impresión.
===function ClassShow_Activate(aActivateDataSet: Boolean): Boolean===
Lo más relevante de esta función (en este frame) es el armado del panel de filtrado cuando el frame es abierto con una condición ésta debe armarse antes de mostrarlo.
===procedure ClassShow_Activate_GetFilterCommands(aDataSet: TprxADODataSetEdit)===
Retorna el comando correspondiente al filtro aplicado.
===procedure SpeedButtonCRITERIOSFILTRADOClick(Sender: TObject)===
Activa el menú popup del panel de criterios de filtrado y lo arma llamando al siguiente procedimiento.
===procedure SpeedButtonCRITERIOSFILTRADO_GetOptions(Sender: TprxPopupMenu)===
Normalmente agrega las opciones del menú de criterios de filtrado, aunque permite agregar otras opciones asociadas a nueva funcionalidad (hasta ahora no fue necesario).
===procedure OnExecute_INSERT_Click(Sender: TObject)===
Llamado por el OnClick del botón de INSERT (normalmente del navegador), llama al siguiente procedimiento.
===procedure OnExecute_INSERT(var aHandled: Boolean)===
Ejecuta lo necesario para que el dataset cambie al modo de inserción.
===procedure OnExecute_EDIT_Click(Sender: TObject)===
Llamado por el OnClick del botón de EDIT (normalmente del navegador), llama al siguiente procedimiento.
===procedure OnExecute_EDIT(var aHandled: Boolean)===
Ejecuta lo necesario para que el dataset cambie al modo de edición.
===procedure OnExecute_POST(var aHandled: Boolean)===
Llamado por el OnClick del botón de POST (normalmente del navegador), no tiene funcionalidad en este frame.
===procedure OnExecute_CANCEL(var aHandled: Boolean)===
Llamado por el OnClick del botón de CANCEL (normalmente del navegador), no tiene funcionalidad en este frame.
===procedure OnExecute_DELETE_Click(Sender: TObject)===
Llamado por el OnClick del botón de DELETE (normalmente del navegador), llama al siguiente procedimiento.
===procedure OnExecute_DELETE(var aHandled: Boolean)===
Ejecuta lo necesario para eliminar el registro activo de la grilla.
===procedure OnExecute_REFRESH(var aHandled: Boolean)===
Ejecuta lo necesario para refrescar los registros de la grilla.
=Uso=
El frame se usa normalmente para mostrar las clases que usan grilla.

Revisión actual - 03:17 3 jun 2025

Descripción

El frame TTfvsDBClientFrameGridClases (Implementa grilla para clases) implementa una grilla usada para mostrar las clases que hemos definido en Clases.

Según lo documentado en DEV ETIQUETAS/FRAME EDICION este frame correspondería a la instancia 1.

No se debe confundir con TTfvsDBClientFrameGridConsultas que sirve exclusivamente para las consultas (ver Consultas).

Criterios de filtrado

Esta grilla implementa los criterios de filtrado documentados en TTprxADOBandFilter.

Criterios de filtrado.

Archivos adjuntos

Esta grilla implementa el uso de archivos adjuntos documentados en COMPROBANTES/ADJUNTOS.

Archivos adjuntos.

Identidad

Declaración

type
  TTfvsDBClientFrameGridClases = class(TTfvsDBClientFrameGridCustom)
    PanelCRITERIOSFILTRADO: TPanel;
    SpeedButtonCRITERIOSFILTRADO: TprxSpeedButton;
    BevelCRITERIOS_TITULO: TBevel;
    Action_INSERT_Master: TAction;
    Action_EDIT_Master: TAction;
    Action_DELETE_Master: TAction;
    procedure fvsDBGridResultadoGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu);
    procedure DBNavigatorCONTENIDONavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean);
    procedure SpeedButtonCRITERIOSFILTRADOClick(Sender: TObject);
    procedure ActualizarRegistrosEnTitulo(Sender: TObject);

    procedure OnExecute_INSERT_Click(Sender: TObject);
    procedure OnExecute_EDIT_Click(Sender: TObject);
    procedure OnExecute_DELETE_Click(Sender: TObject);
  private
  protected
    procedure   SetDataSet(aValue: TprxADODataSetEdit); override;
    function    UsaCRITERIOSFlag: Boolean;
    procedure   FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE;
    procedure   SpeedButtonCRITERIOSFILTRADO_GetOptions(Sender: TprxPopupMenu);
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure   OnFrameShow(Sender: TObject); 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   ClassShow_Activate_GetFilterCommands(aDataSet: TprxADODataSetEdit); override;

    procedure   OnExecute_INSERT(var aHandled: Boolean); override;
    procedure   OnExecute_EDIT(var aHandled: Boolean); override;
    procedure   OnExecute_POST(var aHandled: Boolean); override;
    procedure   OnExecute_CANCEL(var aHandled: Boolean); override;
    procedure   OnExecute_DELETE(var aHandled: Boolean); override;
    procedure   OnExecute_REFRESH(var aHandled: Boolean); override;

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

Implementación

procedure OnFrameShow(Sender: TObject)

Al mostrarse el frame se configuran algunos componentes:

  • Botón de criterios de filtrado.
  • Si las operaciones de inserción y/o edición no se usan las deshabilita en el navegador.
  • Agrega el acceso a la pantalla a la tabla USUARIO_MENU_PREFS.

procedure fvsDBGridResultadoGetPopupOptions(Sender: TComponent; aPopupMenu: TprxPopupMenu)

Arma el menú popup del botón de opciones:

  • Agrega la opción de Abrir para ir a la ficha del registro (ver Implementa ficha de clases (TTfvsDBClientFrameMasterClases)).
  • Agrega la opción de Opciones de la clase (ver OPCIONES: Opciones de menú objetos).
  • Agrega la opción de relaciones.
  • Agrega la opción de archivos adjuntos (ver COMPROBANTES/ADJUNTOS).
  • Si el dataset tiene detalles habilita esa opción.
  • Habilita la opción de seguimiento marcada como obsoleta.
  • Habilita el menú de impresión.

function ClassShow_Activate(aActivateDataSet: Boolean): Boolean

Lo más relevante de esta función (en este frame) es el armado del panel de filtrado cuando el frame es abierto con una condición ésta debe armarse antes de mostrarlo.

procedure ClassShow_Activate_GetFilterCommands(aDataSet: TprxADODataSetEdit)

Retorna el comando correspondiente al filtro aplicado.

procedure SpeedButtonCRITERIOSFILTRADOClick(Sender: TObject)

Activa el menú popup del panel de criterios de filtrado y lo arma llamando al siguiente procedimiento.

procedure SpeedButtonCRITERIOSFILTRADO_GetOptions(Sender: TprxPopupMenu)

Normalmente agrega las opciones del menú de criterios de filtrado, aunque permite agregar otras opciones asociadas a nueva funcionalidad (hasta ahora no fue necesario).

procedure OnExecute_INSERT_Click(Sender: TObject)

Llamado por el OnClick del botón de INSERT (normalmente del navegador), llama al siguiente procedimiento.

procedure OnExecute_INSERT(var aHandled: Boolean)

Ejecuta lo necesario para que el dataset cambie al modo de inserción.

procedure OnExecute_EDIT_Click(Sender: TObject)

Llamado por el OnClick del botón de EDIT (normalmente del navegador), llama al siguiente procedimiento.

procedure OnExecute_EDIT(var aHandled: Boolean)

Ejecuta lo necesario para que el dataset cambie al modo de edición.

procedure OnExecute_POST(var aHandled: Boolean)

Llamado por el OnClick del botón de POST (normalmente del navegador), no tiene funcionalidad en este frame.

procedure OnExecute_CANCEL(var aHandled: Boolean)

Llamado por el OnClick del botón de CANCEL (normalmente del navegador), no tiene funcionalidad en este frame.

procedure OnExecute_DELETE_Click(Sender: TObject)

Llamado por el OnClick del botón de DELETE (normalmente del navegador), llama al siguiente procedimiento.

procedure OnExecute_DELETE(var aHandled: Boolean)

Ejecuta lo necesario para eliminar el registro activo de la grilla.

procedure OnExecute_REFRESH(var aHandled: Boolean)

Ejecuta lo necesario para refrescar los registros de la grilla.

Uso

El frame se usa normalmente para mostrar las clases que usan grilla.