Usina BRGuía AdvPL
Ingresar
← Todos los temas
CLASEPublicado

TCBrowse

TCBrowse():New( <nTop>, <nLeft>, <nBottom>, <nRight>, <oWnd>, ... ) --> oBrowse

Clase visual utilizada para mostrar y navegar datos en formato de grilla/browse.

Interfaz visualClaseBrowseGrillaTablasMatrices
01 · DESCRIPCIÓN GENERAL

Descripción general

TCBrowse es una clase visual para presentar información en filas y columnas, normalmente dentro de diálogos, paneles u otras ventanas del SmartClient. Puede crearse directamente con New() o indirectamente mediante el comando @ ... BROWSE, que es una forma más legible de instanciar y configurar el componente. El browse puede trabajar con aliases de tablas o matrices, siempre que los datos y columnas estén asociados correctamente.

02 · SINTAXIS

Sintaxis

TCBrowse():New( <nTop>, <nLeft>, <nBottom>, <nRight>, <oWnd>, ... ) --> oBrowse

Parámetros

nTop
NuméricoObligatorio

Coordenada superior del componente dentro del contenedor visual.

nLeft
NuméricoObligatorio

Coordenada izquierda del componente dentro del contenedor visual.

nBottom
NuméricoObligatorio

Coordenada inferior del componente.

nRight
NuméricoObligatorio

Coordenada derecha del componente.

oWnd
ObjetoOpcional

Ventana, diálogo, panel o folder donde se muestra el browse.

cAlias
CaractereOpcional

Alias del área de datos cuando el browse se basa en tabla.

Métodos

NewCrea una instancia del browse dentro de un contenedor visual.TCBrowse():New( <nTop>, <nLeft>, <nBottom>, <nRight>, <oWnd>, ... ) --> oBrowse
Parámetros
NombreFormatoObligatorioDescripciónObservación
nTopNuméricoObligatorio

Posición superior.

En ejemplos con PIXEL, se interpreta como coordenada en píxeles.

nLeftNuméricoObligatorio

Posición izquierda.

Debe ser coherente con la unidad usada en el contenedor.

nBottomNuméricoObligatorio

Posición inferior.

Ayuda a definir la altura del componente.

nRightNuméricoObligatorio

Posición derecha.

Ayuda a definir el ancho del componente.

oWndObjetoOpcional

Contenedor visual propietario.

Informar explícitamente el contenedor evita asociar el browse al diálogo activo incorrecto.

Retorno

Objeto TCBrowse creado.

SetArrayAsocia una matriz al browse para navegación fila por fila.oBrowse:SetArray( <aDados> ) --> NIL
Parámetros
NombreFormatoObligatorioDescripciónObservación
aDadosArrayObligatorio

Matriz con las filas que se mostrarán.

Cada fila suele ser otra matriz, con una posición para cada columna.

AddColumnAgrega una columna al browse mediante un objeto de columna, como TCColumn.oBrowse:AddColumn( <oColumn> ) --> NIL
Parámetros
NombreFormatoObligatorioDescripciónObservación
oColumnObjetoObligatorio

Objeto que describe título, valor y propiedades de la columna.

También es común agregar columnas mediante sintaxis de comando, como ADD COLUMN TO ... ARRAY ELEMENT.

GoTopMueve la navegación a la primera fila disponible.oBrowse:GoTop() --> NIL
GoBottomMueve la navegación a la última fila disponible.oBrowse:GoBottom() --> NIL
GoUpMueve la selección una fila hacia arriba.oBrowse:GoUp() --> NIL
GoDownMueve la selección una fila hacia abajo.oBrowse:GoDown() --> NIL
RefreshSolicita una actualización visual después de cambios en los datos o configuración.oBrowse:Refresh() --> NIL

Retorno

Retorna um objeto TCBrowse quando criado por New() ou por @ ... BROWSE.

03 · EJEMPLO PRÁCTICO

TCBrowse con bLine, eventos y navegación

#Include "TOTVS.ch"
#Include "tcbrowse.ch"

