?? frmzycf.java
字號(hào):
//如果用戶輸入的疾病代碼不存在
if(rsCount == 0){
//提示重輸
lblMsg.setText("該疾病代碼不存在,請(qǐng)重新輸入!\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 = {" ",
"藥名",
"單價(jià)",
"計(jì)價(jià)單位",
"數(shù)量",
"金額",
"自費(fèi)比例",
"自費(fèi)金額",
"規(guī)格"};
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添加獲取焦點(diǎn)監(jiān)聽器
cmbYPDM.addListener(SWT.FocusIn,new Listener(){
public void handleEvent(Event event){
//添加輸入驗(yàn)證監(jiān)聽器,只允許輸入字母和退格鍵
//cmbYPDM.addVerifyListener(lsnVrfySFSR);
//如果當(dāng)前正在錄入藥品信息
if(cmbYPDM.isEnabled()){
if(isYPRadioSelected){
lblMsg.setText("請(qǐng)輸入藥品代碼\n"+
"也可以先輸入疾病相關(guān)信息");
}
//如果當(dāng)前正在錄入醫(yī)療服務(wù)信息
else{
lblMsg.setText("請(qǐng)輸入收費(fèi)項(xiàng)目輸入用代碼\n"+
"也可以先輸入疾病相關(guān)信息");
}
}
}
});
//添加藥品代碼文本框的按鍵監(jiān)聽器,用戶按回車后調(diào)用
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();
//如果下拉框中有項(xiàng)目則移除
if(itemCount!=0){
cmbYPDM.remove(0,itemCount-1);
}
astYPNM = new ArrayList();
//如果當(dāng)前輸入的是藥品代碼
if(isYPRadioSelected){
//移除藥品代碼文本框的輸入驗(yàn)證監(jiān)聽器
//cmbYPDM.removeVerifyListener(lsnVrfy);
//Query Database for YPNM
strSQL = "SELECT * FROM [YPXX] WHERE YPSR LIKE '"+strYPNM+"%'";
if(db.executeQuery(strSQL)){
try{
while(db.rs.next()){
//添加藥品代碼到動(dòng)態(tài)數(shù)組中保存
astYPNM.add(db.rs.getObject("YPNM"));
//添加藥名到下拉框中
cmbYPDM.add(db.rs.getString("YM"));
}
}catch(SQLException se){}
}
else shwErrMsgBox_Query();
astYPNM.trimToSize();
itemCount = cmbYPDM.getItemCount();
//用戶輸入的藥品內(nèi)碼不存在,提示重新輸入
if(itemCount == 0){
lblMsg.setText("該代碼不存在,請(qǐng)重新輸入!"+
"\n也可以先輸入診斷信息");
cmbYPDM.setSelection(new Point(0,strYPNM.length()));
//cmbYPDM.addVerifyListener(lsnVrfy);
}
//用戶輸入的藥品內(nèi)碼存在且查找結(jié)果唯一,顯示其藥名
else if(itemCount == 1){
cmbYPDM.select(0);
cmbYPDM.remove(0);
//調(diào)用選取下拉框后的方法
selectYPDM(0);
}
//用戶輸入的藥品內(nèi)碼存在且查詢結(jié)果有多個(gè)
else{
lblMsg.setText("請(qǐng)點(diǎn)擊下拉按鈕選擇藥品"+
"\n也可以先輸入診斷信息");
//CODE TO ADD...
break;
}
}
//當(dāng)前輸入的為收費(fèi)項(xiàng)目輸入用代碼
else{
//移除輸入用代碼文本框的輸入驗(yàn)證監(jiān)聽器
//cmbYPDM.removeVerifyListener(lsnVrfySFSR);
//Query Database for YPNM
strSQL = "SELECT * FROM [SFBZ] WHERE SFSR LIKE '%"+strYPNM+"%'";
if(db.executeQuery(strSQL)){
try{
while(db.rs.next()){
//添加藥品代碼到動(dòng)態(tài)數(shù)組中保存
astYPNM.add(db.rs.getObject("SFNM"));
//添加藥名到下拉框中
cmbYPDM.add(db.rs.getString("SFXM"));
}
}catch(SQLException se){}
}
else shwErrMsgBox_Query();
astYPNM.trimToSize();
itemCount = cmbYPDM.getItemCount();
//用戶輸入的藥品內(nèi)碼不存在,提示重新輸入
if(itemCount == 0){
lblMsg.setText("該代碼不存在,請(qǐng)重新輸入!"+
"\n也可以先輸入診斷信息");
cmbYPDM.setSelection(new Point(0,strYPNM.length()));
//cmbYPDM.addVerifyListener(lsnVrfySFSR);
}
//用戶輸入的藥品內(nèi)碼存在且查找結(jié)果唯一,顯示其藥名
else if(itemCount == 1){
cmbYPDM.select(0);
cmbYPDM.remove(0);
//調(diào)用選取下拉框后的方法
selectYPDM(0);
}
//用戶輸入的項(xiàng)目代碼查詢結(jié)果有多個(gè)
else{
//CODE TO ADD...
}
}
break;
}
}
});
//添加選擇監(jiān)聽器,當(dāng)用戶選擇下拉框中的某一項(xiàng)時(shí)調(diào)用
cmbYPDM.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent event){
selectYPDM(cmbYPDM.getSelectionIndex());
}
});
//單價(jià)
Label lblDJ = new Label(grpYPXX,SWT.NONE);
lblDJ.setText("單價(jià)");
grdData = new GridData();
grdData.widthHint = 62;
lblDJ.setLayoutData(grdData);
grdData = new GridData();
txtDJ = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtDJ.setLayoutData(grdData);
//計(jì)價(jià)單位
Label lblJJDW = new Label(grpYPXX,SWT.NONE);
lblJJDW.setText("計(jì)價(jià)單位");
grdData = new GridData();
grdData.widthHint = 62;
lblJJDW.setLayoutData(grdData);
grdData = new GridData();
txtJJDW = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtJJDW.setLayoutData(grdData);
//數(shù)量
Label lblSL = new Label(grpYPXX,SWT.NONE);
lblSL.setText("數(shù)量");
grdData = new GridData();
grdData.widthHint = 54;
lblSL.setLayoutData(grdData);
grdData = new GridData();
txtSL = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtSL.setLayoutData(grdData);
//添加數(shù)量獲取焦點(diǎn)監(jiān)聽器,當(dāng)數(shù)量文本框獲得焦點(diǎn)時(shí)調(diào)用
txtSL.addListener(SWT.FocusIn,new Listener(){
public void handleEvent(Event event){
if(txtSL.getEditable()){
//添加輸入驗(yàn)證監(jiān)聽器,只允許輸入數(shù)字和小數(shù)點(diǎn)
txtSL.addVerifyListener(lsnVrfySL);
lblMsg.setText("請(qǐng)輸入藥品數(shù)量\n"+
"也可以先輸入疾病相關(guān)信息");
}
}
});
//添加數(shù)量文本框按鍵監(jiān)聽器,用戶按回車后調(diào)用
txtSL.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent event){
switch(event.keyCode){
case SWT.KEYPAD_CR:
case SWT.CR:
//移除數(shù)量文本框的驗(yàn)證監(jiān)聽器
txtSL.removeVerifyListener(lsnVrfySL);
boolean numFormatErr = false;
int iYPSL = 1;
int iZFBL;
float fYPDJ;
try{
iYPSL = Integer.parseInt(txtSL.getText());
}catch(NumberFormatException e){
numFormatErr = true;
}
//如果未輸入藥品數(shù)量,或藥品數(shù)量為0
if(txtSL.getText().equals("") || iYPSL == 0){
txtSL.selectAll();
lblMsg.setText("藥品數(shù)量不能為0,請(qǐng)重新輸入!");
txtSL.addVerifyListener(lsnVrfySL);
return;
}
//如果輸入的藥品數(shù)量數(shù)據(jù)錯(cuò)誤
if(numFormatErr){
txtSL.selectAll();
lblMsg.setText("藥品數(shù)量數(shù)字的格式錯(cuò)誤,請(qǐng)重新輸入!");
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));
//數(shù)量文本框設(shè)置為不可用
txtSL.setEditable(false);
//確定按鍵設(shè)置為可用且獲得焦點(diǎn)
btnOK.setEnabled(true);
btnOK.setFocus();
lblMsg.setText("按確定鍵將該項(xiàng)藥品信息添加到表格中");
}
}
});
//金額
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);
//自費(fèi)比例
Label lblZFBL = new Label(grpYPXX,SWT.NONE);
lblZFBL.setText("自費(fèi)比例");
grdData = new GridData();
grdData.widthHint = 62;
lblZFBL.setLayoutData(grdData);
grdData = new GridData();
txtZFBL = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtZFBL.setLayoutData(grdData);
//自費(fèi)金額
Label lblZFJE = new Label(grpYPXX,SWT.NONE);
lblZFJE.setText("自費(fèi)金額");
grdData = new GridData();
grdData.widthHint = 54;
lblZFJE.setLayoutData(grdData);
grdData = new GridData();
txtZFJE = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtZFJE.setLayoutData(grdData);
//規(guī)格
lblGG = new Label(grpYPXX,SWT.NONE);
lblGG.setText("規(guī)格");
grdData = new GridData();
grdData.widthHint = 62;
lblGG.setLayoutData(grdData);
grdData = new GridData();
txtGG = new Text(grpYPXX,SWT.BORDER);
grdData.widthHint=112;
txtGG.setLayoutData(grdData);
//產(chǎn)地
lblCD = new Label(grpYPXX,SWT.NONE);
lblCD.setText("產(chǎn)地");
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;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -