@Source: Event y Screen
Sentencias exclusivas de archivos Screen.
Event
Event NombreEstandar
...
EndEvent
Event 'Etiqueta' NumeroTecla
...
EndEvent
Dos formas: evento estándar (nombre bare, sin comillas) o evento personalizado atado a una tecla de función (nombre entre comillas + número de tecla, 1-24, es decir F1-F24; F13-F24 vía Shift).
Eventos estándar
| Evento | Cuándo dispara |
|---|---|
Enter | Al presionar Enter (sin tecla de función activa). CurrentInput() identifica qué Input tenía foco, decodificado de la posición del cursor tras EXFMT. |
Close | Fijo a F3 en el DSPF generado (CF03) — siempre corre (incluso vacío) y termina la pantalla; no requiere declaración para atar la tecla. |
Load | Una sola vez, antes del primer despliegue — típicamente contiene el For Each/LoadRow() que llena el DataGridView. Page Up/Down son scroll nativo sobre lo ya cargado; este evento nunca vuelve a correr. |
Refresh | Al presionar F5, si F5 está declarada en @FunctionKeys del .warpcfg y no está tomada por un Event 'Nombre' 5 personalizado. |
Init | Una sola vez, la primera vez que arranca esta pantalla, antes del primer despliegue. No hace nada si no se declara. Único lugar de un Screen donde Member(...) es válido — ver Reportes con Member()/Export(). |
Eventos personalizados
Event 'BuscarCliente' 4
Message("Se presionó F4", Info)
EndEvent
La etiqueta mostrada en la línea de atención de la pantalla se configura en @FunctionKeys del .warpcfg del proyecto (ver Proyecto), no en el propio Event.
Message
Message(texto, Error|Warning|Info)
Muestra un mensaje en la línea de mensaje de la pantalla: Error (rojo), Warning (amarillo), Info (color normal de texto). Se muestra en el siguiente refresco de pantalla y se limpia después de un ciclo.
LoadRow / RefreshSelectRow / For Each Row
Exclusivos de pantallas con DataGridView — ver la guía completa: DataGridView.
| Sentencia | Uso |
|---|---|
LoadRow() | Sin argumentos. Toma los valores actuales de las variables atadas a cada Column y agrega una fila a la grilla. Sólo válida dentro de un For Each en el cuerpo de Event Load (ese For Each debe declarar Index). |
RefreshSelectRow() | Sin argumentos. Inversa de LoadRow(): relee la fila bajo el cursor y escribe cada columna (incluidas Hidden) de vuelta en su variable atada. Válida en cualquier Event de un Screen con DataGridView. |
For Each Row ... EndFor | Recorre todas las filas ya cargadas en el subfile (no la tabla), escribiendo cada Column en su variable atada antes de cada iteración. Sin Index/Where/When None. |
CurrentInput
&Control = CurrentInput()
Devuelve el Nombre del Input/DataGridView (de @Layout) que tiene el foco actualmente. Para un DataGridView, coincide si el cursor cae en cualquier parte de su rectángulo (encabezado, fila de atención o cualquier fila de datos), no sólo en una celda exacta. Sólo válida dentro del cuerpo de un Event — usarla en cualquier otro lugar es un error.