?? goodsquantitycombineframe.java
字號:
jButton3.setEnabled(false); jButton4.setEnabled(false); jButton5.setEnabled(false); jButton6.setEnabled(true); jButton7.setEnabled(true); }else{ jButton2.setEnabled(true); jButton3.setEnabled(true); jButton4.setEnabled(true); jButton5.setEnabled(true); jButton6.setEnabled(false); jButton7.setEnabled(false); } } //檢查明細賬按鈕的狀態 public void checkSubBtn(boolean isCreated){ if(isCreated){ jButton9.setEnabled(true); jButton10.setEnabled(true); }else{ jButton9.setEnabled(false); jButton10.setEnabled(false); } } //列表1的選擇事件 void jList1_valueChanged(ListSelectionEvent e) { if(listData1.size() > 0){ this.showStockLedger(); }else{ this.clearStockLedger(); } } //表格行選擇事件 public void jTable1_valueChanged(ListSelectionEvent e) { //重新計算金額 this.recountGoodsOutAmount(); } //表格內容改變事件 public void jTable2_valueChanged(TableModelEvent e) { //重新計算金額 this.recountGoodsInAmount(); } //為調入商品表格創建一個空行 public void createNewLineForGoodsIn(){ Object[][] tempObjs = new Object[1][7]; tempObjs[0][0] = new Integer(0); tempObjs[0][1] = new String(""); tempObjs[0][2] = new String(""); tempObjs[0][3] = new Double(0); tempObjs[0][4] = new Integer(0); tempObjs[0][5] = new Double(0); tempObjs[0][6] = new String(""); stockSubLedgerObjectsIn = tempObjs; this.showTableDataIn(stockSubLedgerObjectsIn); } //查詢方法 public void search(){ //取得查詢選項 int selectedIndex = jComboBox1.getSelectedIndex(); //取得編輯框的變量 String searchValue = jTextField1.getText().trim(); String startDateStr = jTextField2.getText().trim(); String endDateStr = jTextField3.getText().trim(); if (selectedIndex == 0 | selectedIndex == 1 | selectedIndex == 2 | selectedIndex == 3 | selectedIndex == 4) { if (searchValue.length() == 0) { JOptionPane.showMessageDialog(null, "請輸入查詢值"); return; } switch (selectedIndex) { case 0: //根據商品組合單編號取得記錄 stockLedgers = stockManagementData.getStockLedgerByStringField( ledgerDate, "orderId", searchValue, 12); break; case 1: //根據商品組合用戶取得記錄 stockLedgers = stockManagementData.getStockLedgerByStringField( ledgerDate, "submitUser", searchValue, 12); break; case 2: //根據組合前倉庫名字取得記錄,組合前倉庫名字保存在組合單的commitUser字段 stockLedgers = stockManagementData.getStockLedgerByStringField( ledgerDate, "commitUser", searchValue, 12); break; case 3: //根據組合后倉庫名字取得記錄, stockLedgers = stockManagementData.getStockLedgerByStringField( ledgerDate, "warehouse", searchValue, 12); break; case 4: if(dataMethod.checkInt(searchValue) == 0){ JOptionPane.showMessageDialog(null, "按完成狀態查詢時,輸入值必須是整數," + "0表示進行,1表示撤消,2表示完成."); return; } //根據完成狀態取得記錄 stockLedgers = stockManagementData.getStockLedgerByOnProcess( ledgerDate, 12, Integer.parseInt(searchValue)); break; } }else{ java.sql.Timestamp startDate = dataMethod.transferDate(startDateStr); java.sql.Timestamp endDate = dataMethod.transferEndDate(endDateStr); if(startDate == null | endDate == null){ JOptionPane.showMessageDialog(null, "日期輸入錯誤,正確的日期格式是" + "yyyy-mm-dd(年-月-日),如2004-1-1"); return; } //根據日期取得記錄 stockLedgers = stockManagementData.getStockLedgerByOrderDate(ledgerDate, startDate, endDate, 12); } this.showSearchStockLedger(); } //單擊事件 public void actionPerformed(ActionEvent e) { //取得按鈕的動作字符串 String actionCommand = e.getActionCommand().trim(); //檢查打開的賬套是否當前賬套 if (actionCommand.equals("createStockLedger") | actionCommand.equals("updateStockLedger") | actionCommand.equals("cancelStockLedger") | actionCommand.equals("restoreStockLedger")) { int result = stockManagementData.isCurrentLedger(ledgerDate); if(result == 0){ JOptionPane.showMessageDialog(null, ledgerDate + "是往期賬套,不能進行添加、修改、撤消和恢復操作."); return; } } if (actionCommand.equals("search")) { //查詢 search(); }else if(actionCommand.equals("createStockLedger")){ action = "create"; this.clearStockLedger(); this.createNewLineForGoodsIn(); this.checkBtn(true); this.checkSubBtn(true); }else if(actionCommand.equals("updateStockLedger")){ action = "update"; this.checkBtn(true); }else if(actionCommand.equals("cancelStockLedger")){ action = "cancel"; this.checkBtn(true); }else if(actionCommand.equals("restoreStockLedger")){ action = "restore"; this.checkBtn(true); }else if(actionCommand.equals("ok")){ int selectedIndex = jList1.getSelectedIndex(); //創建庫存賬套數據表的單個記錄數組 String[] stockLedger = new String[13]; //取得商品組合單的值 stockLedger[0] = ""; //單據編號 stockLedger[1] = "12"; //12表示商品組合調入單 stockLedger[2] = ""; //關聯標識 stockLedger[3] = user.getUserName(); //組合用戶 stockLedger[4] = jTextField7.getText().trim(); //組合前倉庫 stockLedger[5] = ""; stockLedger[6] = ""; stockLedger[7] = ""; stockLedger[8] = jTextField8.getText().trim(); //組合后倉庫 stockLedger[9] = jTextField9.getText().trim(); //組合日期 stockLedger[10] = dataMethod.getCurrentDate().toString(); //填寫組合單的系統日期 stockLedger[11] = "2"; //組合單一旦創建,便處于完成狀態 stockLedger[12] = jTextArea1.getText().trim(); int result = 0; if(action.equals("update") | action.equals("create")){ //檢查組合前倉庫名字 result = stockManagementData.checkWarehouse(stockLedger[4]); if(result == 0){ JOptionPane.showMessageDialog(null, stockLedger[4] + "在倉庫數據庫中" + "不存在,請打開倉庫數據管理窗口添加."); return; } //檢查組合后倉庫名字 result = stockManagementData.checkWarehouse(stockLedger[8]); if(result == 0){ JOptionPane.showMessageDialog(null, stockLedger[8] + "在倉庫數據庫中" + "不存在,請打開倉庫數據管理窗口添加."); return; } //檢查組合日期 if(dataMethod.transferDateTime(stockLedger[9]) == null){ JOptionPane.showMessageDialog(null, "組合日期輸入錯誤,正確的日期格式是" + "yyyy-mm-dd(年-月-日),如2004-1-1"); return; } //檢查商品組合單明細賬的商品條形碼、數量、日期 result = this.checkStockSubLedgerGoodsBarCode(); if(result == 0) return; result = this.checkStockSubLedgerQuantity(); if(result == 0) return; result = this.checkStockSubLedgerDate(); if(result == 0) return; //檢查組合前與組合后商品的進貨金額是否相等 result = this.checkGoodsInAndOutAmount(); if(result == 0) return; //轉換表格數組 this.transferTableData(); } if(action.equals("create")){ //檢查明細賬是否為空 if(stockSubLedgerObjectsOut.length == 0){ JOptionPane.showMessageDialog(null, "組合前的商品明細為空,不可以創建商品組合單."); return; } //添加商品組合單 result = stockManagementData.createCombineOrder(ledgerDate, stockLedger, stockSubLedgersOut, stockSubLedgersIn); if(result == 1){ JOptionPane.showMessageDialog(null, "商品組合單添加成功,請重新執行查詢操作顯示新的商品組合單."); }else{ JOptionPane.showMessageDialog(null, "商品組合單添加失敗,請檢查輸入值是否大于字段范圍."); } }else if (action.equals("update")){ //取得原來的單據編號 stockLedger[0] = stockLedgers[selectedIndex][0].trim(); //取得原來的關聯標識 stockLedger[2] = stockLedgers[selectedIndex][2].trim(); //修改商品組合單 result = stockManagementData.updateCombineOrder(ledgerDate, stockLedger, stockSubLedgersOut, stockSubLedgersIn); if(result == 1){ JOptionPane.showMessageDialog(null, "商品組合單修改成功."); //更新數組的數據 for (int i = 0; i < 13; i++) { stockLedgers[selectedIndex][i] = stockLedger[i]; } }else{ JOptionPane.showMessageDialog(null, "商品組合單修改失敗,請檢查輸入值是否大于字段范圍."); } }else if (action.equals("cancel")){ //撤消商品組合單 result = stockManagementData.cancelOrRestoreRearrangeOrder(ledgerDate, stockLedgers[selectedIndex][0], stockLedgers[selectedIndex][2], user.getUserName(), 1, stockLedger[12]); if(result == 1){ JOptionPane.showMessageDialog(null, "商品組合單撤消成功."); //更新完成狀態編輯框的值 jTextField10.setText(onProcesses[1]); //更新數組的數據 stockLedgers[selectedIndex][11] = "1"; stockLedgers[selectedIndex][12] = stockLedger[12]; }else{ JOptionPane.showMessageDialog(null, "商品組合單撤消失敗."); } }else if (action.equals("restore")){ //恢復商品組合單 result = stockManagementData.cancelOrRestoreRearrangeOrder(ledgerDate, stockLedgers[selectedIndex][0], stockLedgers[selectedIndex][2], user.getUserName(), 2, stockLedger[12]); if(result == 1){ JOptionPane.showMessageDialog(null, "商品組合單恢復成功."); //更新完成狀態編輯框的值 jTextField10.setText(onProcesses[2]); //更新數組的數據 stockLedgers[selectedIndex][11] = "2"; stockLedgers[selectedIndex][12] = stockLedger[12]; }else{ JOptionPane.showMessageDialog(null, "商品組合單恢復失敗."); } } this.checkSubBtn(false); this.checkBtn(false); }else if(actionCommand.equals("cancel")){ this.jList1_valueChanged(null); this.checkBtn(false); this.checkSubBtn(false); }else if(actionCommand.equals("createSub")){ //為商品明細表添加一個空行 int objectsLength = stockSubLedgerObjectsOut.length; Object[][] tempObjs = new Object[objectsLength + 1][7]; System.arraycopy(stockSubLedgerObjectsOut, 0, tempObjs, 0, objectsLength); tempObjs[objectsLength][0] = new Integer(0); tempObjs[objectsLength][1] = new String(""); tempObjs[objectsLength][2] = new String(""); tempObjs[objectsLength][3] = new Double(0); tempObjs[objectsLength][4] = new Integer(0); tempObjs[objectsLength][5] = new Double(0); tempObjs[objectsLength][6] = new String(""); stockSubLedgerObjectsOut = tempObjs; this.showTableDataOut(stockSubLedgerObjectsOut); }else if(actionCommand.equals("deleteSub")){ if(jTable1.getSelectedRowCount() == 0){ JOptionPane.showMessageDialog(null, "請選擇明細記錄."); return; } //刪除選擇的記錄 int selectedIndex = jTable1.getSelectedRow(); Object[][] tempObjs = new Object[stockSubLedgerObjectsOut.length - 1][7]; int line = 0; for(int i = 0; i < stockSubLedgerObjectsOut.length; i++){ if(i == selectedIndex){ continue; }else{ for(int j = 0; j < 7; j++){ tempObjs[line][j] = stockSubLedgerObjectsOut[i][j]; } line++; } } stockSubLedgerObjectsOut = tempObjs; this.showTableDataOut(stockSubLedgerObjectsOut); }else if(actionCommand.equals("exit")){ exit(); } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -