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 Looper
  • Presentación
  • Configuración del control Tabla o Looper
  • Implementación
  • Eventos agregados
  • Limitaciones
  • Personalizar la ventana o página de espera
  • Evento "Adición de elementos adicionales"
  • Rellenar el control hacia abajo y/o hacia arriba
  • Programación
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
Presentación
Existen dos métodos para rellenar los controles Tabla y Looper mediante programación:
  • Rellenar todo el control: Todos los datos presentes en el control se cargan cuando se inicializa el control.
    Ventaja: Todos los valores están presentes en el control. Puede ordenar y buscar los elementos que se encuentran en el control.
    Desventaja: El control y los datos podrían utilizar una gran cantidad de memoria. En el caso de las aplicaciones móviles, este modo de carga completa puede ser lento y consumir un ancho de banda innecesario.
  • Rellenar el control si es necesario (Tabla y Looper infinitos): Solo se cargan en memoria los datos visibles para el usuario. Los datos adicionales solo se cargan si el usuario desplaza la vista.
    Ventaja: Bajo consumo de memoria. En el caso de las aplicaciones móviles, esto se traduce en una visualización más rápida de los datos y un menor consumo de ancho de banda.
    Desventaja: No se pueden realizar búsquedas ni ordenar elementos hasta que se carguen todos los datos.
Configuración del control Tabla o Looper

Implementación

Para elegir el modo en que se mostrarán datos adicionales en los controles Tabla y Looper infinitos:
  1. Abra la ventana de descripción del control.
  2. En la pestaña "Contenido", en la sección "Tabla infinita"/"Looper infinito":
    • Elija el modo en que se rellenará la tabla infinita:
      • WINDEVWINDEV Mobile "Rellenar hacia abajo": Los datos se agregarán automáticamente debajo de los datos existentes.
      • Novedad versión 2025
        WINDEVWINDEV Mobile "Rellenar hacia arriba": Los datos se agregarán automáticamente en la parte superior del control, arriba de los datos existentes.
      • WEBDEV - Código Servidor "Llamar al proceso para agregar elementos adicionales al final del desplazamiento": Los datos se agregan hacia abajo. Los datos se agregarán automáticamente debajo de los datos existentes.
    • Seleccione la ventana o página interna que se mostrará al cargar filas adicionales. Puede:
      • Utilizar la ventana o página interna de espera predeterminada,
      • Utilizar la ventana o página predefinida. Si esta opción está seleccionada, el componente interno WDAAF se agrega inmediatamente al proyecto actual. Dependiendo de la plataforma, el elemento correspondiente (ventana o página) se asocia automáticamente a la opción "Ventana interna de espera" o "Página interna de espera".
        • WINDEV En WINDEV, el nombre de la ventana interna es "IW_AddExtraElem_WD".
        • WINDEV Mobile En WINDEV Mobile, el nombre de la ventana interna es "IW_AddExtraElem_WM".
        • WEBDEV - Código Servidor En WEBDEV, el nombre de la página es "IPAGE_AddExtraElem".
        Nota: Si el componente WDAAF ya existe, solo se agrega al componente la ventana o página interna.
      • Utilizar una ventana o página interna del proyecto.
    • Especifique el número máximo de filas: Este número determina el número máximo de filas que se pueden agregar al control. Una vez alcanzado este número, no se seguirá llamando al evento "Adición de elementos adicionales".
  3. Valide la ventana de descripción del control.

Eventos agregados

Cuando se definen los ajustes del control Tabla o Looper infinito, se agregan los siguientes eventos:
  • WINDEVWINDEV Mobile En WINDEV y WINDEV Mobile:
    • Adición de elementos adicionales hacia abajo.
    • Novedad versión 2025
      Adición de elementos adicionales hacia arriba.
  • WEBDEV - Código Servidor En WEBDEV:
    • Adición de elementos adicionales (navegador).
    • Adición de elementos adicionales (servidor).
    • Volver al navegador después de agregar elementos adicionales en modo AJAX (navegador).

Limitaciones

El modo de carga infinita de datos no está disponible para:
  • Controles Looper horizontal, Looper enlazado a datos y Looper multicolumna.
  • Controles Tabla enlazados a datos.

Personalizar la ventana o página de espera

La barra de progreso se encuentra en una ventana o página interna.
WINDEVWINDEV Mobile De forma predeterminada, se utiliza una ventana interna estándar, pero puede integrarla en el proyecto para personalizarla. La barra de progreso se gestiona automáticamente. La ventana interna utilizada debe contener una sola barra de progreso infinita.
WEBDEV - Código Servidor De forma predeterminada, se utiliza una página interna estándar, pero puede integrarla en el proyecto para personalizarla. La barra de progreso se gestiona automáticamente.
Evento "Adición de elementos adicionales"
El evento "Adición de elementos adicionales" debe contener el código para actualizar los datos en el control. De forma predeterminada, se muestra la ventana interna de espera mientras se ejecuta el código. Al final de la ejecución del código, la ventana interna de espera se oculta automáticamente.
Nota: Este evento se llama automáticamente:
  • al inicializar la ventana, si el control está vacío.
  • tras la inicialización de la ventana, si todas las filas del control son visibles
  • después de ampliar el control para visualizar todas las filas.
  • después de desplazarse hacia abajo, si la última fila es visible.
