⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stocktakegainmanageframe.java

📁 一个使用java 写的进销存代码 使用了ejb 等技术 是学习j2ee的好
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }  }  //显示表格内容的方法  public void showTableData(Object[][] detail){    //设置表格的标题    sslTableModel.setColumnNames(colNames);    //设置表格的数据    sslTableModel.setData(detail);    jTable1 = new JTable(sslTableModel);    //设置表格的字体    jTable1.setFont(dialog13);    //将数据表格加入数据滚动框    jScrollPane3.getViewport().add(jTable1, null);    //设置列的宽度    jTable1.getColumnModel().getColumn(0).setPreferredWidth(20);    jTable1.getColumnModel().getColumn(1).setPreferredWidth(50);    jTable1.getColumnModel().getColumn(2).setPreferredWidth(50);    jTable1.getColumnModel().getColumn(3).setPreferredWidth(10);    jTable1.getColumnModel().getColumn(4).setPreferredWidth(10);    jTable1.getColumnModel().getColumn(5).setPreferredWidth(10);    jTable1.getColumnModel().getColumn(6).setPreferredWidth(50);    //取得表格的行    ListSelectionModel rowSM = jTable1.getSelectionModel();    //加入行选择接收器    rowSM.addListSelectionListener(new ListSelectionListener() {      public void valueChanged(ListSelectionEvent e) {        //当多种事件被激发的时候,不执行接收器后面的代码        if (e.getValueIsAdjusting()) return;        jTable1_valueChanged(e);      }    });  }  //重新计算货物金额  public void recountGoodsAmount(){    double costPrice = 0;    int quantity = 0;    double amount = 0;    double total = 0;    for(int i = 0; i < stockSubLedgerObjects.length; i++){      costPrice = dataMethod.round(((Double)stockSubLedgerObjects[i][3]).doubleValue());      quantity = ((Integer)stockSubLedgerObjects[i][4]).intValue();      amount = dataMethod.round(costPrice * quantity);      stockSubLedgerObjects[i][5] = new Double(amount);      total += amount;    }    jTextField9.setText(String.valueOf(dataMethod.round(total)));  }  //检查明细账日期的方法  public int checkStockSubLedgerDate(){    java.sql.Date date = null;    for(int i = 0; i < stockSubLedgerObjects.length; i++){      date = dataMethod.transferShortDate((String)stockSubLedgerObjects[i][6]);      if(date == null){        JOptionPane.showMessageDialog(null, "第" + (i+1) + "行日期输入错误,正确的日期格式是"                                      + "yyyy-mm-dd(年-月-日),如2004-1-1");        return 0;      }    }    return 1;  }  //检查明细账的商品条形码方法  public int checkStockSubLedgerGoodsBarCode(){    int result = 0;    for(int i = 0; i < stockSubLedgerObjects.length; i++){      result = stockManagementData.checkGoodsBarCode((String)stockSubLedgerObjects[i][2]);      if(result == 0){        JOptionPane.showMessageDialog(null, "第" + (i + 1) + "行的商品条形码在商品数据库中"                                      + "不存在,请打开商品数据管理窗口添加.");        return 0;      }    }    return 1;  }  //检查明细账数量是否为正的方法  public int checkStockSubLedgerQuantity(){    int quantity = 0;    for(int i = 0; i < stockSubLedgerObjects.length; i++){      quantity = ((Integer)stockSubLedgerObjects[i][4]).intValue();      if(quantity < 0){        JOptionPane.showMessageDialog(null, "第" + (i+1) + "行的盈收数量输入错误,盈收数量必须是正数.");        return 0;      }    }    return 1;  }  //清空单个盘点盈收单显示的方法  public void clearStockLedger(){    jTextField4.setText("");    jTextField5.setText("");    jTextField6.setText("");    jTextField7.setText("");    jTextField8.setText("");    jTextField9.setText("");    jTextArea1.setText("");    stockSubLedgers = new String[0][6];    stockSubLedgerObjects = new Object[0][7];    this.showTableData(stockSubLedgerObjects);  }  //检查按钮的状态  public void checkBtn(boolean isManipulated){    if(isManipulated){      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.recountGoodsAmount();  }  //查询方法  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) {      if (searchValue.length() == 0) {        JOptionPane.showMessageDialog(null, "请输入查询值");        return;      }      switch (selectedIndex) {        case 0:          //根据盘点盈收单编号取得记录          stockLedgers = stockManagementData.getStockLedgerByStringField(              ledgerDate, "orderId", searchValue, 7);          break;        case 1:          //根据填写用户取得记录          stockLedgers = stockManagementData.getStockLedgerByStringField(              ledgerDate, "submitUser", searchValue, 7);          break;        case 2:          //根据仓库名字取得记录          stockLedgers = stockManagementData.getStockLedgerByStringField(              ledgerDate, "warehouse", searchValue, 7);          break;        case 3:          if(dataMethod.checkInt(searchValue) == 0){            JOptionPane.showMessageDialog(null, "按完成状态查询时,输入值必须是整数,"                                          + "0表示进行,1表示撤消,2表示完成.");            return;          }          //根据完成状态取得记录          stockLedgers = stockManagementData.getStockLedgerByOnProcess(              ledgerDate, 7, 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, 7);    }    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.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] = "7";                          //7表示盘点盈收单      stockLedger[2] = "";      stockLedger[3] = user.getUserName();           //填写用户      stockLedger[4] = "";      stockLedger[5] = "";      stockLedger[6] = "";      stockLedger[7] = "";      stockLedger[8] = jTextField6.getText().trim(); //仓库      stockLedger[9] = jTextField7.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[8]);        if(result == 0){          JOptionPane.showMessageDialog(null, stockLedger[4] + "在仓库数据库中"                                        + "不存在,请打开仓库数据管理窗口添加.");          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;        //转换表格数组        this.transferTableData();      }      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")){        //取得原来的单据编号        stockLedger[0] = stockLedgers[selectedIndex][0].trim();        //修改盘点盈收单        result = stockManagementData.updateStockLedgerAndSub(ledgerDate,            stockLedger, stockSubLedgers);        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.cancelStockLedgerAndSub(ledgerDate,            stockLedgers[selectedIndex][0], stockLedger[12]);        if(result == 1){          JOptionPane.showMessageDialog(null, "盘点盈收单撤消成功.");          //更新完成状态编辑框的值          jTextField8.setText(onProcesses[1]);          //更新数组的数据          stockLedgers[selectedIndex][11] = "1";          stockLedgers[selectedIndex][12] = stockLedger[12];        }else{          JOptionPane.showMessageDialog(null, "盘点盈收单撤消失败.");        }      }else if (action.equals("restore")){        //恢复盘点盈收单        result = stockManagementData.signStockLedgerAndSubForFinish(ledgerDate,            "submitUser", user.getUserName(), stockLedgers[selectedIndex][0], 2,            stockLedger[12]);        if(result == 1){          JOptionPane.showMessageDialog(null, "盘点盈收单恢复成功.");          //更新完成状态编辑框的值          jTextField8.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 = 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();    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -