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