AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / ¿Cómo proceder? / Programación
  • Presentación
  • Método 1: Clonación de columnas
  • Método 2: Creación de columnas
  • Utilización de la nueva columna
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
¿Cómo clonar y utilizar columnas en un control Tabla?
Presentación
En algunos casos, un control Tabla debe rellenarse con un número desconocido de columnas (al crear el control). Se pueden utilizar dos métodos para construir dinámicamente columnas en un control Tabla:
Método 1: Clonación de columnas
ControlClone se utiliza para clonar (duplicar) un control existente con el fin de crear una copia. Esta función también puede utilizarse en una columna de un control Tabla. La nueva columna se añade automáticamente al final de las columnas existentes.
Para crear una nueva columna:
  1. Crear un control Tabla.
  2. En el control Tabla, defina la columna que se utilizará como "plantilla para la clonación".
  3. Borrar el contenido del control Tabla (TableDeleteAll).
  4. Borrar las columnas clonadas anteriormente (ControlDelete).
  5. Crear las nuevas columnas (ControlClone).
  6. Rellenar el control Tabla con datos.
Ejemplo de código:
NbFixedColumns is int
NbNewColumns is int
 
NewColumnName is string
 
 
// Clear the table
TableDeleteAll(TABLE_YearlyStat)
 
 
// Delete the previous cloned columns
NbFixedColumns = 3 // for example, 2 fixed columns + the column to clone
 
FOR nIndex = TableCount(TABLE_YearlyStat,toColumn) TO NbFixedColumns STEP -1
ControlDelete(TableEnumColumn(TABLE_YearlyStat, nIndex))
END
 
// Clone the new columns
NbNewColumns = 5 // we want 5 new columns for example
FOR nIndex = 1 TO NbNewColumns
// Build the name of the new column
NewColumnName = "COL_" + nIndex
// Create the new column by cloning
ControlClone(COL_Template, NewColumnName)
 
// Modify the header caption of new column
{NewColumnName, indControl}..Caption = "Column " + nIndex
 
END
 
// Fill the Table control...
 
// Put your code for filling the table here
Atención:
  • Las columnas deben clonarse antes de rellenar el control Tabla.
  • Dos columnas no pueden tener el mismo nombre.
Método 2: Creación de columnas
ControlCreate permite crear un control sin tener que utilizar una plantilla. Esta función también puede utilizarse en una columna de un control Tabla. La nueva columna se añade automáticamente al final de las columnas existentes.
Para crear una nueva columna:
  1. Crear un control Tabla.
  2. Borrar el contenido del control Tabla (TableDeleteAll).
  3. Borrar las columnas creadas anteriormente (ControlDelete).
  4. Cree las nuevas columnas (ControlCreate).
  5. Rellenar el control Tabla con datos.
Ejemplo de código:
NewColumn is Control
 
NbFixedColumns is int
NbNewColumns is int
 
NewColumnName is string
 
 
// Clear the table
TableDeleteAll(TABLE_YearlyStat)
 
 
// Delete the previous created columns
NbFixedColumns = 3 // for example, 2 fixed columns + the column to create
 
 
FOR nIndex = TableCount(TABLE_YearlyStat, toColumn) TO NbFixedColumns STEP -1
ControlDelete(TableEnumColumn(TABLE_YearlyStat, nIndex))
END
 
// Create the new columns
NbNewColumns = 5 // we want 5 new columns for example
FOR nIndex = 1 TO NbNewColumns
// Build the name of the new column
NewColumnName = TABLE_YearlyStat.Name + ".COL_" + nIndex
// Create the new column by creation
NewColumn <- ControlCreate(NewColumnName, typColumn)
 
// Modify the header caption of new column
NewColumn.Caption = "Column" + nIndex
END
 
// Fill the Table control...
// Put your code for filling the table here
Atención:
  • Las columnas deben crearse antes de rellenar el control Tabla.
  • Dos columnas no pueden tener el mismo nombre.
Utilización de la nueva columna
Se pueden utilizar dos métodos para manejar la columna creada:
  • los operadores indirectos { }. Para obtener más información, consulte Operadores indirectos.
  • el nombre de la nueva columna, método válido sólo si la columna fue creada por ControlCreate.
Versión mínima requerida
  • Versión 22
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 19/01/2025

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