Pregunta

Los datos de SAP se devuelve como un JCo.Table. Sin embargo, no queremos que se muestren todas las columnas de la vista. Por lo tanto, lo que hemos hecho es que hemos creado un archivo llamado display.xml , que tiene las columnas JCO.Table a visualizar. La display.xml se convierte a una lista y cada campo se verifica si está presente en la lista de visualización (ver el código de abajo) que es redundante de segunda fila en adelante.

final Table outputTable = jcoFunction.getTableParameterList().
                    getTable("OUTPUT_TABLE");
    final int numRows = outputTable.getNumRows();
    for (int i = 0; i < numRows; i++) {         
        final FieldIterator fields = outputTable.fields();
        while (fields.hasNextFields()) {
           final JCO.Field recordField = fields.nextField();
           final String sapFieldName = recordField.getName();
           final DisplayFieldDto key = new DisplayFieldDto(sapFieldName);
           if (displayFields.contains(key)) {
               System.out.println("recordField.getName() = " 
                          + recordField.getName());
               final String sapFieldName = (String)recordField.getValue();      
           } else {
            // ignore the field.
           }
         }
    }

¿Cuál es la mejor manera de filtrar los campos en JCo? ¿Puedo repetir la columna sabia? Gracias:)

¿Fue útil?

Solución

En lugar de obtener todos los campos del registro de la tabla, y comprobando los campos presentes en displayFields, usted podría tomar solamente los campos del registro que están en displayFields. El siguiente código supongamos que displayFields es una lista de cadena

for (int i = 0; i < ouputTable.getNumRows(); i++) {
   outputTable.setRow(i);
   Iterator it = displayField.iterator();
   // get fields of current record
   while(it.hasNext()){
      String fieldName = (String)it.next();
      String value = outputTable.getString(fieldName);
      // do what you need to do with the field and value
   }
}

Espero que esta ayuda,
Saludos, Guillaume

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top