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

📄 frmzycf.java

📁 请放心下载没有病毒
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        	  case SWT.ESC:
          		  txtZYH.setText("");
          		  break;
        	  }
       		 }
     	 });

		
		//处方医师
		Label lblCFYS = new Label(shell,SWT.NONE);
		lblCFYS.setText("处方医师");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblCFYS.setLayoutData(grdData);
		grdData = new GridData();		
		txtCFYS = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtCFYS.setLayoutData(grdData);
		
		//处方日期
		Label lblCFRQ = new Label(shell,SWT.NONE);		
		lblCFRQ.setText("处方日期");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblCFRQ.setLayoutData(grdData);
		grdData = new GridData();		
		txtCFRQ = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtCFRQ.setLayoutData(grdData);		
				
		//病人姓名
		Label lblBRXM = new Label(shell,SWT.NONE);		
		lblBRXM.setText("病人姓名");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblBRXM.setLayoutData(grdData);
		grdData = new GridData();		
		txtBRXM = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtBRXM.setLayoutData(grdData);		
		
		//出生日期
		Label lblCSRQ = new Label(shell,SWT.NONE);		
		lblCSRQ.setText("出生日期");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblCSRQ.setLayoutData(grdData);
		grdData = new GridData();		
		txtCSRQ = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtCSRQ.setLayoutData(grdData);		
		
		//病历号
		Label lblBLH = new Label(shell,SWT.NONE);		
		lblBLH.setText("病历号");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblBLH.setLayoutData(grdData);
		grdData = new GridData();		
		txtBLH = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtBLH.setLayoutData(grdData);		
		
		//药
		lblNone = new Label(shell,SWT.NONE);
		grdData = new GridData();
		grdData.widthHint = 62;
		lblNone.setLayoutData(grdData);
		grdData = new GridData();
		
		btnYP = new Button(shell,SWT.RADIO);		
		btnYP.setText("药");		
		grdData.widthHint=112;
		btnYP.setLayoutData(grdData);
		//给药品信息单选钮添加选择监听器
		addRadioListener(btnYP);
		
		//药费
		Label lblYF = new Label(shell,SWT.NONE);		
		lblYF.setText("药费");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblYF.setLayoutData(grdData);
		grdData = new GridData();		
		txtYF = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtYF.setLayoutData(grdData);		
		
		//其中自费
		Label lblQZZF1 = new Label(shell,SWT.NONE);		
		lblQZZF1.setText("其中自费");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblQZZF1.setLayoutData(grdData);
		grdData = new GridData();		
		txtQZZF1 = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtQZZF1.setLayoutData(grdData);			
		
		//医疗服务
		lblNone = new Label(shell,SWT.NONE);
		grdData = new GridData();
		grdData.widthHint = 62;
		lblNone.setLayoutData(grdData);
		
		grdData = new GridData();
		btnYLFW = new Button(shell,SWT.RADIO);		
		btnYLFW.setText("医疗服务");
		grdData.widthHint=112;
		btnYLFW.setLayoutData(grdData);
		//给药品信息单选钮添加选择监听器
		addRadioListener(btnYLFW);
		
		//医疗服务费
		Label lblYLFWF = new Label(shell,SWT.NONE);		
		lblYLFWF.setText("医疗服务费");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblYLFWF.setLayoutData(grdData);
		grdData = new GridData();		
		txtYLFWF = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtYLFWF.setLayoutData(grdData);		
		
		//其中自费
		Label lblQZZF2 = new Label(shell,SWT.NONE);		
		lblQZZF2.setText("其中自费");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblQZZF2.setLayoutData(grdData);
		grdData = new GridData();		
		txtQZZF2 = new Text(shell,SWT.BORDER);
		grdData.widthHint=112;
		txtQZZF2.setLayoutData(grdData);		
	}
	
	/**
	 * 药品和医疗服务费单选按钮选择监听器
	 */
	private void addRadioListener(final Button radio){
		radio.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent event){				
				//如果选中"药"
				if(radio.getText().equals("药")){
					//如果当前药品为选择则直接返回
					if(isYPRadioSelected) return;				
					//如果当前正在登录医疗服务信息
					//或者当前中间表格正显示缴费明细或费用明细
					//则改变中间表格为药品信息
					else{						
						//如果医疗服务信息未登录完提示是否放弃
						if(isInfGrpChanged){
							msgBox = new MessageBox(shell,SWT.YES | SWT.ICON_QUESTION |
									SWT.NO);
							msgBox.setText("提示");
							msgBox.setMessage("是否放弃当前未登录完的医疗服务数据?");
							switch(msgBox.open()){
								case SWT.YES:
									resetGroupYPXX();
									break;
								case SWT.NO:
									btnYP.setSelection(false);
									btnYLFW.setSelection(true);
									return;
							}
						}												
						
						//调用方法恢复上次输入药品信息的状态
						backToYPXX();
						
						//改变下面Group中的控件
						lblYPDM.setText("药名");						
						lblGG.setVisible(true);
						lblCD.setVisible(true);
						lblCJ.setVisible(true);
						txtGG.setVisible(true);
						txtCD.setVisible(true);
						txtCJ.setVisible(true);															
						
						//改变药是否选择flag的值
						isYPRadioSelected = true;
						//设置焦点到药品代码文本框
						cmbYPDM.setFocus();
					}
				}
				//如果选中"医疗服务"
				else{
					//如果当前正在登录药品信息
					//或者当前中间表格正显示缴费明细或费用明细
					//则改变中间表格显示医疗服务信息
					if(isYPRadioSelected){					
						//如果药品信息未登录完提示是否放弃
						if(isInfGrpChanged){
							msgBox = new MessageBox(shell,SWT.YES | SWT.ICON_QUESTION |
									SWT.NO);
							msgBox.setText("提示");
							msgBox.setMessage("是否放弃当前未登录完的药品数据?");
							switch(msgBox.open()){
								case SWT.YES:
									resetGroupYPXX();
									break;
								case SWT.NO:
									btnYLFW.setSelection(false);
									btnYP.setSelection(true);
									return;
							}
						}						
						
						//调用方法恢复上次输入医疗服务信息的状态
						backToYLFW();
						
						//改变下面Group中的控件
						lblYPDM.setText("项目名");
						lblGG.setVisible(false);
						txtGG.setVisible(false);
						lblCD.setVisible(false);
						txtCD.setVisible(false);
						lblCJ.setVisible(false);
						txtCJ.setVisible(false);
						
						//改变药是否选择flag的值
						isYPRadioSelected = false;	
						
						//焦点设置到项目代码输入文本框中
						cmbYPDM.setFocus();
					}					
					//如果当前医疗服务为选择则直接返回
					else return;				
				}
			}
		});
	}
	
	/**
	 * name:createGroupUp
	 * author:pizi
	 * function:create the upper Group with widgets in it
	 *
	 */
	private void createGroupUp(){
		//Add Group Control with 2 composites,
		//using GridLayout with 2 columns
		
		//创建新的Group实例
		grpZDXX = new Group(shell,SWT.SHADOW_IN);
		//新的Group占6列
		grdData = new GridData(GridData.FILL_BOTH);
		grdData.horizontalSpan = 6;
		grpZDXX.setLayoutData(grdData);	
		//新的Group采用GridLayout布局(2列,水平间距5pixels)
		grdLtZDXX = new GridLayout(2,false);
		grdLtZDXX.horizontalSpacing = 18;
		grpZDXX.setLayout(grdLtZDXX);
		
		//左边的组件		
		comGrpLeft = new Composite(grpZDXX,SWT.NONE);
		//左边组件采用新GridLayout实例布局(4列)
		GridLayout grdLtZDXXLeft = new GridLayout(4,false);
		grdLtZDXXLeft.horizontalSpacing = 25;		
		comGrpLeft.setLayout(grdLtZDXXLeft);
		
		//疾病代码
		Label lblJBDM = new Label(comGrpLeft,SWT.NONE);		
		lblJBDM.setText("疾病代码");
		grdData = new GridData();
		grdData.widthHint = 48;
		lblJBDM.setLayoutData(grdData);
		grdData = new GridData();		
		txtJBDM = new Text(comGrpLeft,SWT.BORDER);
		grdData.widthHint=112;
		txtJBDM.setLayoutData(grdData);			
		
		//给txtJBDM添加获取焦点监听器
		txtJBDM.addListener(SWT.FocusIn,new Listener(){
			public void handleEvent(Event event){
				if(txtJBDM.getEditable()){
					//给txtJBDM添加输入验证监听器,只允许输入数字和小数点
					txtJBDM.addVerifyListener(lsnVrfyJBDM);
					lblMsg.setText("输入疾病代码前头部分然后回车或双击它\n"+
							"可以显示疾病代码表与之匹配的部分");
				}				
			}
		});
		
		//添加KeyListener当输入文本后按回车键时调用
		txtJBDM.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent event){
				switch(event.keyCode){
					case SWT.KEYPAD_CR:
					case SWT.CR:
						shwICDTable();
						break;
					case SWT.ESC:
						txtJBDM.setText("");
				}				
			}
		});
		
		//添加MouseListener当双击疾病代码输入框时调用
		txtJBDM.addMouseListener(new MouseAdapter(){
			public void mouseDoubleClick(MouseEvent event){
				if(txtJBDM.getEditable() && txtJBDM.getText() != ""){
					shwICDTable();
				}
			}
		});
			
		//病名
		Label lblBM = new Label(comGrpLeft,SWT.NONE);		
		lblBM.setText("病名");
		grdData = new GridData();
		grdData.widthHint = 62;
		lblBM.setLayoutData(grdData);				
		txtBM = new Text(comGrpLeft,SWT.BORDER);
		grdData = new GridData();
		grdData.widthHint=112;
		txtBM.setLayoutData(grdData);		
		
		//诊断
		Label lblZD = new Label(comGrpLeft,SWT.NONE);		
		lblZD.setText("诊断");
		grdData = new GridData();
		grdData.widthHint = 48;
		lblJBDM.setLayoutData(grdData);				
		txtZD = new Text(comGrpLeft,SWT.MULTI | SWT.BORDER
			 | SWT.WRAP | SWT.V_SCROLL);
		grdData = new GridData();
		grdData.widthHint = 325;
		grdData.heightHint = 40;
		grdData.horizontalSpan = 3;
		txtZD.setLayoutData(grdData);	
		
		//当诊断文本框获取焦点监听器时调用
		txtZD.addListener(SWT.FocusIn,new Listener(){
			public void handleEvent(Event event){
				lblMsg.setText("请输入诊断信息");
			}
		});
		
		//右边的组件
		comGrpRight = new Composite(grpZDXX,SWT.NONE);
		GridLayout grdLtZDXXRight = new GridLayout();
		//右边组件初始设置为不可见
		comGrpRight.setVisible(false);		
		comGrpRight.setLayout(grdLtZDXXRight);	
		
		//添加ICD信息表
		tblICDInfo = new Table(comGrpRight,SWT.SINGLE |
			 SWT.BORDER | SWT.FULL_SELECTION);
		tblICDInfo.setHeaderVisible(true);
		tblICDInfo.setLinesVisible(true);
		tblICDInfo.setRedraw(false);		
		tblICDInfo.setFont(font);	
		grdData = new GridData(GridData.FILL_BOTH);
		grdData.verticalSpan = 2;
		grdData.widthHint = 230;
		grdData.heightHint = 54;
		tblICDInfo.setLayoutData(grdData);
		
		//添加ICD信息表格行双击监听器
		tblICDInfo.addListener(SWT.MouseDoubleClick,new Listener(){
			public void handleEvent(Event event){
				//移除疾病代码文本框的验证监听器
				txtJBDM.removeVerifyListener(lsnVrfyJBDM);
				//获取用户双击所在表格行
				TableItem[] itemICDSelected = tblICDInfo.getSelection();
				txtJBDM.setText(itemICDSelected[0].getText(0));					
				txtBM.setText(itemICDSelected[0].getText(1));
				//诊断文本框可用
				txtZD.setEditable(true);							
				//ICD信息表不可见
				comGrpRight.setVisible(false);
				//诊断文本框获取焦点
				txtZD.setFocus();
				//设置"保存"按键为可用
				btnSave.setEnabled(true);
			}
		});
		
		colICDNO = new TableColumn(tblICDInfo,SWT.CENTER);
		colICDNO.setText("ICD编号");	
		colICDNO.setResizable(false);
		colICDNO.pack();
		colICDNO.setWidth(84);
		
		colICDName = new TableColumn(tblICDInfo,SWT.CENTER);
		colICDName.setText("疾病名");
		colICDName.setResizable(false);
		colICDName.pack();
		colICDName.setWidth(162);
		
		//Set redraw back to true so that the table
		//will paint appropriately
		tblICDInfo.setRedraw(true);	
	}
	
	void shwICDTable(){		
		//移除ICD信息表格中的所有行
		tblICDInfo.removeAll();
		String strJBDM = txtJBDM.getText().trim();				
		strSQL = "SELECT * FROM [JBDM] WHERE ICD LIKE '"+strJBDM+"%'";
		int rsCount = 0;
		if(db.executeQuery(strSQL)){
			try{
				while(db.rs.next()){
					//添加模糊查询结果,创建新行
					int i=0;
					rsCount++;
					itemICD = new TableItem(tblICDInfo,SWT.NONE);
					itemICD.setFont(itemFont);
					itemICD.setText(i++,db.rs.getString("ICD"));
					itemICD.setText(i++,db.rs.getString("JBMC"));
				}

⌨️ 快捷键说明

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