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

📄 countersaleframe.java~343~

📁 一个使用java 写的进销存代码 使用了ejb 等技术 是学习j2ee的好
💻 JAVA~343~
📖 第 1 页 / 共 3 页
字号:
    //取得编辑框的变量
    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:
          //根据销售单编号取得记录
          saleLedgers = stockManagementData.getSaleLedgerByStringField(
              ledgerDate, "saleId", searchValue, 0);
          break;
        case 1:
          //根据客户取得记录
          saleLedgers = stockManagementData.getSaleLedgerByStringField(
              ledgerDate, "customerName", searchValue, 0);
          break;
        case 2:
          //根据前台销售员取得记录
          saleLedgers = stockManagementData.getSaleLedgerByStringField(
              ledgerDate, "counterUser", searchValue, 0);
          break;
        case 3:
          //根据送货地址取得记录
          saleLedgers = stockManagementData.getSaleLedgerByStringField(
              ledgerDate, "address", searchValue, 0);
          break;
        case 4:
          if(dataMethod.checkInt(searchValue) == 0){
            JOptionPane.showMessageDialog(null, "按完成状态查询时,输入值必须是整数,"
                                          + "0表示进行,1表示撤消,2表示完成.");
            return;
          }
          //根据完成状态取得记录
          saleLedgers = stockManagementData.getSaleLedgerByOnProcess(
              ledgerDate, 0, 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;
      }
      //根据日期取得记录
      saleLedgers = stockManagementData.getSaleLedgerByOrderDate(ledgerDate,
          startDate, endDate, 0);
    }
    this.showSearchSaleLedger();
  }
  //单击事件
  public void actionPerformed(ActionEvent e) {
    //取得按钮的动作字符串
    String actionCommand = e.getActionCommand().trim();
    //检查打开的账套是否当前账套
    if (actionCommand.equals("createSaleLedger") |
        actionCommand.equals("updateSaleLedger") |
        actionCommand.equals("cancelSaleLedger") |
        actionCommand.equals("restoreSaleLedger")) {
      int result = stockManagementData.isCurrentLedger(ledgerDate);
      if(result == 0){
        JOptionPane.showMessageDialog(null, ledgerDate + "是往期账套,不能进行添加、修改和撤消操作.");
        return;
      }
    }
    //检查销售单是否完成
    if (actionCommand.equals("updateSaleLedger") |
        actionCommand.equals("cancelSaleLedger") |
        actionCommand.equals("restoreSaleLedger")) {
      if(jList1.isSelectionEmpty()){
        JOptionPane.showMessageDialog(null, "请选择销售单.");
        return;
      }
      int selectedIndex = jList1.getSelectedIndex();
      int onProcess = Integer.parseInt(saleLedgers[selectedIndex][9]);
      if(onProcess == 2){
        JOptionPane.showMessageDialog(null, saleLedgers[selectedIndex][0]
                                      + "销售单已经完成,不可以进行修改、撤消、恢复操作.");
        return;
      }
    }
    if (actionCommand.equals("search")) {
      //查询
      search();
    }else if(actionCommand.equals("createSaleLedger")){
      action = "create";
      this.clearSaleLedger();
      this.checkBtn(true);
      this.checkSubBtn(true);
    }else if(actionCommand.equals("updateSaleLedger")){
      action = "update";
      this.checkBtn(true);
    }else if(actionCommand.equals("cancelSaleLedger")){
      action = "cancel";
      this.checkBtn(true);
    }else if(actionCommand.equals("restoreSaleLedger")){
      action = "restore";
      this.checkBtn(true);
    }else if(actionCommand.equals("ok")){
      //创建销售账套数据表的单个记录数组
      String[] saleLedger = new String[11];
      //取得销售单的值
      saleLedger[2] = "顾客";                     //在前台购买商品的客户名称统一为顾客
      saleLedger[3] = user.getUserName();        //前台销售员
      saleLedger[4] = "";
      saleLedger[5] = "";
      saleLedger[6] = jTextField6.getText().trim();           //送货地址
      saleLedger[7] = dataMethod.getCurrentDate().toString(); //填写日期
      saleLedger[8] = dataMethod.getCurrentDate().toString(); //系统日期
      saleLedger[9] = "0";                                    //完成状态
      saleLedger[10] = jTextArea1.getText().trim();
      if(action.equals("update") | action.equals("cancel")  | action.equals("restore")){
        int selectedIndex = jList1.getSelectedIndex();
        //取得原来的单据编号
        saleLedger[0] = saleLedgers[selectedIndex][0].trim();
      }
      int result = 0;
      if(action.equals("update") | action.equals("create")){
        //检查商品条形码
        result = this.checkSaleSubLedgerGoodsBarCode();
        if(result == 0) return;
        //检查销售单明细账的商品数量是否小于等于库存数
        result = this.checkStockQuantity();
        if(result == 0)  return;
        //转换表格数组
        this.transferTableData();
        //写入销售单的完成状态
        saleLedger[1] = "0";
      }
      if(action.equals("create")){
        //检查明细账是否为空
        if(saleSubLedgerObjects.length == 0){
          JOptionPane.showMessageDialog(null, "明细账数据表为空,不可以创建销售单.");
          return;
        }
        //添加销售单
        result = stockManagementData.createSaleLedgerAndSub(ledgerDate,
            saleLedger, saleSubLedgers);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "销售单添加成功,请重新执行查询操作显示新的销售单.");
        }else{
          JOptionPane.showMessageDialog(null, "销售单添加失败,请检查输入值是否大于字段范围.");
        }
      }else if (action.equals("update")){
        //修改销售单
        result = stockManagementData.updateSaleLedgerAndSub(ledgerDate,
            saleLedger, saleSubLedgers);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "销售单修改成功.");
          //更新数组的数据
          int selectedIndex = jList1.getSelectedIndex();
          for(int i = 0; i < 11; i++){
            saleLedgers[selectedIndex][i] = saleLedger[i];
          }
        }else{
          JOptionPane.showMessageDialog(null, "销售单修改失败,请检查输入值是否大于字段范围.");
        }
      }else if (action.equals("cancel")){
        //撤消销售单
        result = stockManagementData.signSaleLedgerAndSub(ledgerDate, "counterUser", user.getUserName(),
            saleLedger[0], 1, saleLedger[10]);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "销售单撤消成功.");
          //更新完成状态编辑框的值
          jTextField10.setText(onProcesses[1]);
          //更新数组的数据
          int selectedIndex = jList1.getSelectedIndex();
          saleLedgers[selectedIndex][9] = "1";
          saleLedgers[selectedIndex][10] = saleLedger[10];
        }else{
          JOptionPane.showMessageDialog(null, "销售单撤消失败.");
        }
      }else if (action.equals("restore")){
        //恢复销售单
        result = stockManagementData.signSaleLedgerAndSub(ledgerDate, "counterUser", user.getUserName(),
            saleLedger[0], 0, saleLedger[10]);
        if(result == 1){
          JOptionPane.showMessageDialog(null, "销售单恢复成功.");
          //更新完成状态编辑框的值
          jTextField10.setText(onProcesses[0]);
          //更新数组的数据
          int selectedIndex = jList1.getSelectedIndex();
          saleLedgers[selectedIndex][9] = "0";
          saleLedgers[selectedIndex][10] = saleLedger[10];
        }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[] saleLedger = new String[11];
      for(int i = 0; i < saleLedger.length; i++){
        if(saleLedgers[selectedIndex][i] == null){
          saleLedger[i] = "";
        }else{
          saleLedger[i] = saleLedgers[selectedIndex][i];
        }
      }
      //取得销售单的明细账数据
      String[][] saleSubLedgerForPrint = new String[saleSubLedgerObjects.length][4];
      for(int i = 0; i < saleSubLedgers.length; i++){
        saleSubLedgerForPrint[i][0] = (String)saleSubLedgerObjects[i][2];
        saleSubLedgerForPrint[i][1] = ((Double)saleSubLedgerObjects[i][5]).toString();
        saleSubLedgerForPrint[i][2] = ((Integer)saleSubLedgerObjects[i][6]).toString();
        saleSubLedgerForPrint[i][3] = ((Double)saleSubLedgerObjects[i][7]).toString();
      }
      //显示销售单打印窗口
      if(saleOrderPrintFrame == null){
        orderPrintFrame = new OrderPrintFrame();
        //使窗口居中对齐
        setCenterPosition(orderPrintFrame);
        orderPrintFrame.setVisible(true);
      }else{
        orderPrintFrame.setVisible(true);
      }
      //为打印窗口传入数组参数
      orderPrintFrame.setSaleLedger(saleLedger);
      orderPrintFrame.setSaleSubLedger(saleSubLedgerForPrint);
      //显示总页码
      orderPrintFrame.splitPage();
    }else if(actionCommand.equals("createSub")){
      //为销售账套明细表添加一个空行
      int objectsLength = saleSubLedgerObjects.length;
      Object[][] tempObjs = new Object[objectsLength + 1][8];
      System.arraycopy(saleSubLedgerObjects, 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 Double(0);    //折扣
      tempObjs[objectsLength][5] = new Double(0);    //实际售价
      tempObjs[objectsLength][6] = new Integer(0);   //数量
      tempObjs[objectsLength][7] = new Double(0);    //金额
      saleSubLedgerObjects = tempObjs;
      this.showTableData(saleSubLedgerObjects);
    }else if(actionCommand.equals("deleteSub")){
      if(jTable1.getSelectedRowCount() == 0){
        JOptionPane.showMessageDialog(null, "请选择明细记录.");
        return;
      }
      //删除选择的记录
      int selectedIndex = jTable1.getSelectedRow();
      Object[][] tempObjs = new Object[saleSubLedgerObjects.length - 1][8];
      int line = 0;
      for(int i = 0; i < saleSubLedgerObjects.length; i++){
        if(i == selectedIndex){
          continue;
        }else{
          for(int j = 0; j < 8; j++){
            tempObjs[line][j] = saleSubLedgerObjects[i][j];
          }
          line++;
        }
      }
      saleSubLedgerObjects = tempObjs;
      this.showTableData(saleSubLedgerObjects);
    }else if(actionCommand.equals("exit")){
      exit();
    }
  }
}

⌨️ 快捷键说明

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