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

📄 frmzycf.java

📁 很全面的包括了住院管理的各项功能。如:管理员登录
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		tblItemIndex_YLFW = 0;
		
		//添加确定按键点击事件的监听器
		//将药品信息Group中的数据添加到中间表格后清空Group
		btnOK.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent event){	
				//Display content of the table
				//如果当前登录的是药品信息				
				if( isYPRadioSelected){
					//将Group中的信息添加到中间表格中显示
					item = new TableItem(tblMiddle,SWT.NONE);
					item.setFont(itemFont);
					item.setText(0,String.valueOf(tblItemIndex_YP+1));
					item.setText(1,cmbYPDM.getText());
					item.setText(2,txtDJ.getText());
					item.setText(3,txtJJDW.getText());
					item.setText(4,txtSL.getText());
					item.setText(5,txtJE.getText());
					item.setText(6,txtZFBL.getText());
					item.setText(7,txtZFJE.getText());
					item.setText(8,txtGG.getText());
					
					//添加当前药品信息到二维数组中																	
					saYPXXData[tblItemIndex_YP][0] = String.valueOf(tblItemIndex_YP + 1);
					saYPXXData[tblItemIndex_YP][1] = cmbYPDM.getText();
					saYPXXData[tblItemIndex_YP][2] = txtDJ.getText();
					saYPXXData[tblItemIndex_YP][3] = txtJJDW.getText();
					saYPXXData[tblItemIndex_YP][4] = txtSL.getText();
					saYPXXData[tblItemIndex_YP][5] = txtJE.getText();
					saYPXXData[tblItemIndex_YP][6] = txtZFBL.getText();
					saYPXXData[tblItemIndex_YP][7] = txtZFJE.getText();
					saYPXXData[tblItemIndex_YP][8] = txtGG.getText();
					saYPXXData[tblItemIndex_YP][9] = strXMFL;
					saYPXXData[tblItemIndex_YP][10] = strCD;
					saYPXXData[tblItemIndex_YP][11] = strCJ;					
									
					//将当前药费累加后在文本框显示
					fYFSum += fJE;
					fQZZF1Sum += fZFJE;
					txtYF.setText(String.valueOf(fYFSum));
					txtQZZF1.setText(String.valueOf(fQZZF1Sum));
					
					resetGroupYPXX();						
					tblItemIndex_YP++;	
				}
				//如果当前登录的是医疗服务信息
				else{
					item = new TableItem(tblMiddle,SWT.NONE);
					item.setFont(itemFont);
					item.setText(0,String.valueOf(tblItemIndex_YLFW+1));
					item.setText(1,cmbYPDM.getText());
					item.setText(2,txtDJ.getText());
					item.setText(3,txtJJDW.getText());
					item.setText(4,txtSL.getText());
					item.setText(5,txtJE.getText());
					item.setText(6,txtZFBL.getText());
					item.setText(7,txtZFJE.getText());	
					
					//添加当前医疗服务信息到二维数组中																	
					saYLFWData[tblItemIndex_YLFW][0] = String.valueOf(tblItemIndex_YLFW+1);
					saYLFWData[tblItemIndex_YLFW][1] = cmbYPDM.getText();
					saYLFWData[tblItemIndex_YLFW][2] = txtDJ.getText();
					saYLFWData[tblItemIndex_YLFW][3] = txtJJDW.getText();
					saYLFWData[tblItemIndex_YLFW][4] = txtSL.getText();
					saYLFWData[tblItemIndex_YLFW][5] = txtJE.getText();
					saYLFWData[tblItemIndex_YLFW][6] = txtZFBL.getText();
					saYLFWData[tblItemIndex_YLFW][7] = txtZFJE.getText();
					saYLFWData[tblItemIndex_YLFW][8] = strXMFL;						
					
					//将当前医疗服务费累加后在文本框显示
					fYLFWSum += fJE;
					fQZZF2Sum += fZFJE;
					txtYLFWF.setText(String.valueOf(fYLFWSum));
					txtQZZF2.setText(String.valueOf(fQZZF2Sum));
					
					resetGroupYPXX();						
					tblItemIndex_YLFW++;
				}
				
				//设置"保存"按键为可用
				btnSave.setEnabled(true);
			}
		});	
		
		//放弃
		btnCancel = new Button(comBtnGrpUp,SWT.None);
		btnCancel.setText("放弃");
		grdData = new GridData();
		grdData.widthHint = 60;
		btnCancel.setLayoutData(grdData);
		
		//添加放弃按键点击事件的监听器
		//清空Group中的下拉框和文本框
		btnCancel.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent event){	
					resetGroupYPXX();						
			}
		});		
	}
	
	/**
	 *当选取药品代码下拉框中的某项后调用此方法
	 *查询数据表后显示药品相关信息
	 */
	void selectYPDM(int iSelectedIndex){	
		//Selection index error,just return
		if(iSelectedIndex < 0) return;
		String strSelectedYPNM;				
		//从动态数组中获取用户选取的药品代码
		//或收费项目的收费内码
		strSelectedYPNM = (String)astYPNM.get(iSelectedIndex);
		//如果当前选择的是药品信息
		if(isYPRadioSelected){
			//查询数据库
			strSQL = "SELECT * FROM [YPXX] WHERE YPNM='"+strSelectedYPNM+"'";
			if(db.executeQuery(strSQL)){
				try{
					while(db.rs.next()){
						//显示规格
						strGG = db.rs.getString("GG");
						if(strGG !=null) txtGG.setText(strGG);
						//显示产地
						strCD = db.rs.getString("CD");
						if(strCD != null) txtCD.setText(strCD);
						//显示厂家
						strCJ = db.rs.getString("CJ");
						if(strCJ != null) txtCJ.setText(strCJ);					
						//显示计价单位
						strJJDW = db.rs.getString("JJDW");
						if(strJJDW != null) txtJJDW.setText(strJJDW);
						//显示药品单价
						strYPDJ = db.rs.getString("YPDJ");
						if(strYPDJ !=null) txtDJ.setText(strYPDJ);
						//显示自费比例
						strZFBL = db.rs.getString("ZFBL");
						if(strZFBL != null) txtZFBL.setText(strZFBL);	
						strXMFL = db.rs.getString("YPFL");
					}
				}catch(SQLException se){}
			}		
			else shwErrMsgBox_Query();
		}
		//如果当前选择的是收费项目输入用代码
		else{
			//查询数据库
			strSQL = "SELECT * FROM [SFBZ] WHERE SFNM='"+strSelectedYPNM+"'";
			if(db.executeQuery(strSQL)){
				try{
					while(db.rs.next()){	
						//显示项目单价
						strYPDJ = db.rs.getString("SFDJ");
						if(strYPDJ !=null) txtDJ.setText(strYPDJ);
						//显示计价单位
						strJJDW = db.rs.getString("JJDW");
						if(strJJDW != null) txtJJDW.setText(strJJDW);						
						//显示自费比例
						strZFBL = db.rs.getString("ZFBL");
						if(strZFBL != null) txtZFBL.setText(strZFBL);	
						strXMFL = db.rs.getString("SFFL");
					}
				}catch(SQLException se){}
			}		
			else shwErrMsgBox_Query();
		}
		
		//改变flag值
		isInfGrpChanged = true;
		//设置数量输入框可用
		txtSL.setEditable(true);			
		//设置药品代码输入框不可用
		cmbYPDM.setEnabled(false);
		//数量输入框获得焦点
		txtSL.setFocus();
	}
	
	/** 
	 *当点击确定或放弃按键后调用此方法
	 *清空药品信息Group中的下拉框列表和各文本框中的文本
	 *设置各组件是否可用
	 */
	void resetGroupYPXX(){
		//移除文本框的输入验证监听器
		//cmbYPDM.removeVerifyListener(lsnVrfy);
		//cmbYPDM.removeVerifyListener(lsnVrfySFSR);
		txtSL.removeVerifyListener(lsnVrfySL);
		//如果下拉框中有项目则移除
		if(cmbYPDM.getItemCount() != 0){
			cmbYPDM.removeAll();
		}
		
		//清除各文本框中的文本
		cmbYPDM.setText("");
		txtDJ.setText("");
		txtDJ.setText("");
		txtJJDW.setText("");
		txtSL.setText("");
		txtJE.setText("");
		txtZFBL.setText("");
		txtZFJE.setText("");
		txtGG.setText("");
		txtCD.setText("");
		txtCJ.setText("");	
		
		//改变flag的值
		isInfGrpChanged = false;
		//数量文本框设置为不可用
		txtSL.setEditable(false);
		//确定按键设置为不可用
		btnOK.setEnabled(false);
		//药品代码文本框设置为可用
		cmbYPDM.setEnabled(true);
		//药品代码文本框获得焦点
		cmbYPDM.setFocus();	
	}
	
	/**
	 * name:createBottom
	 * author:pizi
	 * function:create Bottom widgets
	 */
	private void createBottom(){
		//缴费合计
		Label lblJFHJ = new Label(shell,SWT.NONE);
		lblJFHJ.setText("缴费合计");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblJFHJ.setLayoutData(grdData);
		grdData = new GridData();
		txtJFHJ = new Text(shell,SWT.BORDER);
		grdData.widthHint = 112;
		txtJFHJ.setLayoutData(grdData);		
		txtJFHJ.setToolTipText("双击我可以查看缴费明细信息");
		
		//给缴费合计文本框添加双击事件监听器		
		txtJFHJ.addMouseListener(new MouseAdapter(){
			public void mouseDoubleClick(MouseEvent event){
				//如果还未登录住院号
				if (strZYH == null || strZYH.equals(""))
					return;
				if(isCurrentJFMX) return;				
				int i,j;	
				
				//如果表格是费用明细信息改变费用明细flag的值
				if(isCurrentFYMX) isCurrentFYMX = false;				
				
				//改变中间表格列内容
				final String[] COLUMN_NAMES_JFMX = {" ",
												"缴费日期", 
												"收费员",
												"金额",
												"住院号",
												"缴费形式"};
				
				//清空中间表格行内容
				tblMiddle.removeAll();
				j = tblMiddle.getColumnCount();
				//释放掉当前中间表格的所有列
				for(i = 0;i < j;i++)
					colYPXX[i].dispose();
				
				colYPXX = new TableColumn[COLUMN_NAMES_JFMX.length];
				for (i = 0 ;i < 6; i++){					
					//新申请列
					colYPXX[i] = new TableColumn(tblMiddle,SWT.CENTER);
					//设置新列的文字
					colYPXX[i].setText(COLUMN_NAMES_JFMX[i]);
					//设置新列不可改变长度
					colYPXX[i].setResizable(false);					
				}							
				//Set each column's  width
				colYPXX[0].setWidth(32);
				colYPXX[1].setWidth(250);
				colYPXX[2].setWidth(100);
				colYPXX[3].setWidth(100);
				colYPXX[4].setWidth(160);
				colYPXX[5].setWidth(80);																	
				
				//向中间表格中添加缴费明细的行信息
				strSQL = "SELECT * FROM [JFJL] WHERE JZRQ IS NULL AND ZYH='"+strZYH+"'";
				if(db.executeQuery(strSQL)){
					try{
						i=0;
						while(db.rs.next()){
							item = new TableItem(tblMiddle,SWT.NONE);
							item.setFont(itemFont);
							//显示索引号
							item.setText(0,String.valueOf(i+1));
							//显示住院号
							item.setText(4,strZYH);
							//显示缴费日期
							item.setText(1,db.rs.getString("JFRQ"));
							//显示缴费形式
							item.setText(5,db.rs.getString("JFXS"));
							//显示收费员
							item.setText(2,db.rs.getString("SFY"));
							//显示金额
							item.setText(3,db.rs.getString("JE"));
							i++;
						}
					}catch(SQLException se){}
				}
				else shwErrMsgBox_Query();
				
				//改变缴费明细flag的值
				isCurrentJFMX = true;				
			}
		});
		
		//给缴费合计文本框添加失去焦点事件监听器
		//以清除中间表格的缴费明细信息,返回原来的输入状态
		txtJFHJ.addListener(SWT.FocusOut,new Listener(){
			public void handleEvent(Event event){
				//如果当前中间表格显示的缴费明细信息
				if(isCurrentJFMX){
					//如果上次输入的药品
					if(isYPRadioSelected)
						//返回到药品信息输入状态
						backToYPXX();
					//如果上次输入的医疗服务
					else
						//返回到医疗服务输入状态
						backToYLFW();
				}				
			}
		});
		//费用合计
		Label lblFYHJ = new Label(shell,SWT.NONE);
		lblFYHJ.setText("费用合计");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblFYHJ.setLayoutData(grdData);
		grdData = new GridData();
		txtFYHJ = new Text(shell,SWT.BORDER);
		grdData.widthHint = 112;
		txtFYHJ.setLayoutData(grdData);	
		txtFYHJ.setToolTipText("双击我可以查看费用明细信息");	
		
		//给费用合计文本框添加双击事件监听器
		txtFYHJ.addMouseListener(new MouseAdapter(){
			public void mouseDoubleClick(MouseEvent event){
				//如果还未登录住院号
				if (strZYH == null || strZYH.equals(""))
					return;
				if(isCurrentFYMX) return;				
				int i,j;				
				
				//如果显示的缴费明细信息则改变缴费明细flag的值
				if(isCurrentJFMX) isCurrentJFMX = false;
				
				//改变中间表格列内容
				final String[] COLUMN_NAMES_FYMX = {" ",
												"发生日期", 
												"科目",
												"金额",
												"单价",
												"数量",
												"所在科室",
												"自费比例",
												"自费金额"};					
				//清空中间表格行内容
				tblMiddle.removeAll();
				j = tblMiddle.getColumnCount();
				//释放掉当前中间表格的所有列
				for(i = 0;i < j;i++)
					colYPXX[i].dispose();
				
				colYPXX = new TableColumn[COLUMN_NAMES_FYMX.length];
				for (i = 0 ;i < 9; i++){					
					//新申请列
					colYPXX[i] = new TableColumn(tblMiddle,SWT.CENTER);
					//设置新列的文字
					colYPXX[i].setText(COLUMN_NAMES_FYMX[i]);
					//设置新列不可改变长度
					colYPXX[i].setResizable(false);					
				}	
			
				//Set each column's  width
				colYPXX[0].setWidth(32);
				colYPXX[1].setWidth(150);
				colYPXX[2].setWidth(250);
				colYPXX[3].setWidth(80);
				colYPXX[4].setWidth(60);
				colYPXX[5].setWidth(60);							
				colYPXX[6].setWidth(70);			
				colYPXX[7].setWidth(70);
				colYPXX[8].setWidth(70);

				//向中间表格中添加缴费明细的行信息
				strSQL = "SELECT * FROM [View_WJZFY] WHERE ZYH='"+strZYH+"'";
				if(db.executeQuery(strSQL)){
					try{
						i=0;
						while(db.rs.next()){
							item = new TableItem(tblMiddle,SWT.NONE);
							item.setFont(itemFont);
							//显示索引号
							item.setText(0,String.valueOf(i+1));
							//显示发生日期
							item.setText(1,db.rs.getString("CFRQ"));
							//显示所在科室
							item.setText(6,db.rs.getString("ZYKS"));
							//显示科目
							item.setText(2,db.rs.getString("KMLB")+
									"("+db.rs.getString("KM")+")");
							//显示单价 
							float dj = db.rs.getFloat("DJ");
							item.setText(4,String.valueOf(dj));
							//显示数量
							int sl = db.rs.getInt("SL");
							item.setText(5,String.valueOf(sl));
							//显示自费比例
							int zfbl = db.rs.getInt("ZFBL");
							item.setText(7,String.valueOf(zfbl));

⌨️ 快捷键说明

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