Diferencia entre revisiones de «TTfvsDBClientFrameCheckList»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 34: Línea 34:


Con estas definiciones el frame transforma la tabla en una lista de checkboxes, marca las que estaban marcadas y finalmente, a pedido del master, arma los registros que hay que aplicar para que la tabla solo contenga los registros que están marcados en la pantalla.
Con estas definiciones el frame transforma la tabla en una lista de checkboxes, marca las que estaban marcadas y finalmente, a pedido del master, arma los registros que hay que aplicar para que la tabla solo contenga los registros que están marcados en la pantalla.
=Declaración=
<pre>
type
  TTfvsDBClientFrameCheckList = class(TTfvsDBClientFrame)
    Panel1: TPanel;
    Panel3: TPanel;
    PanelNAVEGADOR: TPanel;
    DBNavigator1: TfvsDBNavigator;
    Panel2: TPanel;
    SpeedButton_OPCIONES: TfvsBotonOpciones;
    prxListaCHECKS: TprxListView;
    procedure DBNavigator1NavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean);
  private
    FADOField: Tfva_campos_item;
    FCheckedOffImage: Integer;
    FCargarComandosCount: Integer;
    FRefreshing: Boolean;
  protected
    procedure  FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE;
    procedure  CargarComandos;
    procedure  GuardarCambios(Sender: TObject);
    procedure  CancelarCambios(Sender: TObject; var aCloseForm: Boolean);
    property    ADOField: Tfva_campos_item read FADOField write FADOField;
    property    CheckedOffImage: Integer read FCheckedOffImage write FCheckedOffImage;
    property    CargarComandosCount: Integer read FCargarComandosCount write FCargarComandosCount;
    property    Refreshing: Boolean read FRefreshing write FRefreshing;
  public
    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;
  end;
</pre>
=Implementación=

Revisión del 16:54 3 jun 2025

Descripción

El frame TTfvsDBClientFrameCheckList (Implementa lista para checkboxes) implementa un frame donde podemos editar una lista de líneas, cada una con un checkbox. Toma una clase definida y la transforma a una lista de checkboxes. Necesita tener el frame de edición definido como se muestra en el ejemplo.

Identidad

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

Ejemplo de definición

Pantalla en runtime

Usamos el detalle de CONTABILIDAD/GRUPOS DE CUENTAS como ejemplo, la pantalla se ve de la siguiente manera:

Grupos de cuentas contables.

El detalle usa este frame, la definición de la clase es:

Lista de campos

Columna Campo físico Campo lógico Observaciones
1 FGRUPO Grupo Código de agrupación.
2 FCUENTA Cuenta Código de cuenta asociada a la agrupación.

Definición del frame

Definición del frame.

Solo necesita Instancia 1.

Con estas definiciones el frame transforma la tabla en una lista de checkboxes, marca las que estaban marcadas y finalmente, a pedido del master, arma los registros que hay que aplicar para que la tabla solo contenga los registros que están marcados en la pantalla.

Declaración

type
  TTfvsDBClientFrameCheckList = class(TTfvsDBClientFrame)
    Panel1: TPanel;
    Panel3: TPanel;
    PanelNAVEGADOR: TPanel;
    DBNavigator1: TfvsDBNavigator;
    Panel2: TPanel;
    SpeedButton_OPCIONES: TfvsBotonOpciones;
    prxListaCHECKS: TprxListView;
    procedure DBNavigator1NavigatorClick(Sender: TDBNavigator; aButton: TNavigateBtn; aX, aY: Integer; var aHandled: Boolean);
  private
    FADOField: Tfva_campos_item;

    FCheckedOffImage: Integer;

    FCargarComandosCount: Integer;
    FRefreshing: Boolean;
  protected
    procedure   FieldMessage(var Message: TprxADODataSetMessage); message MSG_PRXADODATASETMESSAGE;
    procedure   CargarComandos;
    procedure   GuardarCambios(Sender: TObject);
    procedure   CancelarCambios(Sender: TObject; var aCloseForm: Boolean);

    property    ADOField: Tfva_campos_item read FADOField write FADOField;
    property    CheckedOffImage: Integer read FCheckedOffImage write FCheckedOffImage;
    property    CargarComandosCount: Integer read FCargarComandosCount write FCargarComandosCount;
    property    Refreshing: Boolean read FRefreshing write FRefreshing;
  public
    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;
  end;

Implementación