2010-05-06 6 views
1

Les données de SAP sont renvoyées sous forme de tableau JCo.Table. Cependant, nous ne voulons pas afficher TOUTES les colonnes dans la VUE. Donc, ce que nous avons fait est, nous avons créé un fichier appelé display.xml qui a les colonnes JCO.Table à afficher. Le display.xml est converti en Liste et chaque champ est vérifié s'il est présent dans la liste d'affichage (voir le code ci-dessous) qui est redondant à partir de la deuxième rangée.JCo | Comment itérer colonne sage

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

Quelle est la meilleure façon de filtrer les champs dans JCo? Puis-je itérer en colonne? Merci :)

Répondre

3

Au lieu d'enregistrer tous les champs de la table et de les vérifier par rapport aux champs présents dans displayFields, vous pouvez prendre uniquement les champs de l'enregistrement qui se trouvent dans displayFields. Le code suivant suppose que displayFields est une liste de chaînes

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

espérons que cette aide,
Cordialement,
Guillaume

+0

Merci. Cela m'a aidé. – HanuAthena

Questions connexes