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

📄 stocktakesubmitframe.java

📁 一个使用java 写的进销存代码 使用了ejb 等技术 是学习j2ee的好
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      stockSubLedgerObjects[i][3] = new Integer(quantity);
    }
    //显示表格的内容
    this.showTableData(stockSubLedgerObjects);
  }
  //转换表格数据的方法
  public void transferTableData(){
    stockSubLedgers = new String[stockSubLedgerObjects.length][6];
    for(int i = 0; i < stockSubLedgerObjects.length; i++){
      stockSubLedgers[i][0] = ((Integer)stockSubLedgerObjects[i][0]).toString();
      stockSubLedgers[i][1] = (String)stockSubLedgerObjects[i][1];
      stockSubLedgers[i][2] = (String)stockSubLedgerObjects[i][2];
      stockSubLedgers[i][3] = "0";
      stockSubLedgers[i][4] = ((Integer)stockSubLedgerObjects[i][3]).toString();
      //由于盘点单只记录商品条形码和数量,有效期写入系统当前日期
      stockSubLedgers[i][5] = dataMethod.getCurrentDate().toString();
    }
  }
  //显示表格内容的方法
  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);
  }
  //检查明细账的商品条形码方法
  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][3]).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("");
    jTextArea1.setText("");
    stockSubLedgers = new String[0][6];
    stockSubLedgerObjects = new Object[0][4];
    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 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, 13);
          break;
        case 1:
          //根据商品盘点员取得记录
          stockLedgers = stockManagementData.getStockLedgerByStringField(
              ledgerDate, "submitUser", searchValue, 13);
          break;
        case 2:
          //根据盘点仓库名字取得记录
          stockLedgers = stockManagementData.getStockLedgerByStringField(
              ledgerDate, "warehouse", searchValue, 13);
          break;
        case 3:
          if(dataMethod.checkInt(searchValue) == 0){
            JOptionPane.showMessageDialog(null, "按完成状态查询时,输入值必须是整数,"
                                          + "3表示撤消,4表示完成.");
            return;
          }
          //根据完成状态取得记录
          stockLedgers = stockManagementData.getStockLedgerByOnProcess(
              ledgerDate, 13, 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, 13);
    }
    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] = "13";                         //13表示盘点单
      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(); //系统日期
      //4表示盘点单完成,3表示盘点单撤消
      stockLedger[11] = "4";
      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[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;
        //转换表格数组
        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")){
        //撤消盘点单, 3表示撤消盘点单
        result = stockManagementData.signStockLedgerAndSubForFinish(ledgerDate,
            "submitUser", user.getUserName(), stockLedgers[selectedIndex][0], 3,
            stockLedger[12]);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "盘点单撤消成功.");
          //更新完成状态编辑框的值
          jTextField8.setText(onProcesses[3]);
          //更新数组的数据
          stockLedgers[selectedIndex][11] = "3";
          stockLedgers[selectedIndex][12] = stockLedger[12];
        }else{
          JOptionPane.showMessageDialog(null, "盘点单撤消失败.");
        }
      }else if (action.equals("restore")){
        //恢复盘点单,4表示恢复盘点单
        result = stockManagementData.signStockLedgerAndSubForFinish(ledgerDate,
            "submitUser", user.getUserName(), stockLedgers[selectedIndex][0], 4,
            stockLedger[12]);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "盘点单恢复成功.");
          //更新完成状态编辑框的值
          jTextField8.setText(onProcesses[4]);
          //更新数组的数据
          stockLedgers[selectedIndex][11] = "4";
          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][4];
      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 Integer(0);
      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][4];
      int line = 0;
      for(int i = 0; i < stockSubLedgerObjects.length; i++){
        if(i == selectedIndex){
          continue;
        }else{
          for(int j = 0; j < 4; 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 + -