En numerosas ocasiones nos encontraremos con la necesidad de recorrer todas las líneas del grid, por ejemplo para actualizar el valor de una columna, guardar las líneas en una tabla auxiliar, etc. Ésto es sencillo si utilizamos las funciones del sistema de Grid:
Get Max Grid Rows(FC Grid, Total_Rows) -> Ésta system function nos devuelve en el segundo parámetro el número total de líneas del grid indicado en el primer parámetro.
Get Grid Row(FC Grid, RowId) -> Ésta system function nos devuelve en las GC el número de línea indicado como segundo parámetro.
Y con éstas funciones, un bucle para iterar sobre todas las líneas y una variable donde llevemos la línea actual comenzando en la línea 1 e incrementando en 1 en cada iteracción lo tendremos hecho (comprobando previamente que existen líneas en el grid).
Ejemplo práctico:
VA frm_55_LineaActual_MATH01 = 1
Get Max Grid Rows(FC Grid, VA frm_55_TotalLineas_MATH01)
If VA frm_55_TotalLineas_MATH01 is not equal to <Zero>
While VA frm_55_LineaActual_MATH01 is less than or equal to VA frm_55_TotalLineas_MATH01
Get Grid Row(FC Grid, VA frm_55_LineaActual_MATH01)
//
// Operaciones a realizar con la línea
//
GC CatCod1 = FC CatCod1
//
F4211.Update
GC Order Co = TK Order Company (Order Number)
GC Order Number = TK Document (Order No, Invoice, etc.)
GC Or Ty = TK Order Type
GC Line Number = TK Line Number
VA frm_55_SecuencialFiltro_JOBN -> TK Work Station ID
//
VA frm_55_LineaActual_MATH01 = [VA frm_55_LineaActual_MATH01]+1
End While
End If
No hay comentarios:
Publicar un comentario