Java JCo |如何按列迭代

Java JCo |如何按列迭代,java,sap,jco,Java,Sap,Jco,来自SAP的数据作为JCo.Table返回。 但是,我们不希望显示视图中的所有列。 因此,我们所做的是,我们创建了一个名为display.xml的文件,其中包含要显示的JCO.Table列。 display.xml被转换为一个列表,每个字段都被验证是否存在于显示列表中(见下面的代码),该列表从第二行开始是多余的 final Table outputTable = jcoFunction.getTableParameterList(). getTable("

来自SAP的数据作为JCo.Table返回。 但是,我们不希望显示视图中的所有列。 因此,我们所做的是,我们创建了一个名为display.xml的文件,其中包含要显示的JCO.Table列。 display.xml被转换为一个列表,每个字段都被验证是否存在于显示列表中(见下面的代码),该列表从第二行开始是多余的

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.
           }
         }
    }
final Table outputTable=jcoFunction.getTableParameterList()。
getTable(“输出表”);
final int numRows=outputTable.getNumRows();
对于(inti=0;i
在JCo中过滤字段的更好方法是什么? 我可以按列进行迭代吗?
谢谢:)

您不必获取表记录的所有字段并对照displayFields中的字段进行检查,而可以只获取displayFields中的记录字段。 下面的代码假设displayFields是一个字符串列表

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
   }
}
for(int i=0;i
希望这有帮助,
问候,
纪尧姆