${RES.getString("report.detail.header")}


<#assign index = 0/> <#list results?keys as mapKey> <#assign rowSpan = 0/>        <#list results[mapKey] as singleRes> <#assign rowSpan = rowSpan + singleRes.getSubCompnentSize()/> <#assign devTypeIndex = 0/> <#list results[mapKey] as singleRes> <#assign devIndex = 0/> <#assign devRowSpan = singleRes.getSubCompnentSize()/> <#assign resultMap = singleRes.getUpgradeStrKeyDetails()/> <#list resultMap?keys as compResKey> <#assign resultList = resultMap[compResKey]/> <#list resultList as compResult> <#if rowSpan gt 1> <#if devTypeIndex == 0> <#else> <#if devRowSpan gt 1> <#if devIndex == 0> <#else> <#if compResult.isSuc()> <#assign index = index + 1/> <#assign devIndex = devIndex+ 1/> <#assign devTypeIndex = devTypeIndex + 1/>
[${RES.getString("report.detail.total")}]
${RES.getString("report.detail.table.header.num")} ${RES.getString("report.detail.table.header.devicetype")} ${RES.getString("report.table.header.ip.address")} ${RES.getString("report.detail.table.header.device.sn")} ${RES.getString("report.detail.table.header.upgrade.model")} ${RES.getString("report.detail.table.header.brfore.version")} ${RES.getString("report.detail.table.header.after.version")} ${RES.getString("report.detail.table.header.upgrade.result")} ${RES.getString("report.detail.table.header.details")}
 ${index + 1}  ${singleRes.deviceEntity.getProductTypeForReport()?default(singleRes.deviceEntity.productUniqueId)}  ${singleRes.deviceEntity.getProductTypeForReport()?default(singleRes.deviceEntity.productUniqueId)}  ${singleRes.deviceEntity.ip}   ${singleRes.deviceEntity.getSerialNumber()}  ${singleRes.deviceEntity.ip}   ${singleRes.deviceEntity.getSerialNumber()}  ${compResKey}  ${compResult.getFromVersion()}  ${compResult.getToVersion()} <#else> ${RES.getString(compResult.getStatus().toString())}  ${compResult.getResultMsg()}