跳转至

设计时打印模板管理(PrintDesignTimeController)

打印设计器设计时 API:JSON 打印模板(基于 Report.printTemplate)的增删改查与批量删除,以及供打印设计器解析数据源的 SQL/视图/表单 Schema 接口。

  • 接口类型:REST 资源
  • 基址${myapps.context-path.designer:}/api/designtime/applications(类级 @RequestMappingproduces = APPLICATION_JSON_VALUE
  • Tag:设计时-打印模块

公共说明

  • 鉴权:是(需 designerToken)。控制器继承自 AbstractDesignTimeController(基类为 @RestController),通过 Security.getDesignerIdFromToken(request) 从 designerToken JWT 中解析设计器用户。鉴权机制详见 index.md「鉴权说明」。
  • 路径变量{applicationId}{moduleId}{templateId} 均为**明文设计时 ID**(与 designer 其他控制器一致,非 runtime 的 DES 加密密文)。
  • 响应:统一 Resource(见 ../index.md「统一响应结构」)。成功 errcode=0;异常默认 errcode=500errmsg 为异常信息。
  • HTTP 方法:受 CommonSecurityFilter 限制,仅允许 GET/POST/HEAD/OPTIONS
  • HTTP 状态码:新建模板接口返回 201 Created@ResponseStatus),其余接口 200 OK;统一 Resource 仍以 errcode 表达业务结果。
  • 请求体约定:新建/保存模板接收原始 JSON 字符串(@RequestBody String content,对应完整 printTemplate JSON 文档);批量删除接收 JSON 字符串数组(@RequestBody String[])。
  • 模板范围:列表与详情仅覆盖 isPrint=1templateType=PRINT_JSON 的报表模板。

1. 获取打印模板列表

分页获取指定应用下的 JSON 打印模板列表,可按模块Id过滤、按关键字搜索。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/print/templates(完整:{designer-context}/api/designtime/applications/{applicationId}/print/templates
  • 鉴权:是(需 designerToken)
  • Tag:设计时-打印模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
moduleId query string 模块Id(按模块过滤)
searchword query string 名称/描述搜索关键字
pageNo query int 当前页数(缺省 1
linesPerPage query int 每页行数(缺省 10

请求示例

GET /api/designtime/applications/{applicationId}/print/templates?moduleId=&searchword=&pageNo=1&linesPerPage=10 HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataDataPackage<Report>(含分页字段与 datas)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 10,
    "pageNo": 1,
    "pageCount": 1,
    "rowCount": 2,
    "datas": [
      { "id": "...", "name": "打印模板名称", "parentId": "<moduleId>", "templateType": "...", "...": "..." }
    ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 获取打印模板详情

按模板Id读取打印模板,返回模板元数据与 printTemplate JSON 字符串(由前端设计器解析渲染)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/print/templates/{templateId}
  • 鉴权:是(需 designerToken)
  • Tag:设计时-打印模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
templateId path string 打印模板Id

响应

dataJSONObject,结构 {id, name, moduleId, templateType, printTemplate}。其中 moduleId 取自 Report.parentIdprintTemplate 为设计器 JSON 字符串。

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "id": "...",
    "name": "打印模板名称",
    "moduleId": "<moduleId>",
    "templateType": "PRINT_JSON",
    "printTemplate": "{...设计器 JSON 字符串...}"
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


3. 新建打印模板

在指定应用与模块下新建打印模板,请求体为完整的 printTemplate JSON 文档。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/{applicationId}/modules/{moduleId}/print/templates
  • 鉴权:是(需 designerToken)
  • Tag:设计时-打印模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
moduleId path string 模块Id
content body string(JSON) 完整 printTemplate JSON

请求体

对应打印设计器导出的完整 JSON 文档(含 nameversion、组件树、数据源绑定等)。

响应

dataJSONObject,仅含 id(新建模板Id)。HTTP 状态码 201 Created

{ "errcode": 0, "errmsg": "ok", "data": { "id": "<templateId>" }, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


4. 保存(更新)打印模板

按模板Id将最新 printTemplate JSON 写入 Report.printTemplate

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/{applicationId}/print/templates/{templateId}
  • 鉴权:是(需 designerToken)
  • Tag:设计时-打印模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
templateId path string 打印模板Id
content body string(JSON) 完整 printTemplate JSON

响应

dataJSONObject,含 idversion(取自 printTemplate.version,缺省 1)。

{ "errcode": 0, "errmsg": "ok", "data": { "id": "<templateId>", "version": 3 }, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


5. 删除打印模板(可批量)

按模板Id数组批量删除打印模板。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/{applicationId}/print/templates
  • 鉴权:是(需 designerToken)
  • Tag:设计时-打印模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
ids body string 模板Id数组(JSON 数组反序列化为 String[]

请求体

["<templateId1>", "<templateId2>"]

响应

dataString,固定为 "删除成功"

{ "errcode": 0, "errmsg": "ok", "data": "删除成功", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


6. 解析 SQL Schema

按给定 SQL 与数据源名解析出可用的列信息(用于打印设计器数据源字段映射,对应打印设计器内 hostRequestBridge.getSqlSchema)。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/{applicationId}/print/sql-schema
  • 鉴权:是(需 designerToken)
  • Tag:设计时-打印模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
content body string(JSON) sqldataSourceName 的对象

请求体

{ "sql": "SELECT id, name FROM tlk_xxx", "dataSourceName": "<数据源名>" }

响应

data:由 printDesignTimeService.parseSqlSchema 返回的 Schema 结构(列信息集合,结构以服务端实际返回为准)。

{ "errcode": 0, "errmsg": "ok", "data": "<Schema 结构>", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


7. 解析视图 Schema

按模块Id与视图Id解析视图的列信息(对应打印设计器内 hostRequestBridge.getViewSchema)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/print/view-schema
  • 鉴权:是(需 designerToken)
  • Tag:设计时-打印模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
moduleId query string 模块Id
viewId query string 视图Id

说明:两个 query 形参均标注 @RequestParam(默认必填)。

请求示例

GET /api/designtime/applications/{applicationId}/print/view-schema?moduleId=<moduleId>&viewId=<viewId> HTTP/1.1

响应

data:由 printDesignTimeService.parseViewSchema 返回的视图 Schema 结构(列信息集合,结构以服务端实际返回为准)。

{ "errcode": 0, "errmsg": "ok", "data": "<Schema 结构>", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


8. 解析表单 Schema

按模块Id与表单Id解析表单的字段信息(对应打印设计器内 hostRequestBridge.getFormSchema)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/print/form-schema
  • 鉴权:是(需 designerToken)
  • Tag:设计时-打印模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
moduleId query string 模块Id
formId query string 表单Id

说明:两个 query 形参均标注 @RequestParam(默认必填)。

请求示例

GET /api/designtime/applications/{applicationId}/print/form-schema?moduleId=<moduleId>&formId=<formId> HTTP/1.1

响应

data:由 printDesignTimeService.parseFormSchema 返回的表单字段 Schema 结构(结构以服务端实际返回为准)。

{ "errcode": 0, "errmsg": "ok", "data": "<Schema 结构>", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }