主要有两个原因
报表提供的json主数据如下。
{
"Master": [
{
"Id": "3183a9cb-a546-43d2-aa6a-a0b3bc00d7fa",
"MKBarcode": "011712111052",
"SampleNo": "171214003",
"HospitalBarcode": "",
"HospitalName": "011712111052",
"HospitalCode": "011712",
"PatientName": "蒋之存"
}
],
"Details": [
{
//子表也要有这个字段。 字段名要一致,数值也要根据主表的一致
"ReportDetailId": "b2b4fda5-b616-4a01-8bef-0d8aea7e992a",
"ReportId": "3183a9cb-a546-43d2-aa6a-a0b3bc00d7fa",
"TestItemCode": "171214003",
"TestItemName": "嗜麦芽寡养单胞菌",
"ReferenceValue": "其它",
"TestValue": "",
"TestUnit": "",
"Hl": "",
"InstrumentCode": "",
"TestMethod": "",
"TestTime": "1900-01-01 00:00:00",
"SortCode": "1 ",
"ODValue": "",
"IsCMA": "",
"ResultTypeName": "培养结果阳性",
"TestAimsCode": "",
"TestAims": ""
}
],
"ThreeDetails": [
{
"Id": "05b563c8-f03c-4b87-95ec-709f57e97c50",
"ReportId": "3183a9cb-a546-43d2-aa6a-a0b3bc00d7fa",
//这个字段必须一致,字段名要一致,数值也要根据主表的一致
"ReportDetailId": "b2b4fda5-b616-4a01-8bef-0d8aea7e992a",
"SortCode": "1 ",
"DrugCode": "",
"DrugName": "左氟沙星",
"TestValue": ">8",
"Sensitivity": "耐药",
"ReferenceValue": ""
},
{
"Id": "2a07c683-c934-4056-a458-28e67fa73b16",
"ReportId": "3183a9cb-a546-43d2-aa6a-a0b3bc00d7fa",
//这个字段必须一致,字段名要一致,数值也要一致
"ReportDetailId": "b2b4fda5-b616-4a01-8bef-0d8aea7e992a",
"SortCode": "1 ",
"DrugCode": "",
"DrugName": "氨曲南",
"TestValue": ">16",
"Sensitivity": "耐药",
"ReferenceValue": ""
}
]
}
- Details 和 ThreeDetails之间的【主从关系字段】是 “ReportDetailId“, 两个都必须有这个字段。 且字段名字也要一样,都必须包含字段名为 ReportDetailId 。且值一样
- 字段名 Details 和 ThreeDetails 只能用一次。 不要填两个地方。我就犯了个错误, 把ThreeDetails填在了 【子报表】对象的 【报表主对象】 的属性 “xml表名“ 中,同时在子报表的 “XML表名” 也填了ThreeDetails 这样就导致子报表的 明细网格 找不到数据了。因为已经先匹配给子报表的主对象了。