报表合成

基本步骤

1.获取合成文件
  1. 水晶报表
    传入参数调用水晶报表接口合成pdf,并返回访问地址
    "Sunway.RptCreatePdf":{ REPORTID, 水晶报表取数据需要的sql参数 }
    地址加入容器
  2. pdf采集文件
    查询附件表调用函数获取采集pdf的地址
    地址加入容器
  3. 上传附件
    查询附件表调用函数获取上传文件的地址:对于xls、doc调用函数进行pdf转换
    地址加入容器
2.生成新文件
  1. 传入文件地址容器作为参数~调用函数合并多个pdf,得到新文件
  2. "CreatePDF.MergePdfFiles",{文件地址数组, 合成文件地址}
3.上传文件到ftp目录
  1. 定义服务端上传文件的路径
    1)"CreatePDF.GetPDFUrl",{"Rawdata"}) : ELNPDF/REPORTS/
    2)select PDFREPORT from ORDTASK : 2018/2018-03/2018-03-28/
  2. 定义服务端上传文件的名字
    Ordno +limsstring(Testcode)+ ".pdf"
  3. 使用Sunway.UploadFileToFTP函数上传到ftp服务器
4.存入数据库:以后读报表的地址

1.修改ordtask表字段
PDFREPORT = 部分路径:2018/2018-03/2018-03-28/ + 上传文件名字
ELNPDFRAWFILE = 部分路径:2018/2018-03/2018-03-28/ + 上传文件名字
ELNFLAG = 'N'

重新合成

  1. 从服务端ftp获取源pdf文件存到新路径:Sunway.GetFileFromFTP
  2. 调用函数重新合成新路径下的pdf文件:面向对象~objPDF
  3. ·上传文件到新的ftp目录:
    "CreatePDF.GetPDFUrl", {"Rawdata"} —— {"RAWDATAFOOTER"}
按检测项目
  1. 结果录入-食品
  2. 校对-食品
    3)上传路径:
    "CreatePDF.GetPDFUrl",{"Rawdata"}) : ELNPDF/RAWDATA/
    2018/2018-03/2018-03-28/
    4)上传文件名字:
按检品分科室
  1. 校对-药品
  2. 科室审核
    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. 单个检测项目
    1)获取检测项目水晶报表(不含附件版)
    2)获取检测项目下的附件
    3)合成检测项目pdf(含附件版)
    4)将pdf地址存入ordtask表的PDFREPORT字段
  2. 检品科室合成
    1)遍历检品科室下的runno(按runno,ordno分组)
    2)获取runno、ordno下的所有检测项目pdf(含附件版)
    3)获取runno、ordno下的所有批附件pdf
    4)拼接所有pdf合成科室pdf
    5)将pdf地址存入folderservgrp表的PDFREPORT字段
  3. 检品合成
    1)获取报告书水晶报表
    2)获取流转卡
    3)遍历folderno下的检测项目
    ===== 3-1. 获取检测项目pdf(不含附件版)
    ===== 3-2. 获取检测项目附件pdf
    ===== 3-3. 获取批附件pdf
    4)拼接所有pdf合成检品pdf
    5)将pdf地址存入folders表的PDFREPORT字段

你可能感兴趣的:(报表合成)