AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / Desarrollar una aplicación o un sitio web / Controles, ventanas y páginas / Controles: tipos disponibles / Control Tabla TreeView
  • Presentación
  • Inicializar un control Tabla TreeView
  • Agregar o modificar filas en un control Tabla TreeView
  • Agregar filas a un control Tabla TreeView
  • Modificar una fila o columna
  • Reanudar la entrada en una columna
  • Agregar o eliminar una columna
  • Gestión de columnas calculadas
  • Operaciones en filas y celdas
  • Eliminar una fila
  • Seleccionar una fila
  • Obtener el contenido de una fila o celda
  • Valor de la celda en la fila actual
  • Valor de una celda en una fila específica
  • Contenido de la fila actual
  • Contenido de una fila específica
  • Operaciones en la estructura jerárquica
  • Contraer todos los nodos de un control Tabla TreeView
  • Expandir todos los nodos de un control Tabla TreeView
  • Obtener el número de la fila contraída/expandida
  • Definir el estado de las nuevas filas
  • Obtener y establecer las imágenes de las filas
  • Columna TreeView con casilla de verificación
  • Obtener el padre o los hijos de un elemento
  • Propiedades específicas de los controles Tabla TreeView
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentación
Esta página explica cómo programar controles Tabla TreeView. Existen varias funciones WLanguage para manipular controles Tabla TreeView mediante programación.
Para saber más sobre estas funciones, consulte la documentación. Para obtener más información, consulte lista de funciones específicas de los controles Tabla TreeView.
Inicializar un control Tabla TreeView
Para rellenar un control Tabla TreeView mediante programación, utilice las siguientes funciones:
Si se agregó una nueva fila en un control Tabla TreeView con la función TableAdd, TableInsert, TableAddLine, TableAddChild, TableInsertLine o TableInsertChild, la propiedad New se establece en True (de lo contrario se establece en False).
WINDEV Observación: Para rellenar un control Tabla TreeView de forma dinámica, puede utilizar la propiedad AddChildDelayed en las filas del control.
En este caso, el principio para rellenar el control se simplifica:
  • Al inicializar el control, solo se cargan los elementos del primer nivel. Cada elemento está asociado a la propiedad AddChildDelayed.
  • Cuando el usuario hace clic en el elemento del primer nivel para expandirlo, se ejecuta el procedimiento definido con la propiedad AddChildDelayed. Este procedimiento rellena el nivel a expandir. Los nodos secundarios solo se recuperan a petición del usuario.
Agregar o modificar filas en un control Tabla TreeView

Agregar filas a un control Tabla TreeView

Las filas no se crean automáticamente en los controles Tabla TreeView. Se debe especificar llamando a las siguientes funciones:
WINDEV Observación: Si la opción "Entrada en cascada" no está seleccionada:
  • El control Tabla TreeView no contiene ninguna fila cuando se crea. En este caso, no se puede realizar ninguna entrada.. La propiedad Empty se establece en True.
  • Para insertar una fila automáticamente en un control Tabla TreeView vacío, utilice la función TableAdd o TableAddLine.

Modificar una fila o columna

El contenido de las filas y columnas de un control Tabla TreeView puede ser modificado:
  • por el usuario, introduciendo los datos directamente en las columnas. Los cambios se guardan automáticamente en el control Tabla TreeView (no se requiere ningún código adicional). La propiedad Modified se establece en True.
  • mediante programación:
    • con la función TableModify o TableModifyLine para modificar el contenido de la fila actual o de una fila determinada.
      Por ejemplo:
      TableModify(TVT_CUSTOMER, "MOORE" + TAB + "Vince" + TAB + "Miami")

      Observación: También puede utilizar directamente el nombre del control Tabla TreeView:
      // Modify the current row
      TVT_CUSTOMER = "MOORE" + TAB + "Vince" + TAB + "Miami"
      // Modify the COL_DAY coloumn of row 3
      TableModify(COL_DAY, "Wednesday" + TAB + "Off", 3)
    • especificando directamente el nombre de la columna para cambiar el contenido (como para un control Campo de entrada). Para modificar la columna de una fila determinada, se debe especificar el número de fila (índice).
      Por ejemplo:
      COL_NAME[Index] = CustomerName

      Para modificar la columna de la fila actual, no es necesario especificar el índice.
      Por ejemplo:
      COL_NAME = CustomerName

      La propiedad Modified se establece en False (se establece en True solo cuando se introducen datos en el control Tabla TreeView).
