WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表)

对于已经完成体检的病人,对其进行体检结果的打印,其体检结果报告打印效果如图:

界面涉及到的控件有:

控件

说明

从工具箱中找到对应的报表控件,可以设置控件的一些属性。如显示的文本,命名是规范

文本对象 (Text)

线条对象(Line)

框对象 (Box)

数据库中用到的表和关系有:

表1:病人表(PatientTable)

      列名

数据类型

主键/外键

说明

PatientID

int

主键

病人ID

PatientCardNumber

nchar (50)

病人卡号

PatientName

nchar (30)

病人名称

RegisterCategoryID

int

外键

挂号类别 ID

AS_SexID

int

外键

性别ID

Birthday

datetime

出生年月

IDCardNo

nchar (50)

身份证号

AS_MaritalStatusID

int

外键

婚姻情况ID

Profession

nchar (50)

所在职业

MemberTypeID

int

外键

会员类型ID

MedicareCardNumber

nchar (50)

医保卡号

AS_InsuredTypeID

int

外键

参保类型ID

ContactTelephone

nchar (30)

联系电话

ContactAddress

nchar (100)

联系地址

DrugAllergyHistory

nchar (100)

药物过敏史

PatientCategoryID

int

外键

病人类别ID

Age

nchar (30)

年龄

AlphabeticBrevityCode

nchar (20)

拼音简码

WubiInCode

nchar (20)

五笔简码

ContactMobilePhone

nchar (30)

联系手机

Email

nchar (30)

电子邮件

Introducer

nchar (30)

介绍人员

PersonalTaboo

nchar (70)

个人忌讳

HighestReputation

nchar (70)

信誉上限

NowIntegral

nchar (50)

当前积分

Debt

decimal (18, 2)

尚欠金额

ExpenseSum

decimal (18, 2)

消费金额

LastTime

datetime

上次时间

LastDoctor_StaffID

int

外键

上次医生

Prescriptions

nchar (50)

总处方数

PatientPhotos

char (200)

病人照片

WhetherEffective

bit

((1))

有效否

WhetherFromPhysicalExamination

Bit

是否体检

表2:属性明细表(AttributeDetailsTable):

         列名

数据类型

主键/外键

说明

AttributeDetailsID

int

主键

属性明细ID

AttributeDetailsID_F

int

外键

属性明细ID_F

AttributeSetID

int

外键

属性明细ID

AttributeDetailsName

nchar (30)

属性明细名称

Number

nchar (30)

编号

RetrievalInCode

nchar (30)

检索简码

BuiltInIdentifiers

bit

((0))

内置标识

Remarks

nchar (100)

备注

WhetherEffective

bit

((1))

有效否

表3:处方单表(PW_OrdonnanceTable)

      列名

数据类型

主键/外键

说明

OrdonnanceID

int

主键

处方单ID

OrdonnanceNumber

nchar (30)

处方单号

PatientID

int

外键

病人ID

PrescriptionDate

datetime

处方时间

ClinicTechnicalOffices_TechnicalOfficesID

int

外键

就诊科室_科室ID

TreatmentDoctor_StaffID

int

外键

就诊医生_员工ID

AS_ChargeStatusID

int

外键

收费状态ID

ChargeForPersonnel_StaffID

int

外键

收费人员_员工ID

ChargeTime

datetime

收费时间

AS_TakeMedicineStatusID

int

外键

发药状态ID

TakeMedicinePersonnel_StaffID

int

外键

发药人员_员工ID

TakeMedicineTime

datetime

发药时间

BedID

int

外键

床位ID

WhetherEffective

bit

((1))

有效否

表4:会员类别表(BT_MemberCategoryTable)

   列名

数据类型

主键/外键

说明

MemberCategoryID

int

主键

会员类别 ID

MemberCategoryNumber

nchar (30)

会员类别编号

MemberCategoryDiscount

numeric (18, 2)

会员类别折扣

MemberCategoryName

nchar (30)

会员类别名称

Remarks

nchar (150)

备注

WhetherEffective

bit

((1))

有效否

表5:项目表(BT_ItemTable)

列名

数据类型

主键/外键

说明

ItemID

int

主键

项目ID

ItemName

nchar (70)

外键

项目名称

ItemCoding

nchar (50)

项目编号

AS_UserStatusID

int

外键

使用状态ID

ProjectPrice

decimal (18, 2)

现金价格

