基本步骤
1.获取合成文件
- 水晶报表
传入参数调用水晶报表接口合成pdf,并返回访问地址
"Sunway.RptCreatePdf":{ REPORTID, 水晶报表取数据需要的sql参数 }
地址加入容器- pdf采集文件
查询附件表调用函数获取采集pdf的地址
地址加入容器- 上传附件
查询附件表调用函数获取上传文件的地址:对于xls、doc调用函数进行pdf转换
地址加入容器2.生成新文件
- 传入文件地址容器作为参数~调用函数合并多个pdf,得到新文件
- "CreatePDF.MergePdfFiles",{文件地址数组, 合成文件地址}
3.上传文件到ftp目录
- 定义服务端上传文件的路径
1)"CreatePDF.GetPDFUrl",{"Rawdata"}) : ELNPDF/REPORTS/
2)select PDFREPORT from ORDTASK : 2018/2018-03/2018-03-28/- 定义服务端上传文件的名字
Ordno +limsstring(Testcode)+ ".pdf"- 使用Sunway.UploadFileToFTP函数上传到ftp服务器
4.存入数据库:以后读报表的地址
1.修改ordtask表字段
PDFREPORT = 部分路径:2018/2018-03/2018-03-28/ + 上传文件名字
ELNPDFRAWFILE = 部分路径:2018/2018-03/2018-03-28/ + 上传文件名字
ELNFLAG = 'N'
重新合成
- 从服务端ftp获取源pdf文件存到新路径:Sunway.GetFileFromFTP
- 调用函数重新合成新路径下的pdf文件:面向对象~objPDF
- ·上传文件到新的ftp目录:
"CreatePDF.GetPDFUrl", {"Rawdata"} —— {"RAWDATAFOOTER"}
按检测项目
- 结果录入-食品
- 校对-食品
3)上传路径:
"CreatePDF.GetPDFUrl",{"Rawdata"}) : ELNPDF/RAWDATA/
2018/2018-03/2018-03-28/
4)上传文件名字:
按检品分科室
- 校对-药品
- 科室审核
1)判断选中记录时食品还是药品
2)调用不同的合成脚本
?药品
3)加页脚重新合成ELN(遍历ortask)
4)合成报告书
5)合成流转卡
6)合成附件(遍历ortask)
7)上传路径:
"CreatePDF.GetPDFUrl",{"ELNFORSERVGRP"}:ELNPDF/ELNFORSERVGRP/
2018/2018-03/2018-03-28/
7)上传文件名字:
FolderNo + Servgrp + "_eln.pdf";
8)存入数据库:FOLDERSERVGRP
elnreportpath = 部分路径:2018/2018-03/2018-03-28/ + 上传文件名字
?食品
1)判断未合成的检测项目
2)不存在-
====获取检测项目附件
====获取采集附件
3)存在-先合成检测项目再拼接
合成顺序
- 单个检测项目
1)获取检测项目水晶报表(不含附件版)
2)获取检测项目下的附件
3)合成检测项目pdf(含附件版)
4)将pdf地址存入ordtask表的PDFREPORT字段- 检品科室合成
1)遍历检品科室下的runno(按runno,ordno分组)
2)获取runno、ordno下的所有检测项目pdf(含附件版)
3)获取runno、ordno下的所有批附件pdf
4)拼接所有pdf合成科室pdf
5)将pdf地址存入folderservgrp表的PDFREPORT字段- 检品合成
1)获取报告书水晶报表
2)获取流转卡
3)遍历folderno下的检测项目
===== 3-1. 获取检测项目pdf(不含附件版)
===== 3-2. 获取检测项目附件pdf
===== 3-3. 获取批附件pdf
4)拼接所有pdf合成检品pdf
5)将pdf地址存入folders表的PDFREPORT字段
网友评论