Diferencia entre revisiones de «TTfvsDBClientFrameCheckList»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Línea 29: Línea 29:


===Definición del frame===
===Definición del frame===
Solo necesita '''Instancia 1''':
[[Archivo:20250603 1133 CUENTA GRUPO FRAME.png|miniaturadeimagen|no|Definición del frame.]]
[[Archivo:20250603 1133 CUENTA GRUPO FRAME.png|miniaturadeimagen|no|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.
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.

Revisión del 16:55 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

Vista de la 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

Solo necesita Instancia 1:

Definición del frame.

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