亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stocktakecheckframe.java

?? java進銷存信息管理系統,實現了倉庫產品價格人員報表等功能
?? JAVA
字號:
package stockmanageinterface;

import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.*;
import java.util.*;
import data.*;
import maininterface.*;
import user.*;

public class StocktakeCheckFrame extends JFrame implements ActionListener {
  JPanel contentPane;
  //創建標簽控件
  JLabel jLabel1 = new JLabel();
  JLabel jLabel2 = new JLabel();
  //創建按鈕控件
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JButton jButton3 = new JButton();
  JButton jButton4 = new JButton();
  JButton jButton5 = new JButton();
  //創建滾動框控件
  JScrollPane jScrollPane1 = new JScrollPane();
  JScrollPane jScrollPane2 = new JScrollPane();
  //創建列表框數據類和列表框控件
  DefaultListModel listData1 = new DefaultListModel();
  JList jList1 = new JList(listData1);
  //創建表格控件
  JTable jTable1 = new JTable();
  //創建表格模式類
  StockManagementTableModel smTableModel = new StockManagementTableModel();
  //創建標題數組
  String[] colNames = {"商品條形碼", "庫存數", "盤點數",  "差異數"};
  //創建字體類
  Font dialog13 = new java.awt.Font("Dialog", 0, 13);
  //聲明數據類
  StockManagementData stockManagementData = null;
  //聲明用戶類
  User user = null;
  //聲明主窗口類
  StockManagementMainFrame stockManagementMainFrame = null;
  //創建倉庫數組
  String[][] warehouses = new String[0][4];
  //創建盤點核查數組
  String[][] stocktakeArray = new String[0][4];
  //創建帳套日期字符串
  String ledgerDate = "";

