📄 returnordersubmitframe.java
字号:
//根据订购员取得记录 stockLedgers = stockManagementData.getStockLedgerByStringField( ledgerDate, "commitUser", searchValue, 1); break; case 2: //根据仓库名字取得记录 stockLedgers = stockManagementData.getStockLedgerByStringField( ledgerDate, "warehouse", searchValue, 1); 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, 1); } this.showSearchStockLedger(); } //单击事件 public void actionPerformed(ActionEvent e) { //取得按钮的动作字符串 String actionCommand = e.getActionCommand().trim(); //检查打开的账套是否当前账套 if (actionCommand.equals("createStockLedger") | actionCommand.equals("updateStockLedger") | actionCommand.equals("cancelStockLedger")) { 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.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("ok")){ //创建库存账套数据表的单个记录数组 String[] stockLedger = new String[13]; //取得退货单的值 stockLedger[2] = jTextField5.getText().trim(); stockLedger[3] = ""; //退货单由订购员签名 stockLedger[4] = user.getUserName(); stockLedger[5] = ""; stockLedger[6] = ""; stockLedger[7] = jTextField6.getText().trim(); stockLedger[8] = jTextField7.getText().trim(); stockLedger[9] = jTextField8.getText().trim(); stockLedger[10] = jTextField9.getText().trim(); stockLedger[12] = jTextArea1.getText().trim(); if(action.equals("update") | action.equals("cancel")){ if(jList1.isSelectionEmpty()){ JOptionPane.showMessageDialog(null, "请选择退货单."); return; } int selectedIndex = jList1.getSelectedIndex(); int onProcess = Integer.parseInt(stockLedgers[selectedIndex][11]); if(onProcess == 1){ JOptionPane.showMessageDialog(null, stockLedgers[selectedIndex][0] + "退货单已经撤消,不可以进行修改和撤消操作."); return; } if(stockLedgers[selectedIndex][6].trim().length() > 0){ JOptionPane.showMessageDialog(null, stockLedgers[selectedIndex][6] + "现金管理员已签名,不可以进行修改和撤消操作."); return; } if(onProcess == 2){ JOptionPane.showMessageDialog(null, stockLedgers[selectedIndex][0] + "退货单已经完成,不可以进行修改和撤消操作."); return; } //取得原来的单据编号 stockLedger[0] = stockLedgers[selectedIndex][0].trim(); } int result = 0; if(action.equals("update") | action.equals("create")){ //检查退货单的供应商 result = stockManagementData.checkSupplier(stockLedger[2]); if(result == 0){ JOptionPane.showMessageDialog(null, stockLedger[2] + "在供应商数据库中" + "不存在,请打开供应商数据管理窗口添加."); 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; } if(dataMethod.transferDateTime(stockLedger[10]) == 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; //转换表格数组 this.transferTableData(); //写入退货单的类型、完成状态 stockLedger[1] = "1"; stockLedger[11] = "0"; } if(action.equals("create")){ //检查明细账是否为空 if(stockSubLedgerObjects.length == 0){ JOptionPane.showMessageDialog(null, "明细账数据表为空,不可以创建退货单."); return; } //添加退货单 result = stockManagementData.createStockLedgerAndSub(ledgerDate, stockLedger, stockSubLedgers); if(result == 1){ JOptionPane.showMessageDialog(null, "退货单添加成功,请重新执行查询操作显示新的退货单."); }else{ JOptionPane.showMessageDialog(null, "退货单添加失败,请检查输入值是否大于字段范围."); } }else if (action.equals("update")){ //修改退货单 result = stockManagementData.updateStockLedgerAndSub(ledgerDate, stockLedger, stockSubLedgers); if(result == 1){ JOptionPane.showMessageDialog(null, "退货单修改成功."); //更新数组的数据 int selectedIndex = jList1.getSelectedIndex(); for(int i = 0; i < 13; i++){ stockLedgers[selectedIndex][i] = stockLedger[i]; } }else{ JOptionPane.showMessageDialog(null, "退货单修改失败,请检查输入值是否大于字段范围."); } }else if (action.equals("cancel")){ //撤消退货单 result = stockManagementData.cancelStockLedgerAndSub(ledgerDate, stockLedger[0], stockLedger[12]); if(result == 1){ JOptionPane.showMessageDialog(null, "退货单撤消成功."); //更新完成状态编辑框的值 jTextField10.setText(onProcesses[1]); //更新数组的数据 int selectedIndex = jList1.getSelectedIndex(); stockLedgers[selectedIndex][11] = "1"; 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("print")){ int selectedIndex = jList1.getSelectedIndex(); if(selectedIndex == -1){ JOptionPane.showMessageDialog(null, "先选择退货单."); return; } //取得选择退货单的数据 String[] stockLedger = new String[13]; for(int i = 0; i < stockLedger.length; i++){ if(stockLedgers[selectedIndex][i] == null){ stockLedger[i] = ""; }else{ stockLedger[i] = stockLedgers[selectedIndex][i]; } } //取得退货单的明细账数据 String[][] stockSubLedgerForPrint = new String[stockSubLedgerObjects.length][5]; for(int i = 0; i < stockSubLedgers.length; i++){ stockSubLedgerForPrint[i][0] = (String)stockSubLedgerObjects[i][2]; stockSubLedgerForPrint[i][1] = ((Double)stockSubLedgerObjects[i][3]).toString(); stockSubLedgerForPrint[i][2] = ((Integer)stockSubLedgerObjects[i][4]).toString(); stockSubLedgerForPrint[i][3] = ((Double)stockSubLedgerObjects[i][5]).toString(); stockSubLedgerForPrint[i][4] = (String)stockSubLedgerObjects[i][6]; } //显示退货单打印窗口 if(returnOrderPrintFrame == null){ returnOrderPrintFrame = new ReturnOrderPrintFrame(); //使窗口居中对齐 setCenterPosition(returnOrderPrintFrame); returnOrderPrintFrame.setVisible(true); }else{ returnOrderPrintFrame.setVisible(true); } //为打印窗口传入数组参数 returnOrderPrintFrame.setStockLedger(stockLedger); returnOrderPrintFrame.setStockSubLedger(stockSubLedgerForPrint); //显示总页码 returnOrderPrintFrame.splitPage(); }else if(actionCommand.equals("createSub")){ //为库存账套明细表添加一个空行 int objectsLength = stockSubLedgerObjects.length; Object[][] tempObjs = new Object[objectsLength + 1][7]; System.arraycopy(stockSubLedgerObjects, 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(""); stockSubLedgerObjects = tempObjs; this.showTableData(stockSubLedgerObjects); }else if(actionCommand.equals("deleteSub")){ if(jTable1.getSelectedRowCount() == 0){ JOptionPane.showMessageDialog(null, "请选择明细记录."); return; } //删除选择的记录 int selectedIndex = jTable1.getSelectedRow(); Object[][] tempObjs = new Object[stockSubLedgerObjects.length - 1][7]; int line = 0; for(int i = 0; i < stockSubLedgerObjects.length; i++){ if(i == selectedIndex){ continue; }else{ for(int j = 0; j < 7; j++){ tempObjs[line][j] = stockSubLedgerObjects[i][j]; } line++; } } stockSubLedgerObjects = tempObjs; this.showTableData(stockSubLedgerObjects); }else if(actionCommand.equals("exit")){ exit(); } } //使窗口居中的方法 public void setCenterPosition(JFrame frame){ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } frame.setLocation( (screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -