Question

Les données de SAP est retourné comme JCo.Table. Cependant, nous ne voulons pas afficher toutes les colonnes de la vue. Alors, 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 une liste et chaque champ est vérifiée si elle est présente dans la liste d'affichage (voir ci-dessous le code) qui est redondant à partir de la deuxième rangée en avant.

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 JCo? Puis-je itérer colonne sage? Merci:)

Était-ce utile?

La solution

Au lieu d'obtenir tous les champs de l'enregistrement de la table et les vérifier contre les champs présents dans displayFields, vous pouvez ne prendre que 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top