Nota: Si se selecciona la ventana interna predeterminada, se muestra una barra de progreso (ventana de espera) mientras se ejecuta el evento "Adición de elementos adicionales". Esta barra de progreso solo se muestra si el subproceso principal puede ejecutarse mientras se ejecuta el evento "Adición de elementos adicionales".
Para ver la barra de progreso, debe ejecutar un proceso de actualización largo (solicitud HTTP o iteración HFSQL, por ejemplo) en un subproceso ejecutado desde el evento "Adición de elementos adicionales". En este caso, la barra de progreso debe gestionarse utilizando las funciones TableAddInProgress y LooperAddInProgress.
Ejemplo del evento "Adición de elementos adicionales": Rellenar un control Tabla con los últimos correos electrónicos no leídos:
SessionID is int
EmailRead is Email
 
// Loads the last unread messages
EmailReadFirst(SessionID, EmailRead, emailUnread)
WHILE NOT Email.Out
// Process the message
TableAddLine(TABLE_Email, EmailRead.Sender, EmailRead.ReceiveDate, EmailRead.MessageID)
EmailReadNext(SessionID, EmailRead, emailUnread)
END
Nota: Si el evento "Adición de elementos adicionales" devuelve False:
  • la ventana interna de espera no se muestra,
  • el evento "Adición de elementos adicionales" no se ejecuta.
WEBDEV - Código Servidor El comportamiento es el mismo.
Novedad versión 2025
WINDEVWINDEV Mobile
Rellenar el control hacia abajo y/o hacia arriba
Puede definir los siguientes modos para los controles Tabla y Looper:
  • rellenar hacia abajo. En este caso, las filas se agregan al final del control, utilizando las siguientes funciones:
    LooperAddIWAgrega una fila como ventana interna al final de un control Looper rellenado mediante programación.
    LooperAddLineAñade una fila al final de un control Looper.
    TableAddLineAgrega una fila en:
    • un control Tabla,
    • un control Tabla TreeView.
    La ventana de espera aparece en la parte inferior del control. Este era el único modo disponible hasta la versión 2024.
  • rellenar hacia arriba. En este caso, las nuevas filas se agregan antes de las filas existentes, utilizando las siguientes funciones:
    Novedad versión 2025
    LooperAddBeginning
    Agrega una fila al inicio de un control Looper infinito. La fila se inserta antes de la primera fila del control Looper. La barra de desplazamiento del control Looper permanece en la misma posición.
    Novedad versión 2025
    LooperAddIWBeginning
    Agrega una fila que contiene una ventana interna al inicio de un control Looper infinito. La fila se inserta antes de la primera fila del control Looper. La barra de desplazamiento del control Looper permanece en la misma posición.
    Novedad versión 2025
    TableAddBeginning
    Agrega una fila en la parte superior de un control Tabla infinita. La fila se inserta antes de la primera fila del control Tabla. La posición de desplazamiento del control Tabla no cambia.
    Estas funciones no cambian la posición del desplazamiento. La ventana de espera aparece en la parte superior del control.
Existen dos eventos WLanguage que diferencian el modo en que se cargan los datos:
  • Adición de elementos adicionales hacia arriba. Este evento se llama cuando el usuario se desplaza hacia arriba.
  • Adición de elementos adicionales hacia abajo. Este evento se llama cuando el usuario se desplaza hacia abajo.
También puede agregar elementos hacia arriba y hacia abajo. En este caso:
  • La ventana de espera puede mostrarse de forma simultánea en la parte superior e inferior del control. En ambos casos, se utiliza la misma ventana.
  • Si el control Tabla o Looper está vacío y no tiene barra de desplazamiento después de abrirlo o redimensionarlo, se ejecuta el evento "Adición de elementos adicionales hacia abajo".
Nota: Las funciones TableAddInProgress y LooperAddInProgress tienen en cuenta el modo en que se cargan los datos y permiten manipular la ventana de espera que se muestra tanto en la parte superior como en la parte inferior del control.
WINDEV Mobile Importante: No se puede rellenar un control hacia arriba si la funcionalidad "pull-to-refresh" está activada (y viceversa).
Programación
WINDEVWINDEV Mobile Las siguientes funciones permiten manipular los controles Tabla y Looper infinitos:
Novedad versión 2025
LooperAddBeginning
Agrega una fila al inicio de un control Looper infinito. La fila se inserta antes de la primera fila del control Looper. La barra de desplazamiento del control Looper permanece en la misma posición.
LooperAddInProgressObtiene o establece el modo de visualización de la ventana interna de carga utilizada cuando se cargan elementos adicionales en un control Looper infinito.
Novedad versión 2025
LooperAddIWBeginning
Agrega una fila que contiene una ventana interna al inicio de un control Looper infinito. La fila se inserta antes de la primera fila del control Looper. La barra de desplazamiento del control Looper permanece en la misma posición.
Novedad versión 2025
TableAddBeginning
Agrega una fila en la parte superior de un control Tabla infinita. La fila se inserta antes de la primera fila del control Tabla. La posición de desplazamiento del control Tabla no cambia.
TableAddInProgressObtiene o establece el modo de visualización de la ventana interna de carga utilizada cuando se cargan elementos adicionales en un control Tabla infinita.
WEBDEV - Código Navegador Las siguientes funciones permiten manipular los controles Tabla y Looper infinitos:
LooperAddInProgressObtiene o establece el modo de visualización de la ventana interna de carga utilizada cuando se cargan elementos adicionales en un control Looper infinito.
TableAddInProgressObtiene o establece el modo de visualización de la ventana interna de carga utilizada cuando se cargan elementos adicionales en un control Tabla infinita.
Versión mínima requerida
  • Versión 21
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 13/02/2025

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