User Function TCBrowse()
    Local oDlg
    Local oBrowse
    Local oOK := LoadBitmap(GetResources(), "br_verde")
    Local oNO := LoadBitmap(GetResources(), "br_vermelho")
    Local aBrowse := {}

    DEFINE DIALOG oDlg TITLE "Ejemplo TCBrowse" ;
        FROM 180, 180 TO 550, 700 PIXEL

    // Vector con elementos del Browse
    aBrowse := { ;
        {.T., "CLIENTE 001", "CALLE CLIENTE 001", 111.11}, ;
        {.F., "CLIENTE 002", "CALLE CLIENTE 002", 222.22}, ;
        {.T., "CLIENTE 003", "CALLE CLIENTE 003", 333.33}  ;
    }

    // Crea Browse
    oBrowse := TCBrowse():New(01, 01, 260, 156, , ;
        {"", "Código", "Nombre", "Importe"}, ;
        {20, 50, 90, 70}, oDlg, , , , , {||}, , , , , , , .F., , .T., , .F., , , )

    // Asigna la matriz al browse
    oBrowse:SetArray(aBrowse)

    // Monta la línea que se mostrará en el Browse
    oBrowse:bLine := {|| { ;
        If(aBrowse[oBrowse:nAt, 01], oOK, oNO), ;
        aBrowse[oBrowse:nAt, 02], ;
        aBrowse[oBrowse:nAt, 03], ;
        Transform(aBrowse[oBrowse:nAt, 04], "@E 99,999,999,999.99") } }

    // Evento de clic en el encabezado del browse
    oBrowse:bHeaderClick := {|o, nCol| Alert("bHeaderClick") }

    // Evento de doble clic en la celda
    oBrowse:bLDblClick := {|| Alert("bLDblClick") }

    // Crea botones con métodos básicos
    TButton():New(160, 002, "GoUp()", oDlg, {|| oBrowse:GoUp(), oBrowse:SetFocus() }, 40, 010)
    TButton():New(160, 052, "GoDown()", oDlg, {|| oBrowse:GoDown(), oBrowse:SetFocus() }, 40, 010)
    TButton():New(160, 102, "GoTop()", oDlg, {|| oBrowse:GoTop(), oBrowse:SetFocus() }, 40, 010)
    TButton():New(160, 152, "GoBottom()", oDlg, {|| oBrowse:GoBottom(), oBrowse:SetFocus() }, 40, 010)
    TButton():New(172, 002, "Línea actual", oDlg, {|| Alert(oBrowse:nAt) }, 40, 010)
    TButton():New(172, 052, "Nro. líneas", oDlg, {|| Alert(oBrowse:nLen) }, 40, 010)
    TButton():New(172, 102, "Líneas visibles", oDlg, {|| Alert(oBrowse:nRowCount()) }, 40, 010)
    TButton():New(172, 152, "Alias", oDlg, {|| Alert(oBrowse:cAlias) }, 40, 010)

    ACTIVATE DIALOG oDlg CENTERED
Return
Resultado esperado

Crea un browse con matriz, indicador visual por fila, montaje personalizado con bLine, eventos de encabezado y doble clic, además de botones que ejecutan métodos básicos de navegación.

BUENAS PRÁCTICAS
  • Usa @ ... BROWSE cuando quieras una declaración más legible y mantén TCBrowse como referencia de la clase creada por detrás del comando.
  • Para datos en matriz, llama SetArray() antes de esperar navegación o visualización consistente.
  • Declara las columnas explícitamente para facilitar mantenimiento y lectura.
  • Usa nombres de variables y títulos en el idioma de la página cuando el ejemplo sea didáctico.
  • Confirma el comportamiento en el SmartClient y release utilizados, especialmente en pantallas heredadas.
ERRORES COMUNES
  • Crear el browse sin datos o columnas asociadas deja un área visual vacía.
  • Mezclar coordenadas PIXEL con coordenadas no pixeladas puede causar desalineación.
  • Eventos y bloques de código extensos dentro de la pantalla dificultan el mantenimiento.
  • TCBrowse es útil para referencia y mantenimiento de legado, pero proyectos nuevos pueden preferir componentes de framework como FWBrowse o FWMBrowse.

Contenido relacionado

REFERENCIAS
  1. TOTVS. TCBrowse. TOTVSTEC / TDN. Referencia de la clase visual browse.
  2. TOTVS. @ ... BROWSE. TOTVSTEC / TDN. Comando que instancia y configura TCBrowse.
  3. TOTVS. TCBrowse:New. TOTVSTEC / TDN. Constructor de la clase.
Estado
Publicado
Página creada el
Última revisión el
Idioma original
Portugués
Revisión
Usina.BR
0 comentario(s) aprobado(s)

Comentarios

Todavía no hay comentarios aprobados.

Inicia sesión con Google o Microsoft para comentar.

Desarrollado con Usina Docs · Alpha