
【概述】大表讲解T_BOS_PRINTTASKDETAIL
存储套打的页面数据,目前系统针对套打生成的页面数据,会存储在当前表中
【功能细则】
<0>表逻辑,一条记录存储一页,支持查询指定范围的页面
T_BOS_PRINTTASKENTRY——打印任务存储表
T_BOS_PRINTTASKDETAIL——打印数据表
一条打印任务(T_BOS_PRINTTASKENTRY)会有多个套打页面(T_BOS_PRINTTASKDETAIL)

<1>后台打印(T_BOS_PRINTTASKENTRY FPERSISTENTTYPE == 0)
场景:由于打印是实时计算的,针对大规模数据场景,会占用系统资源而且计算过久,一般的建议创建后台打印任务

概念:在生成后台任务后,会写入T_BOS_PRINTTASK表,
而后根据套打设置生成多个打印任务,打印任务的类型(T_BOS_PRINTTASKENTRY FPERSISTENTTYPE == 0)
```sql
select entry.fentryid,entry.fpersistenttype,task.* from t_bos_printtaskentry entry
left join t_bos_printtask task on entry.fid = task.fid
--left join t_bos_printtaskdetail detail on detail.fentryid = entry.fentryid
where entry.fpersistenttype = 0
```

清理说明:后台打印任务生成的页面会一直存在数据库中,直到后台打印任务删除
<2>界面直接预览打印(T_BOS_PRINTTASKENTRY FPERSISTENTTYPE == 1)
说明:在生成超过100页时,会生成一个临时的打印任务在后台,避免生成超大内存把服务器资源用尽
概念:在套打时打到存储到需要持久化的阈值,就会生成一个打印任务(T_BOS_PRINTTASKENTRY FPERSISTENTTYPE == 1)
```sql
select entry.fentryid,entry.fpersistenttype,detail.* from t_bos_printtaskentry entry
--left join t_bos_printtask task on entry.fid = task.fid
left join t_bos_printtaskdetail detail on detail.fentryid = entry.fentryid
where entry.fpersistenttype = 1
```
清理说明:一般的系统会在两个时间点删除,一是在操作打印的界面关闭时删除(如关闭采购订单列表),但是存在场景是直接关闭浏览器,不会关闭视图无法监听的情况;二是增加了一个执行计划,每天清理界面直接预览打印(FPERSISTENTTYPE == 1)的页面
![Image_20230129121