Domanda

I dati da SAP viene restituito come JCo.Table. Tuttavia, non vogliamo per visualizzare tutte le colonne nella vista. Quindi, ciò che abbiamo fatto è, abbiamo creato un file chiamato display.xml , che ha le colonne JCO.Table da visualizzare. display.xml viene convertito in un elenco e ogni campo viene verificato se è presente nella lista di visualizzazione (vedere il codice di seguito) che è ridondante dalla seconda fila in poi.

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.
           }
         }
    }

Qual è il modo migliore per filtrare i campi in JCo? Posso iterare colonna saggio? Grazie:)

È stato utile?

Soluzione

Invece di ottenere tutti i campi del record tavolo e li controllo contro i campi presenti in displayFields, si potrebbe prendere solo i campi del record che sono displayFields. Il codice seguente si supponga che displayFields è una lista di Stringa

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
   }
}

Spero che questo aiuti,
Saluti,
Guillaume

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top