  public StocktakeCheckFrame(StockManagementMainFrame stockManagementMainFrame) {
    this.stockManagementMainFrame = stockManagementMainFrame;
    //取得主窗口的數據類
    stockManagementData = stockManagementMainFrame.getStockManagementData();
    //取得主窗口的用戶類
    user = stockManagementMainFrame.getUser();
    //取得主窗口的賬套日期
    ledgerDate = stockManagementMainFrame.getLedgerDate();
    //取得庫存模塊的用戶權限
    int stockManageFunction = user.getStockManageFunction();
    //檢查用戶權限
    if ( (stockManageFunction & 32) != 32) {
      JOptionPane.showMessageDialog(null, user.getUserName() + "用戶不具有該權限.");
      System.exit(0);
    }
    //檢查賬套日期
    if(ledgerDate.length() == 0){
      JOptionPane.showMessageDialog(null, user.getUserName() + "請選擇賬套.");
      return;
    }
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(null);
    this.setSize(new Dimension(667, 352));
    this.setTitle("庫存盤點核查窗口");
    //設置標簽的屬性
    jLabel1.setText("倉庫列表");
    jLabel1.setBounds(new Rectangle(28, 19, 134, 16));
    jLabel2.setText("盤點單核查表");
    jLabel2.setBounds(new Rectangle(195, 19, 165, 16));
    //設置按鈕的屬性
    jButton1.setText("顯示倉庫");
    jButton1.setActionCommand("showWarehouse");
    jButton1.setBounds(new Rectangle(28, 257, 103, 25));
    jButton2.setText("顯示差異記錄");
    jButton2.setActionCommand("showDifference");
    jButton2.setBounds(new Rectangle(140, 257, 120, 25));
    jButton3.setText("顯示相同記錄");
    jButton3.setActionCommand("showSame");
    jButton3.setBounds(new Rectangle(269, 257, 120, 25));
    jButton4.setText("顯示全部記錄");
    jButton4.setActionCommand("showAll");
    jButton4.setBounds(new Rectangle(398, 257, 120, 25));
    jButton5.setText("退出");
    jButton5.setActionCommand("exit");
    jButton5.setBounds(new Rectangle(527, 257, 103, 25));
    //設置滾動框的屬性
    jScrollPane1.getViewport().add(jList1, null);
    jScrollPane1.setBounds(new Rectangle(28, 45, 152, 195));
    jScrollPane2.getViewport().add(jTable1, null);
    jScrollPane2.setBounds(new Rectangle(195, 45, 435, 195));
    //為列表框加入選擇接收器
    jList1.addListSelectionListener(new ListSelectionListener() {
      public void valueChanged(ListSelectionEvent e) {
        //當多種事件被激發的時候,不執行接收器后面的代碼
        if (e.getValueIsAdjusting()) return;
        jList1_valueChanged(e);
      }
    });
    //為面板加入各個控件
    contentPane.add(jLabel1, null);
    contentPane.add(jLabel2, null);
    contentPane.add(jScrollPane1, null);
    contentPane.add(jScrollPane2, null);
    contentPane.add(jButton1, null);
    contentPane.add(jButton2, null);
    contentPane.add(jButton3, null);
    contentPane.add(jButton4, null);
    contentPane.add(jButton5, null);
    //設置窗口類的字體和為按鈕加入動作接收器
    setupFontAndListener();
  }
  //設置窗口類的字體和為按鈕加入動作接收器的方法
  public void setupFontAndListener(){
    Component[] components = contentPane.getComponents();
    //創建臨時按鈕控件
    JButton tmpBtn = new JButton();
    for(int i = 0; i < components.length; i++){
      components[i].setFont(dialog13);
      if(components[i].getClass().getName().equals("javax.swing.JButton")){
        tmpBtn = (JButton)components[i];
        tmpBtn.addActionListener(this);
      }
    }
  }
  //退出方法
  public void exit(){
    //隱藏窗口
    this.setVisible(false);
    //清空數組的內容
    warehouses = new String[0][4];
    stocktakeArray = new String[0][4];
    //清空列表框的內容
    listData1.clear();
    //清空表格的內容
    this.showTableData(stocktakeArray);
  }
  //設置用戶的方法
  public void setUser(User user) {
    this.user = user;
  }
  //設置賬套的方法
  public void setLedgerDate(String ledgerDate) {
    this.ledgerDate = ledgerDate;
  }
  protected void processWindowEvent(WindowEvent e) {
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      exit();
    }
  }
  //顯示倉庫的方法
  public void showWarehouse(){
    listData1.clear();
    //取得倉庫的值
    warehouses = stockManagementData.getAllWarehouse();
    //為倉庫列表框加入倉庫數據
    for(int i = 0; i < warehouses.length; i++){
      listData1.addElement(warehouses[i][0]);
    }
  }
  //顯示盤點單核查表記錄的方法
  public void showStocktakeArray(){
    //取得當前選擇項的位置
    int selectedIndex = jList1.getSelectedIndex();
    //當列表框不處于選擇狀態,不顯示數據
    if(selectedIndex == -1){
       return;
    }
    //取得倉庫名
    String warehouse = (String)listData1.getElementAt(selectedIndex);
    //根據倉庫取得庫存數
    String[][] stockQuantities = stockManagementData.
        getStocktakeQuantityByWarehouse(ledgerDate, warehouse, 2);
    //創建庫存商品條形碼集合類
    Vector stockGoodsBarcode = new Vector();
    for(int i = 0; i < stockQuantities.length; i++){
      stockGoodsBarcode.addElement(stockQuantities[i][0]);
    }
    //根據倉庫取得盤點數
    String[][] stocktakeQuantities = stockManagementData.
        getStocktakeQuantityByWarehouse(ledgerDate, warehouse, 4);
    //創建盤點商品條形碼集合類
    Vector stocktakeGoodsBarcode = new Vector();
    for(int i = 0; i < stocktakeQuantities.length; i++){
      stocktakeGoodsBarcode.addElement(stocktakeQuantities[i][0]);
    }
    //創建商品條形碼的集合類,過濾重復的商品條形碼
    TreeSet goodsBarcodeSet = new TreeSet();
    for(int i = 0; i < stockQuantities.length; i++){
      goodsBarcodeSet.add(stockQuantities[i][0]);
    }
    for(int i = 0; i < stocktakeQuantities.length; i++){
      goodsBarcodeSet.add(stocktakeQuantities[i][0]);
    }
    //重新創建盤點核查數組
    stocktakeArray = new String[goodsBarcodeSet.size()][4];
    java.util.Iterator iterator = goodsBarcodeSet.iterator();
    //將數據放入盤點核查數組
    int i = 0;
    while(iterator.hasNext()){
      String goodsBarcode = (String)iterator.next();
      //取得庫存數
      int stockQuantity = 0;
      if(stockGoodsBarcode.indexOf(goodsBarcode) != -1){
        stockQuantity = Integer.parseInt(stockQuantities[stockGoodsBarcode.indexOf(goodsBarcode)][1]);
      }
      //取得盤點數
      int stocktakeQuantity = 0;
      if(stocktakeGoodsBarcode.indexOf(goodsBarcode) != -1){
        stocktakeQuantity = Integer.parseInt(stocktakeQuantities[stocktakeGoodsBarcode.indexOf(goodsBarcode)][1]);
      }
      stocktakeArray[i][0] = goodsBarcode;   //商品條形碼
      stocktakeArray[i][1] = String.valueOf(stockQuantity);       //庫存數
      stocktakeArray[i][2] = String.valueOf(stocktakeQuantity);   //盤點數
      stocktakeArray[i][3] = String.valueOf(stocktakeQuantity - stockQuantity); //差異數
      i++;
    }
    this.showTableData(stocktakeArray);
  }
  //顯示盤點差異記錄的方法
  public void showDifferenceStocktakeArray(){
    String[][] tempStocktakeArray = new String[stocktakeArray.length][4];
    int line = 0;
    for(int i = 0; i < stocktakeArray.length; i++){
      int difference = Integer.parseInt(stocktakeArray[i][3]);
      if(difference != 0){
        tempStocktakeArray[line][0] = stocktakeArray[i][0];
        tempStocktakeArray[line][1] = stocktakeArray[i][1];
        tempStocktakeArray[line][2] = stocktakeArray[i][2];
        tempStocktakeArray[line][3] = stocktakeArray[i][3];
        line++;
      }
    }
    String[][] temp = new String[line][4];
    System.arraycopy(tempStocktakeArray, 0, temp, 0, line);
    //顯示差異記錄
    this.showTableData(temp);
  }
  //顯示盤點相同記錄的方法
  public void showSameStocktakeArray(){
    String[][] tempStocktakeArray = new String[stocktakeArray.length][4];
    int line = 0;
    for(int i = 0; i < stocktakeArray.length; i++){
      int difference = Integer.parseInt(stocktakeArray[i][3]);
      if(difference == 0){
        tempStocktakeArray[line][0] = stocktakeArray[i][0];
        tempStocktakeArray[line][1] = stocktakeArray[i][1];
        tempStocktakeArray[line][2] = stocktakeArray[i][2];
        tempStocktakeArray[line][3] = stocktakeArray[i][3];
        line++;
      }
    }
    String[][] temp = new String[line][4];
    System.arraycopy(tempStocktakeArray, 0, temp, 0, line);
    //顯示相同記錄
    this.showTableData(temp);
  }
  //顯示盤點全部記錄的方法
  public void showAllStocktakeArray(){
    this.showTableData(stocktakeArray);
  }
  //顯示表格內容的方法
  public void showTableData(Object[][] detail){
    //設置表格的標題
    smTableModel.setColumnNames(colNames);
    //設置表格的數據
    smTableModel.setData(detail);
    jTable1 = new JTable(smTableModel);
    //設置表格的字體
    jTable1.setFont(dialog13);
    //將數據表格加入數據滾動框
    jScrollPane2.getViewport().add(jTable1, null);
    //設置列的寬度
    jTable1.getColumnModel().getColumn(0).setPreferredWidth(50);
    jTable1.getColumnModel().getColumn(1).setPreferredWidth(20);
    jTable1.getColumnModel().getColumn(2).setPreferredWidth(20);
    jTable1.getColumnModel().getColumn(3).setPreferredWidth(20);
  }
  //清空盤點單核查表數據的方法
  public void clearStocktakeArray(){
    stocktakeArray = new String[0][4];
    this.showTableData(stocktakeArray);
  }
  //列表1的選擇事件
  void jList1_valueChanged(ListSelectionEvent e) {
    if(listData1.size() > 0){
      this.showStocktakeArray();
    }else{
      this.clearStocktakeArray();
    }
  }
  //單擊事件
  public void actionPerformed(ActionEvent e) {
    //取得按鈕的動作字符串
    String actionCommand = e.getActionCommand().trim();
    if (actionCommand.equals("showWarehouse")) {
      this.showWarehouse();
    }else if(actionCommand.equals("showDifference")){
      this.showDifferenceStocktakeArray();
    }else if(actionCommand.equals("showSame")){
      this.showSameStocktakeArray();
    }else if(actionCommand.equals("showAll")){
      this.showAllStocktakeArray();
    }else if(actionCommand.equals("exit")){
      exit();
    }
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久er热在这里只有精品15 | 午夜精品久久久久久久久久| 亚洲成人动漫在线免费观看| 国产成人精品三级麻豆| 久久久久久久久久看片| 亚洲一区中文在线| 91在线你懂得| 亚洲国产aⅴ成人精品无吗| 国产精品一区二区久久精品爱涩 | 亚洲激情综合网| 99精品桃花视频在线观看| 久久久精品2019中文字幕之3| 美女脱光内衣内裤视频久久网站| 欧美一级在线视频| 日本不卡一二三区黄网| 欧美三级资源在线| 日本不卡视频在线| 26uuu国产日韩综合| 日韩欧美国产午夜精品| 日韩视频在线一区二区| 亚洲小说欧美激情另类| 亚洲美女在线一区| 国产在线麻豆精品观看| 欧美mv和日韩mv的网站| 日韩视频一区在线观看| 99久久精品久久久久久清纯| 久久99深爱久久99精品| 亚洲成人高清在线| 亚洲视频免费观看| 中文字幕一区在线观看| 中文字幕第一区第二区| 中文字幕亚洲电影| 国产精品三级在线观看| 久久精品亚洲一区二区三区浴池| 日韩欧美国产一区二区三区 | 亚洲一区国产视频| 国产精品免费视频一区| 17c精品麻豆一区二区免费| 中文字幕久久午夜不卡| 日韩欧美一区二区免费| 26uuuu精品一区二区| 亚洲精品中文在线观看| 成人免费一区二区三区视频| 中文字幕亚洲在| 亚洲色图制服诱惑| 亚洲午夜视频在线| 日韩高清在线一区| 日本一不卡视频| 国产一区二区福利| 国产精品主播直播| 国产成人av一区二区三区在线| 韩国精品免费视频| 国产精品中文字幕日韩精品| 国产精品夜夜爽| 97精品国产露脸对白| 91国产免费观看| 欧美日韩精品免费| 国产午夜精品一区二区三区四区| 欧美精品一区二| 精品91自产拍在线观看一区| 国产精品美女久久久久久2018| 亚洲人成网站色在线观看 | 色av一区二区| 欧美日韩亚洲综合| 精品精品国产高清a毛片牛牛| 久久久www免费人成精品| 国产精品丝袜91| 香蕉乱码成人久久天堂爱免费| 久久国产精品72免费观看| 国产成人免费高清| 欧美精选在线播放| 丝袜a∨在线一区二区三区不卡| 亚洲一区免费观看| 高清不卡一区二区| 欧美理论片在线| 国产女人aaa级久久久级| 亚洲一二三四在线观看| 日本va欧美va精品发布| 蜜桃在线一区二区三区| 色视频一区二区| 欧美一级片免费看| 中文字幕成人av| 精品一区二区三区香蕉蜜桃 | 国产精品区一区二区三| 午夜精品久久久久久久99樱桃| 日本不卡一二三区黄网| 色婷婷亚洲一区二区三区| 日韩亚洲欧美一区| 亚洲图片欧美视频| 成人aa视频在线观看| 日本道色综合久久| 国产亚洲1区2区3区| 久久精品国产亚洲a| 日本乱码高清不卡字幕| 亚洲精品一区二区精华| 免费观看一级欧美片| 99久久久久久99| 欧美大白屁股肥臀xxxxxx| 香港成人在线视频| 91免费国产视频网站| 中文字幕精品三区| 国产在线精品不卡| 日韩视频在线观看一区二区| 日韩国产精品91| 欧美亚洲另类激情小说| 中文字幕在线一区二区三区| 国产成人亚洲精品青草天美| 欧美一级黄色录像| 一区二区三区 在线观看视频 | 亚洲一区二区三区四区的| 精品国产一区二区精华| 日韩精品一二区| 欧美在线免费视屏| 亚洲自拍都市欧美小说| 91亚洲大成网污www| 国产日韩欧美在线一区| 成人丝袜18视频在线观看| 欧美成人激情免费网| 一二三四社区欧美黄| 欧美性猛片aaaaaaa做受| 亚洲欧美中日韩| 久久爱www久久做| 精品国产乱码久久久久久久| 久久99日本精品| 久久精品人人爽人人爽| 丰满亚洲少妇av| 国产欧美一区视频| 色综合天天综合网天天狠天天| 日韩伦理免费电影| 91免费精品国自产拍在线不卡| 亚洲一级在线观看| 欧美一级欧美三级在线观看| 亚洲韩国精品一区| 日韩精品一区二区三区老鸭窝| 日韩在线一区二区三区| 久久综合色婷婷| 国产69精品久久99不卡| 欧美不卡视频一区| 成人av资源在线| 亚洲免费在线视频| 91精品欧美综合在线观看最新| 亚洲国产综合在线| 欧美欧美午夜aⅴ在线观看| 精品一区二区三区不卡| 日韩欧美一级二级三级| 精品一区二区影视| 一区二区三区中文字幕电影 | 精品久久久久久久人人人人传媒 | 樱桃国产成人精品视频| 欧美亚洲丝袜传媒另类| 日本伊人色综合网| 成人免费一区二区三区视频| 欧美在线观看视频一区二区三区| 国产精品大尺度| 在线播放日韩导航| 国产一区二区三区四区五区美女 | 日韩一区二区视频在线观看| 欧美亚洲愉拍一区二区| 久久精品国产免费| 亚洲欧美综合色| 久久影院午夜论| 91麻豆国产香蕉久久精品| 午夜精品成人在线| 亚洲嫩草精品久久| 欧美mv日韩mv| www.亚洲在线| 日日欢夜夜爽一区| 中文字幕在线不卡一区| 精品国产一区二区精华| 99久精品国产| 麻豆精品国产91久久久久久| 一区二区三区自拍| 久久网这里都是精品| 另类的小说在线视频另类成人小视频在线 | 国内精品免费**视频| 亚洲黄色录像片| 最新久久zyz资源站| 日韩一区二区免费在线电影| 丰满岳乱妇一区二区三区| 看电视剧不卡顿的网站| 一区二区三区精品视频| 欧美一级高清片在线观看| 欧美日本在线视频| 色乱码一区二区三区88| 久久国产欧美日韩精品| 亚洲伊人色欲综合网| 中文字幕巨乱亚洲| www国产精品av| 91麻豆精品国产91久久久使用方法| 99国产精品国产精品久久| 99这里只有久久精品视频| 国产在线视频一区二区三区| 亚洲免费在线播放| 日韩美女久久久| 亚洲欧美日本在线| 久久精品一区二区三区不卡| 日韩一级片网站| 91精品国产欧美一区二区18| 欧美顶级少妇做爰| 91精品久久久久久久91蜜桃|