DynamicObjectCollection 与 DataSet 相互转换原创
金蝶云社区-Yan0211
Yan0211
4人赞赏了该文章 853次浏览 未经作者许可,禁止转载编辑于2023年07月19日 17:32:57

QFilter qFilter = this.buildReportQFilter(AccessProcessConstant.RECOMMEND_KEY, queryParam.getFilter());

String selectField = "id,billno xxgs_strawbillno,xxgs_supplier.number xxgs_suppliercode,xxgs_supplier.number xxgs_suppliername,org.name orgname,xxgs_productinfo.xxgs_platetype xxgs_platformtype,xxgs_productinfo.xxgs_qualifications xxgs_category,billstatus xxgs_strawbillstatus,creator xxgs_strawcreater,createtime xxgs_strawcreatedate,auditdate xxgs_strawcompletedate,xxgs_capabilityasses xxgs_strawisassess,xxgs_trialinstallrepair xxgs_strawisrepair";

DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), AccessProcessConstant.RECOMMEND_KEY, selectField, qFilter.toArray(), "createtime");

if (!dataSet.isEmpty()) {

    DataType[] fieldDataTypeArr = dataSet.getRowMeta().getDataTypes();

    String[] fieldNameArr = dataSet.getRowMeta().getFieldNames();

    DynamicObjectCollection dynamicObjectCollection = ORM.create().toPlainDynamicObjectCollection(dataSet);

    if (CollectionUtils.isNotEmpty(dynamicObjectCollection)) {

    // 尤其注意这个地方coll的构造,好多人都没有写出来。另外这个地方也不是太友好

        Collection<Object[]> coll = Lists.newArrayList();

        for (DynamicObject itemObj : dynamicObjectCollection) {

            Object[] objArr = new Object[fieldDataTypeArr.length];

            objArr[0] = itemObj.getLong("id");

            objArr[1] = itemObj.getString("xxgs_strawbillno");

            objArr[2] = itemObj.getString("xxgs_suppliercode");

            objArr[3] = itemObj.getString("xxgs_suppliername");

            objArr[4] = itemObj.getString("orgname");

            objArr[5] = itemObj.getLong("xxgs_platformtype");

            objArr[6] = itemObj.getLong("xxgs_category");

            objArr[7] = itemObj.getString("xxgs_strawbillstatus");

            objArr[8] = itemObj.getLong("xxgs_strawcreater");

            objArr[9] = itemObj.getDate("xxgs_strawcreatedate");

            objArr[10] = itemObj.getDate("xxgs_strawcompletedate");

            objArr[11] = itemObj.getString("xxgs_strawisassess");

            objArr[12] = itemObj.getString("xxgs_strawisrepair");

            coll.add(objArr);

        }

        RowMeta rowMeta = RowMetaFactory.createRowMeta(fieldNameArr, fieldDataTypeArr);

        CollectionInput inputs = new CollectionInput(rowMeta, coll);

        return Algo.create(this.getClass().getName()).createDataSet(inputs);

    }

}


赞 4