报表开发
通过报表设计器制作业务单据打印模板与统计报表,模板化输出、一处维护全局生效。
一、报表设计器
入口:系统管理 → 报表设计。在此维护所有打印模板,支持新建、编辑、复制、删除与按模块筛选。
| 模块标识 | 业务单据 |
|---|---|
| StockIn | 商品入库 |
| StockOut | 商品出库 |
| Sales | 销售单 |
| TempSales | 临时销售 |
| Return | 销售退货 |
| Comoditiles | 商品档案 |
| UD | 自定义记录 |
二、创建模板
- 进入「报表设计」,点击新增模板。
- 填写模板名称并选择所属模块(决定该模板应用于哪类单据)。
- 在编辑区粘贴模板内容,或通过上传文件导入 HTML 模板。
- 保存后,对应单据的打印页即自动使用该模板。
三、模板语法
模板为 HTML 片段,其中以双花括号包裹的内容会被运行时替换。
1. 变量替换
{{CompanyName}} <!-- 公司名称 -->
{{Address}} <!-- 公司地址 -->
{{stockId}} <!-- 单据编号 -->
{{EditUserName}} <!-- 经办人 -->
{{PrintMan}} <!-- 打印人 -->
2. 格式化管道
在变量后以 | 分隔可指定输出格式:
{{PrintDate|yyyy-MM-dd}} <!-- 日期按年月日输出 -->
{{PrintDate|yyyy-MM-dd HH:mm}} <!-- 日期时间 -->
{{Prices|0.00}} <!-- 金额保留两位小数 -->
{{TotalNum|0}} <!-- 数量取整 -->
3. 明细循环
单据明细行使用 {{#each items}} 与 {{/each}} 包裹,循环体内使用明细字段:
<table>
<tr><th>商品名称</th><th>规格</th><th>单位</th><th>数量</th><th>金额</th></tr>
{{#each items}}
<tr>
<td>{{ComoditiesName}}</td>
<td>{{ModelId}}</td>
<td>{{UnitId}}</td>
<td>{{TotalNum|0}}</td>
<td>{{SuppliMoney|0.00}}</td>
</tr>
{{/each}}
</table>
四、默认模板示例
新建模板时若未填写内容,系统会自动生成默认模板。默认模板包含公司抬头、单号、打印日期与商品明细表,可在此基础上修改:
<div style="text-align:center;margin-bottom:14px;">
<h1 style="font-size:22px;margin:0;">{{CompanyName}}</h1>
<h2 style="font-size:16px;margin:6px 0;">单据打印</h2>
</div>
<table>
<tr>
<td>单号:{{stockId}}</td>
<td style="text-align:right;">打印日期:{{PrintDate|yyyy-MM-dd}}</td>
</tr>
</table>
<!-- 明细循环见上文 -->
五、模板管理
| 操作 | 说明 |
|---|---|
| 编辑 | 修改名称、模块与模板内容,保存后立即生效 |
| 复制 | 以「(副本)」后缀复制为新模板,便于基于现有模板二次开发 |
| 删除 | 删除模板后,对应单据将无法使用该模板打印 |
同一模块可维护多个模板,打印时按业务需要选择;「报表设计」仅超级管理员可维护。
六、统计报表
入口:报表中心 → 统计报表。该模块提供销售、库存、财务等经营数据的统计汇总,辅助经营决策。统计结果可导出/打印输出。
七、自定义记录报表
为自定义记录(模块标识 UD)创建模板时,循环体中可使用该记录类型已设计的字段名作为变量,实现个性化表单打印。
小贴士:模板内支持内联样式(style 属性),建议保持字体 12px 左右以保证打印清晰;纸张方向与边距可在浏览器打印设置中调整。