TechnicalOfficesID

int

外键

科室ID

DiscountProportion

decimal (18, 2)

折扣比例

WhetherEffective

bit

((1))

有效否

ItemRemarks

nchar (100)

项目备注

ItemUnit

nchar (20)

项目单位

表6:体检执行内容明细表[PW_PhysicalExaminationExecuteContentDetailTable】

列名

数据类型

主键/外键

说明

PhysicalExaminationExecuteContentDetailID

int - Identity

主键

体检执行内容明细ID

PhysicalExaminationContentID

int

外键

体检执行内容ID

ItemID

int

外键

项目ID

PhysicalExaminationExecuteContentMessage

nchar (250)

体检执行内容信息

WhetherEffective

bit

((1))

有效否

PhysicalExaminationExecuteID

int

外键

体检执行ID

ReportDoctor_StaffID

int

外键

报告医生ID

ReportTime

date

报告时间

表:7: 体检执行表:【PhysicalExaminationExecuteTable】

            列名

数据类型

主键/外键

说明

PhysicalExaminationExecuteID

int

主键

体检执行ID

ChargeBillID

int

外键

收费单ID

ExecuteDoctor_StaffID

int

外键

执行医生ID

ExecuteNumber

nchar (20)

体检执行单号

Remarks

nchar (200)

备注

HealthSuggest

nchar (200)

健康建议

WhetherEffective

bit

((1))

是否有效

表8:员工 表(BT_StaffTable)

            列名

数据类型

主键/外键

说明

StaffID

int

主键

员工ID

TechnicalOfficesID

int

外键

科室ID

StaffNumber

nchar (20)

员工编号

StaffName

nchar (20)

员工名称

WhetherOperator

bit

操作员否

AlphabeticBrevityCode

nchar (20)

拼音简码

WubiInCode

nchar (20)

五笔简码

AS_StaffPositionID

int

外键

员工职务ID

AS_MedicalTitlesID

int

外键

医务职称ID

AS_WorkingStatusID

int

外键

工作状态ID

AS_SexID

int

外键

性别ID

ContactTelephone

nchar (50)

联系电话

WhetherBuiltIn

bit

内置否

RegisteredSum

decimal (18, 2)

挂号金额

AS_IntoTheHobbyID

int

外键

录入爱好ID

StaffPhotos

char (200)

员工照片

Email

nchar (70)

电子邮件

IDCardNo

nchar (100)

身份证号

ContactAddress

nchar (100)

联系地址

Birthday

datetime

出生日期

WhetherBirthdayRemind

bit

生日提醒否

WorkDate

datetime

工作日期

TerminationDate

datetime

离职日期

AS_OfficialAcademicCredentialsID

int

外键

最高学历ID

StudySubject

nchar (70)

学习专业

AS_PoliticsStatusID

int

外键

政治面貌ID

Remarks

nchar (100)

员工备注

WhetherEffective

bit

((1))

有效否

表9:收费单表(PW_ChargeBillTable)

        列名

数据类型

主键/外键

说明

ChargeBillID

int

主键

收费单ID

ReceiptNumber

nchar (30)

收据号

BillNumber

nchar (30)

发票号

AS_ChargeStatusID

int

外键

收费状态ID

OrdonnanceID

int

外键

处方单ID

Discount

decimal (18, 2)

折扣

CashPaySum

decimal (18, 2)

现金支付金额

MedicarePaySum

decimal (18, 2)

医保支付金额

BlockPaySum

decimal (18, 2)

卡付金额

TallyPaySum

decimal (18, 2)

记账支付金额

Operator_StaffID

int

外键

操作员_员工ID

OperateTime

datetime

操作时间

WhetherCancel

bit

作废否

WhetherEffective

bit

((1))

有效否

WhetherOrdonnance

Bit

是否经过处方

表10:体检检查内容表(PW_PhysicalExaminationContentTable)

列名

数据类型

主键/外键

说明

PhysicalExaminationContentID

int - Identity

主键

体检检查内容ID

PhysicalExaminationContentName

nchar (100)

体检检查内容名称

PhysicalExaminationTypeName

nchar (100)

体检检查分类

WhetherEffective

bit

有效否

该报表涉及到的储存过程有:

IF @TYPE = 'FRM_TiJianZhiXing_Main_提交打印ToolStripMenuItem_Click_OnChuFangDan'BEGINSELECT   distinct  BT_ItemTable.ItemID, RTRIM(BT_ItemTable.ItemName) AS ItemName, PW_PhysicalExaminationExecuteContentDetailTable.PhysicalExaminationContentID, PW_PhysicalExaminationExecuteContentDetailTable.PhysicalExaminationExecuteContentMessage, PW_PhysicalExaminationExecuteContentDetailTable.PhysicalExaminationExecuteID, PW_PhysicalExaminationExecuteTable.HealthSuggest, PW_PhysicalExaminationExecuteContentDetailTable.PhysicalExaminationExecuteContentDetailID, PW_PhysicalExaminationContentTable.PhysicalExaminationContentName, PW_PhysicalExaminationContentTable.PhysicalExaminationTypeName, BT_StaffTable.StaffName, PW_PhysicalExaminationExecuteTable.ExecuteDoctor_StaffID, PW_PhysicalExaminationExecuteTable.Remarks, PW_PhysicalExaminationExecuteTable.ExecuteNumber, PW_PhysicalExaminationExecuteContentDetailTable.ReportDoctor_StaffID, Convert(nchar(10) ,PW_PhysicalExaminationExecuteContentDetailTable.ReportTime,120) AS ReportTime , BT_StaffTable_1.StaffName AS 报告医生, PW_PhysicalExaminationExecuteTable.ChargeBillID, BT_PatientTable.PatientID, BT_PatientTable.PatientName, BT_AttributeDetailsTable.AttributeDetailsName, BT_MemberCategoryTable.MemberCategoryName, BT_AttributeDetailsTable_1.AttributeDetailsName AS 参保类型, BT_PatientTable.IDCardNo, PW_OrdonnanceTable.OrdonnanceIDFROM         PW_PhysicalExaminationExecuteContentDetailTable INNER JOINBT_ItemTable ON PW_PhysicalExaminationExecuteContentDetailTable.ItemID = BT_ItemTable.ItemID INNER JOINPW_PhysicalExaminationExecuteTable ON PW_PhysicalExaminationExecuteContentDetailTable.PhysicalExaminationExecuteID = PW_PhysicalExaminationExecuteTable.PhysicalExaminationExecuteID INNER JOINPW_PhysicalExaminationContentTable ON PW_PhysicalExaminationExecuteContentDetailTable.PhysicalExaminationContentID = PW_PhysicalExaminationContentTable.PhysicalExaminationContentID INNER JOINBT_StaffTable ON PW_PhysicalExaminationExecuteTable.ExecuteDoctor_StaffID = BT_StaffTable.StaffID INNER JOINBT_StaffTable AS BT_StaffTable_1 ON PW_PhysicalExaminationExecuteContentDetailTable.ReportDoctor_StaffID = BT_StaffTable_1.StaffID INNER JOINPW_ChargeBillTable ON PW_PhysicalExaminationExecuteTable.ChargeBillID = PW_ChargeBillTable.ChargeBillID INNER JOINPW_OrdonnanceTable ON PW_ChargeBillTable.OrdonnanceID = PW_OrdonnanceTable.OrdonnanceID INNER JOINBT_PatientTable ON PW_OrdonnanceTable.PatientID = BT_PatientTable.PatientID INNER JOINBT_AttributeDetailsTable ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOINBT_MemberCategoryTable ON BT_PatientTable.MemberTypeID = BT_MemberCategoryTable.MemberCategoryID INNER JOINBT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON BT_PatientTable.AS_InsuredTypeID = BT_AttributeDetailsTable_1.AttributeDetailsID   WHERE      PW_PhysicalExaminationExecuteTable. PhysicalExaminationExecuteID = @PhysicalExaminationExecuteID                    END

BLL中对应的方法有:

//报表打印     经过处方单的报表打印[OperationContract]public DataSet FRM_TiJianZhiXing_Main_提交打印ToolStripMenuItem_Click_OnChuFangDan(int intPhysicalExaminationExecuteID)//根据最后一个体检执行单ID查询体检执行内容明细{SqlParameter[] mySqlParameters = {new SqlParameter("@Type",SqlDbType .Char ),new SqlParameter ("@PhysicalExaminationExecuteID",SqlDbType .Int ),};mySqlParameters[0].Value = "FRM_TiJianZhiXing_Main_提交打印ToolStripMenuItem_Click_OnChuFangDan ";mySqlParameters[1].Value = intPhysicalExaminationExecuteID;DataTable dt = myDALMethod.QueryDataTable("TiJianZhongXin_FRM_TiJianZhiXing_Main", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds;}

报表打印在UIL中涉及到的强数据集,建立强数据集有如下几个过程:第一点击数据,然后点击添加数据源,如下图:

第二步:点击数据库

然后 点击数据集

然后在数据源配载向导中点击新建连接

第三步:新建连接后,会出现如下窗体

选择服务器名和连接的数据库中对应的名称,再点击测试连接,会提示测试连接成功

点击确定后弹出如下窗体:

点击数据源配置向导中的下一步,再弹出如下窗体

在表中的前面打上勾再输入数据集的名称,然后点击完成这样就建立好一个强数据集了。

第四步:在解决方案中(如下图所示)找到刚才添加的强数据集

点击刚才添加的强数据集会弹出该界面中的数据表:如下图:

点击右键该界面中的空白处,然后点击添加如下图:

点击添加会出现TableAdapter配置向导(如下图) 然后点击下一步:

出现如下界面后,继续点击下一步

在输入SQL语句中把数据库中用到的储存过程的复制下来,注意不要带WHERE条件中的储存过程也复制下来

把储存过程复制好后,会看到如下界面

然后点击完成

点击完成后,你会发现刚才添加的强数据集多的一张表,点击表头对其命名即可

第五步:右键点击添加新建项

点击后出现如下界面(如果没有安装水晶报表的不会出现如下的中的内容)

添加水晶报表(注意选择中的

在对添加的水晶报表进行命名

命名完成后,点击添加,选择Crystal Reports库中的作为空白报表,再点击确定

出现水晶报表后,点击工具箱对水晶报表设置控件吧

在数据库字段右键点击数据库专家

找到ADO.NET数据集中刚才添加的表 选择该表后点击添加进选定的表中,再点击确定

会看到数据库字段中出现刚才添加的强数据集中的表

用数据库字段中的数据与工具箱中的工具对报表进行自定义布局

对水晶报表的界面用控件布局完成后添加一个窗体,把工具箱中报表设计中CrystalReportViewer的控件拉进界面中

最后在该窗体的Load事件中添加如下代码:

 BLL医院管理系统.TiJianZhongXin.FRM_TiJianZhiXing_Main.FRM_TiJianZhiXing_MainClient myFRM_TiJianZhiXing_MainClient =new BLL医院管理系统.TiJianZhongXin.FRM_TiJianZhiXing_Main.FRM_TiJianZhiXing_MainClient();DataTable dt = new DataTable();//实例化一个数据表dt = myFRM_TiJianZhiXing_MainClient.FRM_TiJianZhiXing_Main_提交打印ToolStripMenuItem_Click_OnChuFangDan(intPhysicalExaminationExecuteID).Tables[0];//实例化强数据集DS_TiJianZhiXin myDS_TiJianZhiXin = new DS_TiJianZhiXin();//把查询的数据dt合并到强数据集对象里表名为BaoBiao_TiJianZhiXin_OnChuFang myDS_TiJianZhiXin.Tables["BaoBiao_TiJianZhiXin_OnChuFang"].Merge(dt);//实例化报表模板BaoBiaoTongJi.CRP_TiJianZhiXin_OnChuFang myCRP_TiJianZhiXin_OnChuFang = new BaoBiaoTongJi.CRP_TiJianZhiXin_OnChuFang();//设置模板的数据源myCRP_TiJianZhiXin_OnChuFang.SetDataSource(myDS_TiJianZhiXin);//设置报表控件的报表源crystalReportViewer1.ReportSource = myCRP_TiJianZhiXin_OnChuFang;

这样一个完整的水晶报表就完成了。运行结果就为第一张图中所示了。

注意:该文章仅供与学习,禁止用于商业用途,否则后果自负!!!

WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表)相关推荐

  1. WCF医院管理系统技术解析(七)体检登记(六)前台收费

    WCF医院管理系统技术解析(七)体检登记(六)前台收费 设置好病人的体检项目后,病人就要到前台进行支付体检的相关费用,点击体检登记界面中的    前台收费中的界面效果如图所示: 2.9.8(图57) ...

  2. WCF医院管理系统技术解析(五)体检登记(四)

    WCF医院管理系统技术解析(五)体检登记(四)涉及拼音简码 体检登记中的新增病人(需要注意的是:该病人不经过挂号和处方,只是到医院进行体检)与医院中的前台登记病人不同. 对于这种情况:我的思路是:该病 ...

  3. WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel)

    WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel) 医院支持对各个科室的体检收入,同时也可以查询到每个体检科室收入的审核医生.效果如图所示: 界面用到的控件有: 控件 说 ...

  4. 基于springboot+mybatis+mysql+html实现宠物医院管理系统(包含实训报告)

    基于springboot+mybatis+mysql+html实现宠物医院管理系统(包含实训报告) 一.系统简介 二.系统主要功能界面 2.1登陆 2.2系统设置 2.3宠物管理 2.4预约管理 2. ...

  5. 海马汽车经销商管理系统技术解析(三)应收管理

    海马汽车经销商管理系统技术解析(三)应收管理 应收管理这个模块可以查看所有欠款的客户和每个客户的欠款明细信息,还可以新建欠账单和删除欠账单.可以通过客户姓名.发生日期等条件对欠账单进行筛选查询.还可以 ...

  6. 海马汽车经销商管理系统技术解析(二)维修收银

    海马汽车经销商管理系统技术解析(二)维修收银 维修收银这个模块可以查看已经结算和已经收款的工单.可以通过工单号.车主姓名等条件对工单进行筛选查询.还可以对工单进行收银.刷新操作. 主界面如图(图1)所 ...

  7. 海马汽车经销商管理系统技术解析(五)车辆续保提醒

    海马汽车经销商管理系统技术解析(五)车辆续保提醒 车辆续保提醒这个模块会把三天后需要续保的客户及车辆信息显示在车辆续保提醒界面,然后可以对信息进行提醒操作,还有查询.上页.下页操作. 车辆续保提醒主界 ...

  8. 海马汽车经销商管理系统技术解析(六)顾客生日祝贺

    海马汽车经销商管理系统技术解析(六)顾客生日祝贺 顾客生日祝贺模块会把当天生日的顾客信息显示在顾客生日祝贺界面,然后可以对客户进行生日祝贺,还有上页.下页操作. 顾客生日祝贺主界面如图(图1)所示:  ...

  9. 海马汽车经销商管理系统技术解析(十)预约配件资源释放

    资源释放 资源释放是根据需要释放已占用的而库存短缺的配件资源.资源还原就是在库存充足的情况下,还原已经释放的配件资源. 从"释放配件资源"主界面看到的控件有: 控件 说明 (Too ...

最新文章

  1. Class中isAssignableFrom() 方法
  2. Cocos2d:使用 CCCamera 做滚动效果 (Four Ways of Scrolling with Cocos2D)
  3. 汇编: loop指令
  4. maven错误The JAVA_HOME environment variable is not defined correctly
  5. 拓展小知识(一)——使用 CSS 和 JS 加载阿里小图标
  6. 自己编写jQuery插件之表单验证
  7. 解决国内NPM安装依赖速度慢问题
  8. 马蜂窝数据仓库设计与实践
  9. 【算法竞赛学习】金融风控之贷款违约预测-建模与调参
  10. CVPR2021论文集锦 | CVPR2021最新论文 | CVPR2021审稿结果 | CVPR2021录取结果
  11. 根据Ip获取城市帮助类
  12. Mybatis学习笔记(二) 之实现数据库的增删改查
  13. Redis学习笔记——简介及配置
  14. Shader预处理宏、内置状态变量、多版本编译等
  15. Hadoop介绍和环境配置
  16. Laravel中使用webhook开发Telegram机器人自定义指令
  17. 【开发教程9】疯壳·人形街舞机器人-整机代码
  18. ARGB 和 RGBA
  19. FINTERRA在2018年第二届远东商业领袖奖中脱颖而出
  20. stm32 驱动 触摸屏

热门文章

  1. 0x7c97cdf2指令引用的0x00000014内存。该内存不能为”written
  2. 内存不能为read大全
  3. 实验吧CTF练习题---WEB---猫抓老鼠解析
  4. antlr 安装使用
  5. 【听】红高粱,莫言经典诺贝尔文学奖小说
  6. 7033: Lounge Lizards(lis)
  7. 信息驾驶舱(管理驾驶舱)
  8. Conversion failed when converting date and/or time from character string.
  9. Oracle数据库表空间不足 ORA-01653:unable to extend table 表名称 by 8192 in tablespace 表空间名称
  10. abd获取手机应用的安装包