# XP.ReportEngine 模板定义规范 ## **一、模板结构总览** 模板使用JSON格式定义,分为以下几个核心部分: 1.  `document`:文档基础配置(页面尺寸、边距等)。 2.  `pages`:页面列表,每个页面包含元素列表。 3.  `elements`:页面中的具体元素(文本、表格、图片等)。 4.  `styles`:预定义的样式,可复用。 5.  `dataKey`:数据绑定字段,关联业务数据。 ## **二、首页布局规范** **模板路径**:`Templates/Homepage.json` 代码图标/24_new/复制 ``` { "document": { "pageSize": "A4", "orientation": "Portrait", "margins": { "top": 30, "right": 20, "bottom": 20, "left": 20 } }, "pages": [ { "type": "homepage", "elements": [ { "type": "text", "content": "平面CT检测报告", "style": "title", "position": [10, 10] }, { "type": "text", "content": "报告编号:${reportId}", "style": "subtitle", "position": [10, 40] }, { "type": "text", "content": "检测日期:${inspectionDate}", "style": "subtitle", "position": [10, 60] }, { "type": "text", "content": "样品名称:${sampleName}", "style": "subtitle", "position": [10, 80] }, { "type": "divider", "position": [10, 100], "width": 190 }, { "type": "table", "dataKey": "summaryData", "columns": [...], "position": [10, 120], "size": [190, 60] } ] } ], "styles": { // ... 样式定义(见下文) } } ``` **关键要素说明**: 1.  **标题与元数据**:顶部显示报告标题、编号、日期和样品名称。 2.  **摘要表格**:显示关键统计信息(如缺陷数量、合格率等),通过`summaryData`绑定数据。 3.  **分隔线**:视觉分隔标题与主体内容。 ## **三、测量数据布局规范** **模板路径**:`Templates/MetricData.json` 代码图标/24_new/复制 ``` { "pages": [ { "type": "metricData", "elements": [ { "type": "text", "content": "测量数据详情", "style": "sectionTitle", "position": [10, 10] }, { "type": "table", "dataKey": "measurements", "columns": [ { "header": "参数名称", "field": "parameter" }, { "header": "测量值", "field": "value" }, { "header": "单位", "field": "unit" } ], "position": [10, 30], "size": [190, 100] } ] } ], "styles": { // ... 样式定义(见下文) } } ``` **关键要素说明**: ●  表格绑定`measurements`数据,列通过`field`属性绑定数据字段。 ●  支持动态行数,自动调整表格高度。 ## **四、缺陷检测布局规范** **模板路径**:`Templates/DefectDetails.json` 代码图标/24_new/复制 ``` { "pages": [ { "type": "defectDetails", "elements": [ { "type": "text", "content": "缺陷检测结果", "style": "sectionTitle", "position": [10, 10] }, { "type": "grid", "dataKey": "defects", "columns": [ { "type": "image", "dataKey": "imagePath", "size": [90, 90], "border": true }, { "type": "text", "content": "缺陷类型:${type}", "style": "gridText", "width": 100 }, { "type": "text", "content": "位置:X=${x}, Y=${y}", "style": "gridText", "width": 100 } ], "position": [10, 30], "colWidth": 100, "rowHeight": 100 } ] } ], "styles": { "gridText": { "font": "Arial", "size": 10, "align": "left" } } } ``` **关键要素说明**: 1.  **网格布局**:每行显示缺陷图片、类型和位置信息。 2.  使用`grid`元素自动排版多缺陷数据,支持水平滚动或分页。 3.  图片路径通过`imagePath`字段绑定,文本使用数据绑定语法(如`X=${x}`)。 ## **五、BGA检测布局规范** **模板路径**:`Templates/BGAInspection.json` 代码图标/24_new/复制 ``` { "pages": [ { "type": "bgaDetails", "elements": [ { "type": "text", "content": "BGA焊点检测结果", "style": "sectionTitle", "position": [10, 10] }, { "type": "image", "dataKey": "bgaTopViewImage", "position": [10, 30], "size": [190, 150], "border": true, "annotations": [ { "type": "point", "x": ${defectX}, "y": ${defectY}, "color": "red", "size": 5 } ] }, { "type": "table", "dataKey": "bgaMetrics", "columns": [ "引脚编号", "焊锡高度", "偏移量" ], "position": [10, 190], "size": [190, 80] } ] } ] } ``` **关键要素说明**: 1.  **图片标注**:在BGA俯视图上标记缺陷位置(通过`annotations`)。 2.  **表格显示参数**:焊锡高度、偏移量等数据。 3.  支持动态标注点,绑定缺陷坐标数据。 ## **六、气泡检测布局规范** **模板路径**:`Templates/VoidInspection.json` 代码图标/24_new/复制 ``` { "pages": [ { "type": "voidDetails", "elements": [ { "type": "text", "content": "气泡检测结果", "style": "sectionTitle", "position": [10, 10] }, { "type": "image", "dataKey": "voidImage", "position": [10, 30], "size": [190, 150], "border": true, "annotations": [ { "type": "circle", "x": ${bubbleX}, "y": ${bubbleY}, "radius": ${bubbleRadius}, "color": "blue" } ] }, { "type": "text", "content": "总气泡数:${voidCount}", "style": "resultText", "position": [10, 190] }, { "type": "text", "content": "最大气泡体积:${maxVoidVolume} mm³", "style": "resultText", "position": [10, 210] } ] } ], "styles": { "resultText": { "font": "Arial", "size": 14, "bold": true } } } ``` **关键要素说明**: 1.  **气泡可视化**:在图像上用圆形标注气泡位置、半径。 2.  **统计结果**:显示总数量、最大体积等关键指标。 3.  支持多气泡标注,数据绑定气泡坐标和尺寸。 ## **七、通孔填锡率检测布局规范** **模板路径**:`Templates/ViaFillInspection.json` 代码图标/24_new/复制 ``` { "pages": [ { "type": "viaFillDetails", "elements": [ { "type": "text", "content": "通孔填锡率检测结果", "style": "sectionTitle", "position": [10, 10] }, { "type": "image", "dataKey": "viaImage", "position": [10, 30], "size": [190, 150], "border": true, "annotations": [ { "type": "rectangle", "x": ${viaX}, "y": ${viaY}, "width": ${viaWidth}, "height": ${viaHeight}, "color": "green" } ] }, { "type": "text", "content": "平均填锡率:${avgFillRate}%", "style": "resultText", "position": [10, 190] }, { "type": "progressBar", "value": ${avgFillRate}, "position": [10, 220], "size": [190, 20], "color": "${fillRateColor(avgFillRate)}" } ] } ], "functions": { "fillRateColor(value)": "return value >= 90 ? 'green' : value >= 70 ? 'orange' : 'red';" } } ``` **关键要素说明**: 1.  **填锡率图示**:用矩形标注通孔位置,进度条显示填锡率。 2.  **颜色条件绑定**:通过函数`fillRateColor`根据数值动态设置颜色。 3.  支持多通孔标注,绑定位置和尺寸数据。 ## **八、样式定义示例** 代码图标/24_new/复制 ``` "styles": { "title": { "font": "Arial", "size": 24, "bold": true, "color": "#000000" }, "subtitle": { "font": "Arial", "size": 16, "italic": true, "color": "#666666" }, "gridText": { "font": "Arial", "size": 10, "align": "left" }, "resultText": { "font": "Arial", "size": 14, "bold": true } } ``` **关键要素说明**: ●  样式可复用,通过`style`属性引用。 ●  支持字体、大小、颜色、对齐等属性配置。 **# 总结** ●  **模块化设计**:各检测模块独立为单独模板文件,可灵活组合。 ●  **数据绑定**:通过`${}`语法绑定业务数据(如`measurements`、`defects`等对象)。 ●  **动态布局**:支持表格自适应高度、图片标注、条件样式等高级功能。 ●  **可扩展性**:新增检测类型只需定义对应模板文件即可。 **备注**:实际使用时,需根据具体业务数据模型调整`dataKey`和字段名称,确保模板与输入数据匹配。