0

我尝试了几种方法都无济于事。下面的屏幕截图显示了一个带有总计的网格,然后是小计,然后是详细信息。我需要稍微反转这个网格,以便数据显示为详细信息、小计和总计。

电网现状

在这个例子中,我只展示了一个项目编号,IMCOPS;可以有多个项目编号。网格也按项目编号和任务编号分组,但用户可以更改分组或添加/删除列。我可以创建两个数组,一个包含总计,一个仅包含按顺序排列的详细信息。

以下数组是我目前用来构建网格的数组。索引 0 用于定义网格列。索引 1 是总计。索引 2 是一个垫片。索引 3 是小计。索引 4、5 和 6 是索引 3 的详细信息。然后重复该模式。

0:
    Prime Contract No: ""
    BC ID: ""
    Project Number: ""
    Task Number: ""
    Task Name: ""
    Task Cognizant Org: ""
    Hours MTD: ""
    Hours YTD: ""
__proto__: Object
1:
    Hours MTD: 542.3
    Hours YTD: 1690.2
    Project Number: "IMCOPS"
__proto__: Object
2:  null
3:
    Hours MTD: 177.1
    Hours YTD: 1325
    Task Number: "22.1.02"
__proto__: Object
4:
    BC ID: "011500000"
    Project Number: "IMCOPS"
    Task Number: "22.1.02"
    Task Name: "TRAINING"
    Task Cognizant Org: "2200 - ENTERPRISE BUSINESS INFORMATION SERVICES"
    Hours MTD: 0
    Hours YTD: 0
    G2: "IMCOPS"
    G3: "2"
__proto__: Object
5:
    BC ID: "020100000"
    Project Number: "IMCOPS"
    Task Number: "22.1.02"
    Task Name: "TRAINING"
    Task Cognizant Org: "2200 - ENTERPRISE BUSINESS INFORMATION SERVICES"
    Hours MTD: 0
    Hours YTD: 0
    G2: "IMCOPS"
    G3: "2"
__proto__: Object
6:
    BC ID: "030100000"
    Project Number: "IMCOPS"
    Task Number: "22.1.02"
    Task Name: "TRAINING"
    Task Cognizant Org: "2200 - ENTERPRISE BUSINESS INFORMATION SERVICES"
    Hours MTD: 177.1
    Hours YTD: 1325
    G2: "IMCOPS"
    G3: "2"
__proto__: Object
7:
    Hours MTD: 1
    Hours YTD: 1
    Task Number: "22.1.02.2202"
__proto__: Object
8:
    BC ID: "030100000"
    Project Number: "IMCOPS"
    Task Number: "22.1.02.2202"
    Task Name: "2202 TRAINING"
    Task Cognizant Org: "2200 - ENTERPRISE BUSINESS INFORMATION SERVICES"
    Hours MTD: 1
    Hours YTD: 1
    G2: "IMCOPS"
    G3: "2"
__proto__: Object
9:
    Hours MTD: 142.2
    Hours YTD: 142.2
    Task Number: "22.1.02.2210"
__proto__: Object
10:
    BC ID: "030100000"
    Project Number: "IMCOPS"
    Task Number: "22.1.02.2210"
    Task Name: "2210 TRAINING"
    Task Cognizant Org: "2200 - ENTERPRISE BUSINESS INFORMATION SERVICES"
    Hours MTD: 142.2
    Hours YTD: 142.2
    G2: "IMCOPS"
    G3: "2"
__proto__: Object
11:
    Hours MTD: 222
    Hours YTD: 222
    Task Number: "22.1.02.2220"
__proto__: Object
12:
    BC ID: "030100000"
    Project Number: "IMCOPS"
    Task Number: "22.1.02.2220"
    Task Name: "2220 TRAINING"
    Task Cognizant Org: "2200 - ENTERPRISE BUSINESS INFORMATION SERVICES"
    Hours MTD: 222
    Hours YTD: 222
    G2: "IMCOPS"
    G3: "2"

更新

这是关于我希望实现的附加信息以及 Plunker 示例。下图左边是数组的样子,右边是我大致希望实现的。

之前和之后

这是我编写的一些代码的 Plunker 示例。我几乎让它工作了;但是,我没有拿起第一个“级别 1”,而“级别 0”(总计)出现了两次。请注意,这是我的问题的简单说明。初始数组可能具有 n 级的多个级别。

Plunker 示例

4

2 回答 2

0

您能否分享一个您希望最终结果看起来如何的快速模型(使用 Excel 或其他东西)?

SpreadJS 团队

于 2020-01-08T15:57:31.127 回答
0

我相信我已经解决了我的问题。在我的代码中,我无意中过早地删除了小计数组的最后一个元素。这是一个更新的 Plunker:

Plunker 解决方案

需要将我的更改折叠到我的项目中,看看它是否适用于多个级别的小计。

于 2020-01-21T18:46:07.220 回答