⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmzycf.java

📁 很全面的包括了住院管理的各项功能。如:管理员登录
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
							//显示金额							
							float je = dj*sl;
							item.setText(3,String.valueOf(je));
							//显示自费金额							
							float zfje = je*(zfbl/100);
							item.setText(8,String.valueOf(zfje));
							i++;
						}
					}catch(SQLException se){}
				}
				else shwErrMsgBox_Query();
				
				//改变当前中间表格是否费用明细信息flag的值
				isCurrentFYMX = true;			
			}
		});		
		
		//给费用合计文本框添加失去焦点事件监听器
		//以清除中间表格的缴费明细信息,返回原来的输入状态
		txtFYHJ.addListener(SWT.FocusOut,new Listener(){
			public void handleEvent(Event event){
				//如果当前中间表格显示的缴费明细信息
				if(isCurrentFYMX){
					//如果上次输入的药品
					if(isYPRadioSelected)
						//返回到药品信息输入状态
						backToYPXX();
					//如果上次输入的医疗服务
					else
						//返回到医疗服务输入状态
						backToYLFW();
				}	
			}
		});
		
		//科室
		Label lblKS = new Label(shell,SWT.NONE);
		lblKS.setText("科室");	
		grdData = new GridData();
		grdData.widthHint = 62;
		lblKS.setLayoutData(grdData);
		grdData = new GridData();
		txtKS = new Text(shell,SWT.BORDER);
		grdData.widthHint = 112;
		txtKS.setLayoutData(grdData);		
		
		//空行
		lblNone = new Label(shell,SWT.NONE);
		grdData = new GridData();
		grdData.widthHint = 62;
		grdData.horizontalSpan = 6;
		lblNone.setLayoutData(grdData);
		
		//提示信息
		lblMsg = new Label(shell,SWT.NONE);
		lblMsg.setForeground(colRed);
		lblMsg.setText("这里是提示信息\n请输入住院号");
		grdData = new GridData();
		grdData.horizontalSpan = 3;
		grdData.verticalSpan = 2;
		grdData.widthHint = 250;
		lblMsg.setLayoutData(grdData);
		
		//按键
		comBtnGrpDown = new Composite(shell,SWT.NONE);
		grdData = new GridData(GridData.HORIZONTAL_ALIGN_END);
		grdData.horizontalSpan = 3;
		grdData.verticalSpan = 2;
		comBtnGrpDown.setLayoutData(grdData);
		
		grdLtCmpDown = new GridLayout(3,false);
		grdLtCmpDown.horizontalSpacing = 0;
		comBtnGrpDown.setLayout(grdLtCmpDown);
		
		//保存
		btnSave = new Button(comBtnGrpDown,SWT.NONE);
		btnSave.setText("保存");
		grdData = new GridData();
		grdData.widthHint = 60;		
		btnSave.setLayoutData(grdData);	
		
		//添加保存按键单击事件
		btnSave.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent event){			
				//如果信息未登录完提示是否放弃
				if(isInfGrpChanged){
					msgBox = new MessageBox(shell,SWT.YES | SWT.ICON_QUESTION |
							SWT.NO);
					msgBox.setText("提示");
					if(isYPRadioSelected)
						msgBox.setMessage("是否放弃当前未登录完的药品数据?");
					else
						msgBox.setMessage("是否放弃当前未登录完的医疗服务数据?");
					switch(msgBox.open()){
						case SWT.YES:
							resetGroupYPXX();
							break;
						case SWT.NO:
							btnYLFW.setSelection(false);
							btnYP.setSelection(true);
							return;
					}
				}
				//提示是否保存
				msgBox = new MessageBox(shell,SWT.YES |SWT.NO |SWT.ICON_QUESTION);
				msgBox.setText("确认");
				msgBox.setMessage("您确实要保存这条记录吗?");
				switch(msgBox.open()){
					case SWT.YES:
						//如果选择是则继续下面的操作
						break;
					case SWT.NO:
						//选择否则返回
						return;
				}
				
				//向处方表中插入一条新记录
				String strCFRQ = txtCFRQ.getText().trim();
				String strZYKS = txtKS.getText().trim();
				String strCFYS = txtCFYS.getText().trim();				

				strSQL = "INSERT INTO [CFD] VALUES('" +
					strZYH + "','" +
					strCFRQ + "','" +
					strZYKS + "','" +
					strCFYS + "',NULL)";
					
				//如果插入错误则弹出错误消息框
				if(db.executeUpdate(strSQL) == 0){
					System.out.println("Program ERROR@\n" + strSQL);
					shwErrMsgBox_Update();
					return;
				}
					
				
				//如果有药费则逐条插入药费明细表
				String strYF = txtYF.getText().trim();
				if(!strYF.equals("")){
					for(int i = 0;i < tblItemIndex_YP;i++){
						String strMXSX = saYPXXData[i][0];
						String strYM = saYPXXData[i][1];
						String strDJ = saYPXXData[i][2];
						String strJJDW = saYPXXData[i][3];
						String strSL = saYPXXData[i][4];						
						String strZFBL = saYPXXData[i][6];						
						String strGG = saYPXXData[i][8];
						String strXMFL = saYPXXData[i][9];
						String strCD = saYPXXData[i][10];
						String strCJ = saYPXXData[i][11];
						
						strSQL = "INSERT INTO [ZYYF] VALUES('" +
							strZYH +"','" +
							strCFRQ + "','" +
							strMXSX + "','" +
							strXMFL + "','" +
							strYM + "',CONVERT(money,'" +
							strDJ + "'),'" +
							strJJDW + "','" +
							strSL + "','" +
							strZFBL + "','" +
							strGG + "','" +
							strCD + "','" +					
							strCJ + "')";
						
						if(db.executeUpdate(strSQL) == 0){
							System.out.println("ERROR@\n" + strSQL);
							shwErrMsgBox_Update();
							return;
						}							
					}
				}
				
				//如果有医疗服务费则逐条插入医疗服务费明细表
				String strYLFWF = txtYLFWF.getText().trim();
				if( !strYLFWF.equals("") ){
					for(int i = 0;i < tblItemIndex_YLFW;i++){
						String strMXSX = saYLFWData[i][0];
						String strSFXM = saYLFWData[i][1];
						String strDJ = saYLFWData[i][2];
						String strJJDW = saYLFWData[i][3];
						String strSL = saYLFWData[i][4];						
						String strZFBL = saYLFWData[i][6];						
						String strXMFL = saYLFWData[i][8];						
						
						strSQL = "INSERT INTO [ZYYL] VALUES('" +
							strZYH + "','" +
							strCFRQ + "','" +
							strMXSX + "','" +
							strXMFL + "','" +
							strSFXM + "','" +
							strJJDW + "',CONVERT(money,'" +
							strDJ + "'),'" +
							strZFBL + "','" +
							strSL + "')";
							
						if(db.executeUpdate(strSQL) == 0){
							System.out.println("ERROR@\n" + strSQL);
							shwErrMsgBox_Update();
							return;
						}														
					}					
				}
				
				//如果有诊断信息则插入诊断记录表
				String strJBDM = txtJBDM.getText().trim();
				if(!strJBDM.equals("") ){									
					String strZD = txtZD.getText().trim();
					
					strSQL = "INSERT INTO [ZDJL] VALUES('" +
						strBLH + "','" +
						strCFRQ + "','" +
						strJBDM + "','" +
						strCFYS + "','" +
						strZD + "','0')";
						
					if(db.executeUpdate(strSQL) == 0){
						System.out.println("ERROR@\n" + strSQL);
						shwErrMsgBox_Update();
						return;
					}
				}
				
				initWidgets();
			}
		});
		
		//重输
		btnReInput = new Button(comBtnGrpDown,SWT.NONE);
		btnReInput.setText("重输");
		grdData = new GridData();
		grdData.widthHint = 60;
		btnReInput.setLayoutData(grdData);	
		
		//Add btnReInput Clicked handler
		btnReInput.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent event){
				initWidgets();
			}
		});
		
		//返回
		btnBack = new Button(comBtnGrpDown,SWT.NONE);
		btnBack.setText("返回");
		grdData = new GridData();
		grdData.widthHint = 60;
		btnBack.setLayoutData(grdData);
		
		//Add btnBack Clicked handler
		btnBack.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent event){
				//btnBack exit all
				shell.getDisplay().dispose();	
				shell.dispose();
				FrmMenu.main();
				return;
			}
		});

	}

	/**
	 * name:initWidgets
	 * author:pizi
	 * function:set initial text value,enable and editable
	 * 当初始运行和点击重输按键时会调用此方法
	 */
	private void initWidgets(){				
		//设置控件不可用
		btnYP.setEnabled(false);
		btnYLFW.setEnabled(false);
		cmbYPDM.setEnabled(false);
		btnOK.setEnabled(false);
		btnCancel.setEnabled(false);
		btnSave.setEnabled(false);
		btnReInput.setEnabled(false);
		
		comGrpRight.setVisible(false);	
				
		//选择"药"
		btnYP.setSelection(true);
		isYPRadioSelected = true;
		isCurrentJFMX = false;
		isCurrentFYMX = false;		
				
		//中间表格的行索引值设置为0
		tblItemIndex_YP = 0;
		tblItemIndex_YLFW = 0;
		
		//清空保存药品信息和医疗服务信息的二维数组
		saYPXXData = new String[100][12];
		saYLFWData = new String[100][9];
		
		//住院号字符串设置为空
		strZYH = "";
		
		//总药费和医疗服务费设置为0
		fYFSum = 0;
		fQZZF1Sum = 0;
		fYLFWSum = 0;
		fQZZF2Sum = 0;
	
		//设置控件为不可用
		txtCFYS.setEditable(false);
		txtCFRQ.setEditable(false);
		txtBRXM.setEditable(false);
		txtCSRQ.setEditable(false);
		txtBLH.setEditable(false);
		txtYF.setEditable(false);
		txtQZZF1.setEditable(false);
		txtYLFWF.setEditable(false);
		txtQZZF2.setEditable(false);
		txtJBDM.setEditable(false);
		txtBM.setEditable(false);
		txtZD.setEditable(false);
		txtDJ.setEditable(false);
		txtJJDW.setEditable(false);
		txtSL.setEditable(false);
		txtJE.setEditable(false);
		txtZFBL.setEditable(false);
		txtZFJE.setEditable(false);
		txtGG.setEditable(false);
		txtCD.setEditable(false);
		txtCJ.setEditable(false);
		txtJFHJ.setEditable(false);
		txtFYHJ.setEditable(false);
		txtKS.setEditable(false);
		
		//清空组件内的文本内容
		txtZYH.removeVerifyListener(lsnVrfy);
		txtJBDM.removeVerifyListener(lsnVrfyJBDM);
		txtZYH.setText("");
		txtBRXM.setText("");
		txtCSRQ.setText("");
		txtBLH.setText("");
		txtYF.setText("");
		txtYLFWF.setText("");
		txtQZZF1.setText("");
		txtQZZF2.setText("");
		txtJBDM.setText("");
		txtBM.setText("");
		txtZD.setText("");
		cmbYPDM.setText("");
		txtDJ.setText("");
		txtJJDW.setText("");
		txtSL.setText("");
		txtJE.setText("");
		txtZFBL.setText("");
		txtZFJE.setText("");
		txtGG.setText("");
		txtCD.setText("");
		txtCJ.setText("");
		txtJFHJ.setText("");
		txtFYHJ.setText("");
		txtKS.setText("");
		tblMiddle.removeAll();
		
		//住院号文本框设置为可用
		txtZYH.setEditable(true);
		txtZYH.setFocus();		
		
		//Set txtCFYS with current user name
		strSQL = "SELECT * FROM [SFUser] WHERE DQBJ='1'";
		if(db.executeQuery(strSQL)){
			try{
				if(db.rs.next()){
					txtCFYS.setText(db.rs.getString("UserID"));
				}
			}catch(SQLException se){}
		}
		else shwErrMsgBox_Query();		
		
		//Set txtCFRQ with current system datetime
		txtCFRQ.setText( db.getSysDate() );
		//给住院号文本框添加输入验证监听器
		txtZYH.addVerifyListener(lsnVrfy);
	}	
	
	/**
	 * 将中间表格的列和行内容返回到上次输入药品信息的状态
	 * @see
	 * 	"药"单选钮点击事件 
	 * 	"缴费合计"文本框丢失焦点事件,
	 * 	"费用合计"文本框丢失焦点事件调用此方法
	 */
	private void backToYPXX(){
		int i,j;
		
		//如果表格显示的缴费明细信息
		//则改变中间表格当前是否缴费明细的flag值
		if(isCurrentJFMX) isCurrentJFMX = false;
		//如果表格显示的费用明细信息则改变flag值
		if(isCurrentFYMX) isCurrentFYMX = false;
		
		final String[] COLUMN_NAMES_YPXX = {" ",
											"药名", 
											"单价",
											"计价单位",
											"数量",
											"金额",
											"自费比例",
											"自费金额",
											"规格"};						
		//清空中间表格行内容
		tblMiddle.removeAll();
		j = tblMiddle.getColumnCount();
		//释放掉当前中间表格的所有列
		for(i = 0;i < j;i++)
			colYPXX[i].dispose();
		
		colYPXX = new TableColumn[COLUMN_NAMES_YPXX.length];
		for (i = 0;i < 9; i++){
			//新申请列
			colYPXX[i] = new TableColumn(tblMiddle,SWT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -