?? goodsquantitysplitframe.java
字號:
jButton2.setEnabled(false);
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.recountGoodsInAmount();
}
//表格內容改變事件
public void jTable2_valueChanged(TableModelEvent e) {
//重新計算金額
this.recountGoodsOutAmount();
}
//為調出商品表格創建一個空行
public void createNewLineForGoodsOut(){
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("");
stockSubLedgerObjectsOut = tempObjs;
this.showTableDataOut(stockSubLedgerObjectsOut);
}
//查詢方法
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, 10);
break;
case 1:
//根據商品分拆用戶取得記錄
stockLedgers = stockManagementData.getStockLedgerByStringField(
ledgerDate, "submitUser", searchValue, 10);
break;
case 2:
//根據分拆前倉庫名字取得記錄,分拆前倉庫名字保存在分拆單的commitUser字段
stockLedgers = stockManagementData.getStockLedgerByStringField(
ledgerDate, "commitUser", searchValue, 10);
break;
case 3:
//根據分拆后倉庫名字取得記錄,
stockLedgers = stockManagementData.getStockLedgerByStringField(
ledgerDate, "warehouse", searchValue, 10);
break;
case 4:
if(dataMethod.checkInt(searchValue) == 0){
JOptionPane.showMessageDialog(null, "按完成狀態查詢時,輸入值必須是整數,"
+ "0表示進行,1表示撤消,2表示完成.");
return;
}
//根據完成狀態取得記錄
stockLedgers = stockManagementData.getStockLedgerByOnProcess(
ledgerDate, 10, 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, 10);
}
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.createNewLineForGoodsOut();
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] = "10"; //10表示商品分拆調入單
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(stockSubLedgerObjectsIn.length == 0){
JOptionPane.showMessageDialog(null, "分拆后的商品明細為空,不可以創建商品分拆單.");
return;
}
//添加商品分拆單
result = stockManagementData.createRearrangeOrder(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.updateRearrangeOrder(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 = stockSubLedgerObjectsIn.length;
Object[][] tempObjs = new Object[objectsLength + 1][7];
System.arraycopy(stockSubLedgerObjectsIn, 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("");
stockSubLedgerObjectsIn = tempObjs;
this.showTableDataIn(stockSubLedgerObjectsIn);
}else if(actionCommand.equals("deleteSub")){
if(jTable1.getSelectedRowCount() == 0){
JOptionPane.showMessageDialog(null, "請選擇明細記錄.");
return;
}
//刪除選擇的記錄
int selectedIndex = jTable1.getSelectedRow();
Object[][] tempObjs = new Object[stockSubLedgerObjectsIn.length - 1][7];
int line = 0;
for(int i = 0; i < stockSubLedgerObjectsIn.length; i++){
if(i == selectedIndex){
continue;
}else{
for(int j = 0; j < 7; j++){
tempObjs[line][j] = stockSubLedgerObjectsIn[i][j];
}
line++;
}
}
stockSubLedgerObjectsIn = tempObjs;
this.showTableDataIn(stockSubLedgerObjectsIn);
}else if(actionCommand.equals("exit")){
exit();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -