首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何迭代列wise

如何迭代列wise
EN

Stack Overflow用户
提问于 2010-05-06 10:47:36
回答 1查看 4.6K关注 0票数 1

来自SAP的数据以JCo.Table的形式返回。但是,我们不想显示视图中的所有列。因此,我们已经创建了一个名为display.xml的文件,该文件具有要显示的JCO.Table列。display.xml被转换为一个列表,并且每个字段是否存在于显示列表中(请参阅下面的代码),这从第二行开始是多余的。

代码语言:javascript
复制
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.
           }
         }
    }

在JCo中过滤字段的更好方法是什么?我可以迭代列吗?谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-06 12:36:27

与其获取表记录的所有字段并根据displayFields中的字段检查这些字段,不如只取displayFields中的记录字段。下面的代码假设displayFields是一个字符串列表

代码语言:javascript
复制
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
   }
}

希望这能帮上忙

致以敬意,

纪尧姆

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2780439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档