WINDEV

Reanudar la entrada en una columna

La función SetFocusAndReturnToUserInput reanuda la entrada en la columna de la fila actual. Por ejemplo:
// Event "Entry in" COL_QTY
// COL_QTY cannot be entered if COL_PRODUCT is not entered
IF NoSpace(COL_PRODUCT) = "" THEN
Error("The Product column must be entered first")
SetFocusAndReturnToUserInput(COL_PRODUCT)
END
WINDEV

Agregar o eliminar una columna

Es posible:
  • agregar una columna a un control Tabla TreeView con la función ControlClone.
  • eliminar una columna de un control Tabla TreeView con la función ControlDelete.

Gestión de columnas calculadas

La fórmula de cálculo de una columna calculada debe definirse en el evento "Visualización de una fila" de un control Tabla. Por ejemplo:
// COL_PBT: calculated column
// COL_UPBT and COL_QTY: columns linked to memory areas
COL_PBT = COL_UPBT * COL_QTY
Operaciones en filas y celdas

Eliminar una fila

Para eliminar una fila, debe llamar a la función TableDelete o TableDeleteChild.
  • La sintaxis para la función TableDelete es la siguiente:
    TableDelete(<TreeView Table control> [, <Index>])

    Si se especifica el índice, la función TableDelete elimina la fila que corresponde al índice. De lo contrario, se elimina la fila actual.
    Al eliminar una fila del control Tabla TreeView también se eliminan todos los valores de las columnas de esa fila.
  • La sintaxis para la función TableDeleteChild es la siguiente:
    TableDeleteChild(<TreeView Table control>, <Parent element index>)

    Se eliminarán todos los elementos hijos de la fila que corresponde al índice especificado.

Seleccionar una fila

Una fila se puede seleccionar con la función TableSelectPlus.
La sintaxis utilizada es la siguiente:
TableSelectPlus(<TreeView Table control>[, <Index>])

Obtener el contenido de una fila o celda

El contenido de un control Tabla TreeView puede obtenerse:
  • para toda la fila.
  • celda por celda.

Valor de la celda en la fila actual

Para obtener el valor de una columna (o celda) de la fila actual, la sintaxis es la misma que la de un control Campo de entrada simple:
<Value> = <Column_Name>
Por ejemplo:
// COL_QTY is a column of a TreeView Table control
IF COL_QTY < 10 THEN
Info("Insufficient quantity")
END

Valor de una celda en una fila específica

Para obtener el valor de una columna que no se encuentra en la fila actual, se debe especificar el índice de la fila:
<Value> = <Column name>[<Index>]
Por ejemplo:
// Add the total price before tax (PBT) for all the order lines
TotalPrice = 0
FOR Index = 1 TO TVT_ORDER.Count
TotalPrice = TotalPrice + COL_PBT[Index]
END

Contenido de la fila actual

Para obtener el contenido de la fila actual:
<Value> = <TreeView Table control>

Contenido de una fila específica

Para obtener el contenido de la fila cuyo índice es <Index>, utilice la siguiente sintaxis:
<Value> = <TreeView Table control>[<Index>]

Observación: TableSelect devuelve el índice de la fila actual. Por ejemplo:
// Retrieve the contents of row 10 in the TVT_CUSTOMER TreeView Table control
CurrentRow = TVT_CUSTOMER[10]
// Name of the selected customer
CustomerName = COL_NAME[TableSelect(TVT_CUSTOMER)]
// Retrieve the contents of the current row in the TVT_CUSTOMER TreeView Table control
CurrentRow = TVT_CUSTOMER
Operaciones en la estructura jerárquica

