WCF医院管理系统技术解析(十)体检报告结果打印(水晶报表)
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) |
联系手机 |
|
|
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) |
员工照片 |
|
|
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医院管理系统技术解析(十)体检报告结果打印(水晶报表)相关推荐
- WCF医院管理系统技术解析(七)体检登记(六)前台收费
WCF医院管理系统技术解析(七)体检登记(六)前台收费 设置好病人的体检项目后,病人就要到前台进行支付体检的相关费用,点击体检登记界面中的 前台收费中的界面效果如图所示: 2.9.8(图57) ...
- WCF医院管理系统技术解析(五)体检登记(四)
WCF医院管理系统技术解析(五)体检登记(四)涉及拼音简码 体检登记中的新增病人(需要注意的是:该病人不经过挂号和处方,只是到医院进行体检)与医院中的前台登记病人不同. 对于这种情况:我的思路是:该病 ...
- WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel)
WCF医院管理系统技术解析(十一)医生体检收入查询(带一定判断的导出Excel) 医院支持对各个科室的体检收入,同时也可以查询到每个体检科室收入的审核医生.效果如图所示: 界面用到的控件有: 控件 说 ...
- 基于springboot+mybatis+mysql+html实现宠物医院管理系统(包含实训报告)
基于springboot+mybatis+mysql+html实现宠物医院管理系统(包含实训报告) 一.系统简介 二.系统主要功能界面 2.1登陆 2.2系统设置 2.3宠物管理 2.4预约管理 2. ...
- 海马汽车经销商管理系统技术解析(三)应收管理
海马汽车经销商管理系统技术解析(三)应收管理 应收管理这个模块可以查看所有欠款的客户和每个客户的欠款明细信息,还可以新建欠账单和删除欠账单.可以通过客户姓名.发生日期等条件对欠账单进行筛选查询.还可以 ...
- 海马汽车经销商管理系统技术解析(二)维修收银
海马汽车经销商管理系统技术解析(二)维修收银 维修收银这个模块可以查看已经结算和已经收款的工单.可以通过工单号.车主姓名等条件对工单进行筛选查询.还可以对工单进行收银.刷新操作. 主界面如图(图1)所 ...
- 海马汽车经销商管理系统技术解析(五)车辆续保提醒
海马汽车经销商管理系统技术解析(五)车辆续保提醒 车辆续保提醒这个模块会把三天后需要续保的客户及车辆信息显示在车辆续保提醒界面,然后可以对信息进行提醒操作,还有查询.上页.下页操作. 车辆续保提醒主界 ...
- 海马汽车经销商管理系统技术解析(六)顾客生日祝贺
海马汽车经销商管理系统技术解析(六)顾客生日祝贺 顾客生日祝贺模块会把当天生日的顾客信息显示在顾客生日祝贺界面,然后可以对客户进行生日祝贺,还有上页.下页操作. 顾客生日祝贺主界面如图(图1)所示: ...
- 海马汽车经销商管理系统技术解析(十)预约配件资源释放
资源释放 资源释放是根据需要释放已占用的而库存短缺的配件资源.资源还原就是在库存充足的情况下,还原已经释放的配件资源. 从"释放配件资源"主界面看到的控件有: 控件 说明 (Too ...
最新文章
- Class中isAssignableFrom() 方法
- Cocos2d:使用 CCCamera 做滚动效果 (Four Ways of Scrolling with Cocos2D)
- 汇编: loop指令
- maven错误The JAVA_HOME environment variable is not defined correctly
- 拓展小知识(一)——使用 CSS 和 JS 加载阿里小图标
- 自己编写jQuery插件之表单验证
- 解决国内NPM安装依赖速度慢问题
- 马蜂窝数据仓库设计与实践
- 【算法竞赛学习】金融风控之贷款违约预测-建模与调参
- CVPR2021论文集锦 | CVPR2021最新论文 | CVPR2021审稿结果 | CVPR2021录取结果
- 根据Ip获取城市帮助类
- Mybatis学习笔记(二) 之实现数据库的增删改查
- Redis学习笔记——简介及配置
- Shader预处理宏、内置状态变量、多版本编译等
- Hadoop介绍和环境配置
- Laravel中使用webhook开发Telegram机器人自定义指令
- 【开发教程9】疯壳·人形街舞机器人-整机代码
- ARGB 和 RGBA
- FINTERRA在2018年第二届远东商业领袖奖中脱颖而出
- stm32 驱动 触摸屏
热门文章
- 0x7c97cdf2指令引用的0x00000014内存。该内存不能为”written
- 内存不能为read大全
- 实验吧CTF练习题---WEB---猫抓老鼠解析
- antlr 安装使用
- 【听】红高粱,莫言经典诺贝尔文学奖小说
- 7033: Lounge Lizards(lis)
- 信息驾驶舱(管理驾驶舱)
- Conversion failed when converting date and/or time from character string.
- Oracle数据库表空间不足 ORA-01653:unable to extend table 表名称 by 8192 in tablespace 表空间名称
- abd获取手机应用的安装包