📄 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 + -