HIS报表数据源书写规范.docVIP

  • 41
  • 0
  • 约7.61千字
  • 约 10页
  • 2020-02-26 发布于陕西
  • 举报
PAGE 10/10 PAGE 10 = 报表数据源书写规范 引言 目的 自定义报表制作是售后服务工作的重要部分,目前在报表编写中存在代码书写不规范、性能问题突出,主要表现在: 数据源名称定义不标准 SQL语句书写不规范 格式混乱 造成他人不能直观的理解数据源的作用,给报表的日常维护和调整带来了困难,也不便于管理和价值分析。为了规范数据源的书写,保证报表的SQL性能特编写规范。 良好的书写习惯和统一编码规范是提高代码可靠性与可读性非常重要的手段,我们希望通过遵循本规范来避免不好的书写风格,增强代码的易读性,可靠性和可维护性,便于自己和其它人员理解和后期维护。 术语解释 参数: 确定报表条件值的范围和类型,并将用户输入的数值传回数据源,构造成完整的SQL语句。 驱动表:驱动表(Driving Table)又称为外层表(OUTER TABLE)。这个概念用于嵌套与HASH连接中。如果该row source返回较多的行数据,则对所有的后续操作有负面影响。注意此处虽然翻译为驱动表,但实际上翻译为驱动行源(driving row source)更为确切。一般说来,是应用查询的限制条件后,返回较少行源的表作为驱动表,所以如果一个大表在WHERE条件有有限制条件(如等值限制),则该大表作为驱动表也是合适的,所以并不是只有较小的表可以作为驱动表,正确说法应该为应用查询的限制条件后,返回较少行源的表作为驱动表。 规范内容 数据源头注释 一个易于阅读、理解的数据源头注释必须包括以下内容: 作者 编写日期 所属的产品类别(HIS,病案,物资等) 程序版本号 作用 特殊说明 修改者 修改日期 修改原因 示例: /* 作者: 编写日期: 06 产品类别:HIS 程序版本:10.13 作用:统计一个月门诊医生开单总量与金额 说明: 修改情况:1.修改者: 修改日期: 11年X月XX日 2.修改者:XXX 修改日期:XX年XX月XX日 修改原因: */ 语句注释 语句注释主要用于对SQL语句中关键的算法或函数使用进行说明,便于阅读者能够快速理解语句。 注释单独成行、放在语句前面 应对不易理解的分支条件表达式加注释 重要的函数应说明其功能 过长的函数实现,应将其语句按实现的功能分段加以概括性说明 常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围(可选) 只能采用多行注释 (‘/* ‘,’*/ ‘)方式,因为在报表工具中对单行注释有时会处理错误。 示例: /*统计一个时间段门诊各部门的开单情况*/ SELECT No, 姓名 || _ || 病人id AS 病人 信息, b.名称 AS 开单部门, 收据费目, NVL (付数,1) * NVL (数次,1) * NVL (标准单价,1) AS 单据金额 FROM 病人费用记录 a, 部门表 b WHERE a.病人科室id = b.Id(+) AND a.记录性质 = 1 AND a.No = G000001 AND a.记录状态 IN (0, 1) 列别名定义 为了方便快速的调用和阅读,我们需要定义别名: 别名定义要突出主题 别名与列名之间用”AS”联接 如果包含空格、特殊字符或区分大小写,则使用双引号 示例: SELECT No, 姓名 || _ || 病人id AS 病人 信息, b.名称 AS 病人科室, 收据费目, NVL (付数,1) * NVL (数次,1) * NVL (标准单价,1) AS 单据金额 FROM 病人费用记录 a, 部门表 b WHERE a.病人科室id = b.Id(+) AND a.记录性质 = 1 AND a.No = G000001 AND a.记录状态 IN (0, 1) 关键字定义 SQL语句中的系统保留字、内置函数名、SQL保留字都可称之为关键字。可以将关键字首字母大写,或所有关键字大写,但在同一数据源中必须相同,关键字书写风格必须相同,不能混用。 如下这段代码就是不规范的代码: Select No, 姓名 || _ || 病人id AS 病人 信息, b.名称 AS 病人科室, 收据费目, NVL (付数,1) * NVL (数次,1) * NVL (标准单价,1) AS 单据金额 from 病人费用记录 a, 部门表 b WHERE a.病人科室id = b.Id(+) aND a.记录性质 = 1 anD a.No = G000001 AND a.记录状态 IN (0, 1) 函数的使用及格式 不正确的使用函数会造成SQL语句执行效率的低下和不易阅读,所以大家在使用

文档评论(0)

1亿VIP精品文档

相关文档