Contraer todos los nodos de un control Tabla TreeView

Para contraer todos los nodos de un control Tabla TreeView, utilice la función TableCollapseAll. La sintaxis es la siguiente:
TableCollapseAll(<TreeView Table control>)

Expandir todos los nodos de un control Tabla TreeView

Para expandir todos los nodos de un control Tabla TreeView, utilice la función TableExpandAll. La sintaxis utilizada es la siguiente:
TableExpandAll(<TreeView Table control>)
WINDEV Observación: Si se utiliza la propiedad AddChildDelayed para rellenar dinámicamente los subniveles en un control Tabla TreeView, el procedimiento de relleno de subniveles se ejecutará por cada nuevo elemento expandido en el lado cliente.

Obtener el número de la fila contraída/expandida

Para obtener el número de la fila expandida o contraída, simplemente utilice el evento "Contracción/Expansión de un nodo" en el control Tabla TreeView:
// Which row is used?
Info(TVT_TreeViewTable[TVT_TreeViewTable])

Definir el estado de las nuevas filas

Puede definir el estado de la siguiente fila que se agregará a un control Tabla TreeView (contraída o expandida). Para ello, utilice la propiedad Collapsed.
// The next added rows will be automatically collapsed
TVT_TreeViewTable.Collapsed = True

Obtener y establecer las imágenes de las filas

Para obtener y establecer las imágenes de las filas de un control Tabla TreeView, utilice las siguientes propiedades:
// Modify the images of rows in a TreeView Table control
TVT_TreeViewTable.ExpandedImage = "OpenFolder.gif"
TVT_TreeViewTable.CollapsedImage = "ClosedFolder.gif"
WINDEV

Columna TreeView con casilla de verificación

Una columna de tipo Casilla de verificación puede definirse como "Columna TreeView" en un control Tabla TreeView. En este caso, la columna de tipo Casilla de verificación permite gestionar la estructura jerárquica.
La propiedad Caption de la fila obtiene y establece el texto que aparece junto a la casilla de verificación. La propiedad Value de la fila obtiene y establece el valor de la casilla de verificación.

Obtener el padre o los hijos de un elemento

Las siguientes funciones pueden utilizarse para obtener el padre o los hijos de un elemento:
  • TableGiveParent: Devuelve el "padre" de un elemento, es decir, el elemento del nivel superior.
  • TableGiveChild: Devuelve los "hijos" de un elemento, es decir, los elementos del nivel inferior.
Propiedades específicas de los controles Tabla TreeView
Las siguientes propiedades permiten definir las características de los controles Tabla TreeView.
AddChildDelayedDefine el procedimiento al que se llamará para rellenar una rama dinámicamente.
CollapsedObtiene y establece el estado (contraído o expandido) de las nuevas filas agregadas a un control Tabla TreeView.
MergeDetermina si las celdas (o títulos de las columnas) de un control Tabla TreeView están combinados y los combina si es necesario.
ExpandedImageObtiene y establece la imagen predeterminada de una fila expandida en un control Tabla TreeView.
CollapsedImageObtiene y establece la imagen predeterminada de una fila contraída en un control Tabla TreeView.
MultiselectionObtiene y establece el modo de selección en un control Tabla TreeView.
TotalNbChildrenDevuelve el número total de hijos de una rama en un control Tabla TreeView.
SortOptionObtiene y establece las opciones para ordenar una columna en un control Tabla TreeView.
LeftIndentObtiene y establece el espacio a la izquierda del texto en las columnas de un control Tabla TreeView.
BrowsedItemObtiene y establece el campo utilizado para recorrer los controles Tabla TreeView automáticamente.
SizeObtiene y establece el número de columnas de un control Tabla TreeView.
TotalsEnabledDetermina cómo se realizan los cálculos automáticos en un control Tabla TreeView y desactiva o fuerza los cálculos automáticos en el control.

Para ver la lista completa de las propiedades WLanguage que se pueden utilizar:
Versión mínima requerida
  • Versión 11
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 23/01/2023

Señalar un error o enviar una sugerencia | Ayuda local