miércoles, 4 de mayo de 2016

[JD Edwards] Recorrer Líneas Seleccionadas Grid

En el anterior post vimos cómo recorrer todas las líneas del grid.

En ésta ocasión veremos cómo recorrernos sólo las líneas seleccionadas del grid cuando lo tenemos configurado como "Multiple Select". Ésto es muy práctico cuando por ejemplo queremos en un campo FC queremos visualizar el sumatorio del importe de las líneas seleccionadas, cuando queremos seleccionar las líneas para procesarlas en una segunda pantalla, cuando queremos filtrar las líneas seleccionadas en un informe, etc.

Para ello, necesitaremos usar las siguientes funciones de sistema:

Get Selected Grid Row Count(FC Grid, VA frm_SelectedCount_LNID) -> Obtenemos el número total de líenas seleccionadas en el segundo parámetro del grid indicado en el primer parámetro.

Get Selected Grid Row Number(FC Grid, VA frm_GridRowNumber_INT01) -> Nos devuelve en la variable del segundo parámetro el id de la primera línea seleccionada.

Get Grid Row(FC Grid, VA frm_GridRowNumber_INT01) -> Nos devuelve en GC el valor de la fila indicada en el segundo parámetro.

Get Next Selected Row(FC Grid, VA frm_GridRowNumber_INT01, VA frm_GridRowNumber_INT01) -> Nos devuelve en la variable del segundo parámetro el id de la siguiente línea seleccionada.


Para ello, obtenemos el nº total de líneas seleccionas y si es mayor de 0, es decir, hay líneas seleccionadas, obtenemos la primera línea e iteramos sobre el resto de líneas seleccionadas mientras haya en un bucle.



Ejemplo práctico:

//
//Obtiene el nº de líneas seleccionadas
//
Get Selected Grid Row Count(FC Grid, VA frm_SelectedCount_LNID)
//
//Si hay seleccionadas se procesan
//
If VA frm_SelectedCount_LNID is greater than Zero
  //
  //Obtiene el nº de la 1ª línea seleccionada
  //
  Get Selected Grid Row Number(FC Grid, VA frm_GridRowNumber_INT01)
  //
  //Mientras haya seleccionadas procesamos.
  //
  While VA frm_GridRowNumber_INT01 is greater than Zero
    //
    //Obtiene los valores de la línea - en GC
    //
    Get Grid Row(FC Grid, VA frm_GridRowNumber_INT01)
    //
    //Obtiene la siguiente línea seleccionada
    //
    Get Next Selected Row(FC Grid, VA frm_GridRowNumber_INT01, VA frm_GridRowNumber_INT01)
  End While
End If

2 comentarios:

  1. Hola, gracias por tu tiempo estoy comenzando con JDE, vengo de PeopleSoft y me resultan muy practicos tus ejemplos.
    Solo eso, Gracias.

    ResponderEliminar