📄 frmzycf.java
字号:
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 + -