📄 frmzycf.java
字号:
//如果用户输入的疾病代码不存在
if(rsCount == 0){
//提示重输
lblMsg.setText("该疾病代码不存在,请重新输入!\n"+
"输入疾病代码前头部分然后回车或双击它\n"+
"可以显示疾病代码表与之匹配的部分");
//显示右边组件
comGrpRight.setVisible(false);
return;
}
}catch(SQLException se){}
//显示右边组件
comGrpRight.setVisible(true);
}
else shwErrMsgBox_Query();
}
/**
* name:createTable
* author:pizi
* function:create the middle Table control
*/
private void createTable(){
//Create a table with visible headers and lines,
//and set columns to the font that we created
tblMiddle = new Table(shell,SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
tblMiddle.setHeaderVisible(true);
tblMiddle.setLinesVisible(true);
tblMiddle.setRedraw(false);
//Create font
font = new Font(display, "Helvetica", 9, SWT.BOLD);
tblMiddle.setFont(font);
grdData = new GridData(GridData.FILL_BOTH);
grdData.horizontalSpan = 6;
grdData.heightHint = 114;
tblMiddle.setLayoutData(grdData);
//Create columns
final String[] COLUMN_NAMES_YPXX = {" ",
"药名",
"单价",
"计价单位",
"数量",
"金额",
"自费比例",
"自费金额",
"规格"};
colYPXX = new TableColumn[COLUMN_NAMES_YPXX.length];
for (int i = 0;i < 9; i++){
colYPXX[i] = new TableColumn(tblMiddle,SWT.CENTER);
colYPXX[i].setText(COLUMN_NAMES_YPXX[i]);
colYPXX[i].setResizable(false);
}
//Call pack() on each one to size it to the contents
//after set text into the columns
for(int i = 0,n = colYPXX.length; i < n; i++){
colYPXX[i].pack();
}
//Set each column's width
colYPXX[0].setWidth(32);
colYPXX[1].setWidth(200);
colYPXX[2].setWidth(70);
colYPXX[3].setWidth(70);
colYPXX[4].setWidth(70);
colYPXX[5].setWidth(70);
colYPXX[6].setWidth(70);
colYPXX[7].setWidth(70);
colYPXX[8].setWidth(70);
//Set redraw back to true so that the table
//will paint appropriately
tblMiddle.setRedraw(true);
}
/**
* name:createGroupDown
* author:pizi
* function:create Group below with widgets in it
*/
private void createGroupDown(){
//Add Group Control with composites,
//using GridLayout with 6 columns
grpYPXX = new Group(shell,SWT.SHADOW_IN);
grdLtYPXX = new GridLayout(6,false);
grdLtYPXX.horizontalSpacing = 25;
grpYPXX.setLayout(grdLtYPXX);
grdData = new GridData(GridData.FILL_BOTH);
grdData.horizontalSpan = 6;
grpYPXX.setLayoutData(grdData);
//药品代码
lblYPDM = new Label(grpYPXX,SWT.NONE);
lblYPDM.setText("药名");
grdData = new GridData();
grdData.widthHint = 54;
lblYPDM.setLayoutData(grdData);
grdData = new GridData();
cmbYPDM = new Combo(grpYPXX,SWT.BORDER);
grdData.widthHint=97;
cmbYPDM.setLayoutData(grdData);
cmbYPDM.setTextLimit(6);
cmbYPDM.setVisibleItemCount(10);
isInfGrpChanged = false;
//给cmbYPDM添加获取焦点监听器
cmbYPDM.addListener(SWT.FocusIn,new Listener(){
public void handleEvent(Event event){
//添加输入验证监听器,只允许输入字母和退格键
//cmbYPDM.addVerifyListener(lsnVrfySFSR);
//如果当前正在录入药品信息
if(cmbYPDM.isEnabled()){
if(isYPRadioSelected){
lblMsg.setText("请输入药品代码\n"+
"也可以先输入疾病相关信息");
}
//如果当前正在录入医疗服务信息
else{
lblMsg.setText("请输入收费项目输入用代码\n"+
"也可以先输入疾病相关信息");
}
}
}
});
//添加药品代码文本框的按键监听器,用户按回车后调用
cmbYPDM.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent event){
switch(event.keyCode){
case SWT.KEYPAD_CR:
case SWT.CR:
String strYPNM = cmbYPDM.getText().trim();
int itemCount = cmbYPDM.getItemCount();
//如果下拉框中有项目则移除
if(itemCount!=0){
cmbYPDM.remove(0,itemCount-1);
}
astYPNM = new ArrayList();
//如果当前输入的是药品代码
if(isYPRadioSelected){
//移除药品代码文本框的输入验证监听器
//cmbYPDM.removeVerifyListener(lsnVrfy);
//Query Database for YPNM
strSQL = "SELECT * FROM [YPXX] WHERE YPSR LIKE '"+strYPNM+"%'";
if(db.executeQuery(strSQL)){
try{
while(db.rs.next()){
//添加药品代码到动态数组中保存
astYPNM.add(db.rs.getObject("YPNM"));
//添加药名到下拉框中
cmbYPDM.add(db.rs.getString("YM"));
}
}catch(SQLException se){}
}
else shwErrMsgBox_Query();
astYPNM.trimToSize();
itemCount = cmbYPDM.getItemCount();
//用户输入的药品内码不存在,提示重新输入
if(itemCount == 0){
lblMsg.setText("该代码不存在,请重新输入!"+
"\n也可以先输入诊断信息");
cmbYPDM.setSelection(new Point(0,strYPNM.length()));
//cmbYPDM.addVerifyListener(lsnVrfy);
}
//用户输入的药品内码存在且查找结果唯一,显示其药名
else if(itemCount == 1){
cmbYPDM.select(0);
cmbYPDM.remove(0);
//调用选取下拉框后的方法
selectYPDM(0);
}
//用户输入的药品内码存在且查询结果有多个
else{
lblMsg.setText("请点击下拉按钮选择药品"+
"\n也可以先输入诊断信息");
//CODE TO ADD...
break;
}
}
//当前输入的为收费项目输入用代码
else{
//移除输入用代码文本框的输入验证监听器
//cmbYPDM.removeVerifyListener(lsnVrfySFSR);
//Query Database for YPNM
strSQL = "SELECT * FROM [SFBZ] WHERE SFSR LIKE '%"+strYPNM+"%'";
if(db.executeQuery(strSQL)){
try{
while(db.rs.next()){
//添加药品代码到动态数组中保存
astYPNM.add(db.rs.getObject("SFNM"));
//添加药名到下拉框中
cmbYPDM.add(db.rs.getString("SFXM"));
}
}catch(SQLException se){}
}
else shwErrMsgBox_Query();
astYPNM.trimToSize();
itemCount = cmbYPDM.getItemCount();
//用户输入的药品内码不存在,提示重新输入
if(itemCount == 0){
lblMsg.setText("该代码不存在,请重新输入!"+
"\n也可以先输入诊断信息");
cmbYPDM.setSelection(new Point(0,strYPNM.length()));
//cmbYPDM.addVerifyListener(lsnVrfySFSR);
}
//用户输入的药品内码存在且查找结果唯一,显示其药名
else if(itemCount == 1){
cmbYPDM.select(0);
cmbYPDM.remove(0);
//调用选取下拉框后的方法
selectYPDM(0);
}
//用户输入的项目代码查询结果有多个
else{
//CODE TO ADD...
}
}
break;
}
}
});
//添加选择监听器,当用户选择下拉框中的某一项时调用
cmbYPDM.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event){
selectYPDM(cmbYPDM.getSelectionIndex());
}
});
//单价
Label lblDJ = new Label(grpYPXX,SWT.NONE);
lblDJ.setText("单价");
grdData = new GridData();
grdData.widthHint = 62;
lblDJ.setLayoutData(grdData);
grdData = new GridData();
txtDJ = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtDJ.setLayoutData(grdData);
//计价单位
Label lblJJDW = new Label(grpYPXX,SWT.NONE);
lblJJDW.setText("计价单位");
grdData = new GridData();
grdData.widthHint = 62;
lblJJDW.setLayoutData(grdData);
grdData = new GridData();
txtJJDW = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtJJDW.setLayoutData(grdData);
//数量
Label lblSL = new Label(grpYPXX,SWT.NONE);
lblSL.setText("数量");
grdData = new GridData();
grdData.widthHint = 54;
lblSL.setLayoutData(grdData);
grdData = new GridData();
txtSL = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtSL.setLayoutData(grdData);
//添加数量获取焦点监听器,当数量文本框获得焦点时调用
txtSL.addListener(SWT.FocusIn,new Listener(){
public void handleEvent(Event event){
if(txtSL.getEditable()){
//添加输入验证监听器,只允许输入数字和小数点
txtSL.addVerifyListener(lsnVrfySL);
lblMsg.setText("请输入药品数量\n"+
"也可以先输入疾病相关信息");
}
}
});
//添加数量文本框按键监听器,用户按回车后调用
txtSL.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent event){
switch(event.keyCode){
case SWT.KEYPAD_CR:
case SWT.CR:
//移除数量文本框的验证监听器
txtSL.removeVerifyListener(lsnVrfySL);
boolean numFormatErr = false;
int iYPSL = 1;
int iZFBL;
float fYPDJ;
try{
iYPSL = Integer.parseInt(txtSL.getText());
}catch(NumberFormatException e){
numFormatErr = true;
}
//如果未输入药品数量,或药品数量为0
if(txtSL.getText().equals("") || iYPSL == 0){
txtSL.selectAll();
lblMsg.setText("药品数量不能为0,请重新输入!");
txtSL.addVerifyListener(lsnVrfySL);
return;
}
//如果输入的药品数量数据错误
if(numFormatErr){
txtSL.selectAll();
lblMsg.setText("药品数量数字的格式错误,请重新输入!");
txtSL.addVerifyListener(lsnVrfySL);
return;
}
fYPDJ = Float.parseFloat(strYPDJ);
iZFBL = Integer.parseInt(strZFBL);
fJE = iYPSL * fYPDJ;
fZFJE =( iYPSL * fYPDJ * iZFBL )/100;
txtSL.setText(String.valueOf(iYPSL));
txtJE.setText(String.valueOf(fJE));
txtZFJE.setText(String.valueOf(fZFJE));
//数量文本框设置为不可用
txtSL.setEditable(false);
//确定按键设置为可用且获得焦点
btnOK.setEnabled(true);
btnOK.setFocus();
lblMsg.setText("按确定键将该项药品信息添加到表格中");
}
}
});
//金额
Label lblJE = new Label(grpYPXX,SWT.NONE);
lblJE.setText("金额");
grdData = new GridData();
grdData.widthHint = 62;
lblJE.setLayoutData(grdData);
grdData = new GridData();
txtJE = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtJE.setLayoutData(grdData);
//自费比例
Label lblZFBL = new Label(grpYPXX,SWT.NONE);
lblZFBL.setText("自费比例");
grdData = new GridData();
grdData.widthHint = 62;
lblZFBL.setLayoutData(grdData);
grdData = new GridData();
txtZFBL = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtZFBL.setLayoutData(grdData);
//自费金额
Label lblZFJE = new Label(grpYPXX,SWT.NONE);
lblZFJE.setText("自费金额");
grdData = new GridData();
grdData.widthHint = 54;
lblZFJE.setLayoutData(grdData);
grdData = new GridData();
txtZFJE = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtZFJE.setLayoutData(grdData);
//规格
lblGG = new Label(grpYPXX,SWT.NONE);
lblGG.setText("规格");
grdData = new GridData();
grdData.widthHint = 62;
lblGG.setLayoutData(grdData);
grdData = new GridData();
txtGG = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtGG.setLayoutData(grdData);
//产地
lblCD = new Label(grpYPXX,SWT.NONE);
lblCD.setText("产地");
grdData = new GridData();
grdData.widthHint = 62;
lblCD.setLayoutData(grdData);
grdData = new GridData();
txtCD = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtCD.setLayoutData(grdData);
//厂家
lblCJ = new Label(grpYPXX,SWT.NONE);
lblCJ.setText("厂家");
grdData = new GridData();
grdData.widthHint = 54;
lblCJ.setLayoutData(grdData);
grdData = new GridData();
txtCJ = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint = 112;
txtCJ.setLayoutData(grdData);
//确定
comBtnGrpUp = new Composite(grpYPXX,SWT.NONE);
grdData = new GridData(GridData.HORIZONTAL_ALIGN_END);
grdData.horizontalSpan = 4;
comBtnGrpUp.setLayoutData(grdData);
grdLtCmpUp = new GridLayout(2,true);
grdLtCmpUp.horizontalSpacing = 0;
comBtnGrpUp.setLayout(grdLtCmpUp);
btnOK = new Button(comBtnGrpUp,SWT.None);
btnOK.setText("确定");
grdData = new GridData();
grdData.widthHint = 60;
btnOK.setLayoutData(grdData);
tblItemIndex_YP = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -