📄 frmzycf.java
字号:
//显示金额
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 + -