我尝试了几种方法都无济于事。下面的屏幕截图显示了一个带有总计的网格,然后是小计,然后是详细信息。我需要稍微反转这个网格,以便数据显示为详细信息、小计和总计。
在这个例子中,我只展示了一个项目编号,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 级的多个级别。