PB制作报表操作手册V1.0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PB制作手麻统计报表操作手册V1.0
1.原理跟制作文书单非常类似;但是有所区别,请谨记;
2.PB制作手麻统计报表,需要制作2个DATAWINDOW,也即是制作2个单子;其中一个的表现形式采用原有的FREEFORM,另外一个的表现形式为GRID,分别制作2张单子,使用自定义查询参数进行联结;
3.手麻统计报表的组成部分有4部分:详细会有截图进行阅览;
a)左侧树形菜单列表;
b)右侧上方查询条件;
c)中间部分为固定交互按钮;
d)主体下方为报表的实际数据展现区域;
4.具体的操作步骤如下:
设置数据库连接,跟文书单一样,不做解释;
制作查询条件DATAWINDOW,新建一个PBL,然后点击【NEW】新建一个
DATAWINDOW,在DATAWINDOW选项里面选择FREEFORM,点击确定,选择【SQL SELECT】,点击【NEXT】
点击【CHANCEL】,点击【design】下拉菜单里面的【CONVERT TO SYNTAX】,转入到代码编辑模式,进行SQL代码的编写,见截图:
截图里面的的模式下是SQL代码,AS后面的是查询条件,这个是根据用户要求来做查询条件,截图只是放入一个开始时间和结束时间;这个里面的
begintime,endtime作为查询条件,进而跟第二个DATAWINDOW里面的参数进行联结;点击【RETURN】按钮,返回到界面模式,修改参数的名字,字段属性需要进行一定的修改,点击一个字段,选择右侧属性选项卡里面的【EDIT】,在【styletype】下拉选择【EditMask】风格,在MASK里面调整时间格式为:yyyy/mm/dd即可,在下方勾选一个日历操作选项【Drop-Down Calendar】,每做一步点击保存,保存名字自己自定义,调整好属性后,点击【Retrieve】,进行界面效果预览,如下图所示
可以设置一系列的聚焦提示效果,提示文字以及聚焦显示手型图案,例如
保存完之后,第一个DATAWINDOW已经完成;
接下来制作第二个DATAWINDOW。
点击【NEW】,选择DATAWINDOW里面的【Grid】,接下来选择【SQL SELECT】在这里需要提醒一下,我们常规方式选择的是纯SQL语句进行查询,但是如果碰到逻辑较为复杂的报表,可以考虑使用存储过程进行查询,在这里我们选择【SQL SELECT】,别的步骤都跟文书单一样,依次往下点击,最终进入模式下,在SQL里面编写好脚本,先在数据库里面调试一下,看看数据是否正常或者是否有性能问题,没有问题需要定义参数,这里的参数就是上一个DATAWINDOW里面定义的列名,需要完全保持一致,在第二个GRID里面需要进行参数的定义,也即是如图所示:
SQL 脚本举例说明是这样写的:统计输血项
SELECT
(vchrDrugName+(CASE intRhBloodType WHEN 1 THEN ' RH+' WHEN 0 THEN ' RH-' ELSE '' END)) AS vchrDrugName,
vchrPatientName,
CASE intSex WHEN 0 THEN '女' WHEN 1 THEN '男' ELSE '未知' END AS vchrSex, dbo.fun_GetAge(CONVERT(VARCHAR(8),Birthday,112),CONVERT(VARCHAR(8) ,GETDATE(),112),0,0,1) AS Age,
vchrPatientCaseNO,
vchrOperatingRoomName,
CASE wf2_IntraopeRecord.intEmergency WHEN 0 THEN '择期' WHEN 1 THEN '急诊' ELSE '未知' END AS VchrEmergency,
dbo.fun_getOperationName(wf2_IntraopeRecord.IntraopeRecordId) AS OperationNames,
T.decTotalDose,
T.vchrTotalDoseUnit,
DoseUnit FROM wf2_IntraopeRecord
INNER JOIN (SELECT
IntraopeRecordId,vchrDrugName,SUM(wf2_UseDrug.decAmount) AS decTotalDose,
Convert(varchar(18),SUM(wf2_UseDrug.decAmount))+wf2_UseDrug.vchrUsed DoseUnit AS vchrTotalDoseUnit,
wf2_UseDrug.vchrUsedDoseUnit AS DoseUnit
FROM wf2_UseDrug
INNER JOIN dic_Drug ON wf2_UseDrug.DrugID=dic_Drug.DrugId
WHERE dic_Drug.intTypeID=4
GROUP BY IntraopeRecordId,vchrDrugName,vchrUsedDoseUnit
) T ON T.IntraopeRecordId=wf2_IntraopeRecord.IntraopeRecordId
INNER JOIN wf1_ApplyOperation ON
wf1_ApplyOperation.ApplyOperationId=wf2_IntraopeRecord.IntraopeRecordI d
LEFT JOIN bas_Patient ON
bas_Patient.PatientId=wf1_ApplyOperation.PatientId
LEFT JOIN wf1_PlanOperation ON
wf1_PlanOperation.ApplyID=wf1_ApplyOperation.ApplyOperationId
LEFT JOIN dic_OperatingRoom ON
dic_OperatingRoom.OperatingRoomId=wf1_PlanOperation.OperatingRoomID WHERE FactBeginTime>=cONVERT(VARCHAR(10),:BeginTime,120)+' 00:00:00' AND FactBeginTime<=CONVERT(VARCHAR(10),:EndTime)+' 23:59:59:999' ORDER BY vchrDrugName
没有问题的话,点击【RETURN】返回到界面进行参数传递保存预览;