我使用从xsd schema生成的DataSource.我需要从DataSource获取所有字段,也是嵌套的字段.我的问题与Smartclient论坛论坛中的这个主题一样,当我使用DataSource.getFields()它只返回第一级字段时.
有谁知道如何获得嵌套字段?
\n我找到了解决方案。要获取嵌套字段,可以使用 DataSource.getDataSource(ID)。例如,如果 dataSource 是 main DataSource,则可以这样做: \n
\n\n private List<DataSourceField> getAllFields(DataSource dataSource)\n {\n List <DataSourceField> fieldList = new ArrayList<DataSourceField>();\n DataSourceField [] fields = dataSource.getFields();\n fieldList.addAll(Arrays.asList(fields));\n for (DataSourceField field : fields);\n {\n String fieldName = field.getName();\n DataSource ds = DataSource.getDataSource(fieldName);\n if (ds != null)\n {\n fieldList.remove(field);\n DataSourceField[] nFields = ds.getFields();\n fieldList.addAll(Arrays.asList(nFields));\n getAllFields(ds);\n }\n }\n return fieldList;\n }\n\nRun Code Online (Sandbox Code Playgroud)\n