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

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

?? jinhuodan.java

?? 包含了企業進銷存管理系統源代碼
?? JAVA
字號:
package internalFrame;
import internalFrame.guanli.Item;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ContainerEvent;
import java.awt.event.ContainerListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Vector;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableColumn;

import model.TbGysinfo;
import model.TbRukuDetail;
import model.TbRukuMain;
import model.TbSpinfo;
import model.TbUserlist;
import com.lzw.dao.Dao;
import com.lzw.login.Login;
public class JinHuoDan extends JInternalFrame {
	private final JTable table;
	private TbUserlist user = Login.getUser(); 			// 登錄用戶信息
	private final JTextField jhsj = new JTextField(); 	// 進貨時間
	private final JTextField jsr = new JTextField(); 	// 經手人
	private final JComboBox jsfs = new JComboBox(); 	// 計算方式
	private final JTextField lian = new JTextField(); 	// 聯系人
	private final JComboBox gys = new JComboBox(); 		// 供應商
	private final JTextField piaoHao = new JTextField();// 票號
	private final JTextField pzs = new JTextField("0"); // 品種數量
	private final JTextField hpzs = new JTextField("0");// 貨品總數
	private final JTextField hjje = new JTextField("0");// 合計金額
	private final JTextField ysjl = new JTextField(); 	// 驗收結論
	private final JTextField czy = new JTextField(user.getName());// 操作員
	private Date jhsjDate;
	private JComboBox sp;
	public JinHuoDan() {
		super();
		setMaximizable(true);
		setIconifiable(true);
		setClosable(true);
		getContentPane().setLayout(new GridBagLayout());
		setTitle("進貨單");
		setBounds(50, 50, 700, 400);

		setupComponet(new JLabel("進貨票號:"), 0, 0, 1, 0, false);
		piaoHao.setFocusable(false);
		setupComponet(piaoHao, 1, 0, 1, 140, true);

		setupComponet(new JLabel("供應商:"), 2, 0, 1, 0, false);
		gys.setPreferredSize(new Dimension(160, 21));
		// 供應商下拉選擇框的選擇事件
		gys.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				doGysSelectAction();
			}
		});
		setupComponet(gys, 3, 0, 1, 1, true);

		setupComponet(new JLabel("聯系人:"), 4, 0, 1, 0, false);
		lian.setFocusable(false);
		setupComponet(lian, 5, 0, 1, 80, true);

		setupComponet(new JLabel("結算方式:"), 0, 1, 1, 0, false);
		jsfs.addItem("現金");
		jsfs.addItem("支票");
		jsfs.setEditable(true);
		setupComponet(jsfs, 1, 1, 1, 1, true);

		setupComponet(new JLabel("進貨時間:"), 2, 1, 1, 0, false);
		jhsj.setFocusable(false);
		setupComponet(jhsj, 3, 1, 1, 1, true);

		setupComponet(new JLabel("經手人:"), 4, 1, 1, 0, false);
		setupComponet(jsr, 5, 1, 1, 1, true);

		sp = new JComboBox();
		sp.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				TbSpinfo info = (TbSpinfo) sp.getSelectedItem();
				// 如果選擇有效就更新表格
				if (info != null && info.getId() != null) {
					updateTable();
				}
			}
		});

		table = new JTable();
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		initTable();
		// 添加事件完成品種數量、貨品總數、合計金額的計算
		table.addContainerListener(new computeInfo());
		JScrollPane scrollPanel = new JScrollPane(table);
		scrollPanel.setPreferredSize(new Dimension(380, 200));
		setupComponet(scrollPanel, 0, 2, 6, 1, true);

		setupComponet(new JLabel("品種數量:"), 0, 3, 1, 0, false);
		pzs.setFocusable(false);
		setupComponet(pzs, 1, 3, 1, 1, true);

		setupComponet(new JLabel("貨品總數:"), 2, 3, 1, 0, false);
		hpzs.setFocusable(false);
		setupComponet(hpzs, 3, 3, 1, 1, true);

		setupComponet(new JLabel("合計金額:"), 4, 3, 1, 0, false);
		hjje.setFocusable(false);
		setupComponet(hjje, 5, 3, 1, 1, true);

		setupComponet(new JLabel("驗收結論:"), 0, 4, 1, 0, false);
		setupComponet(ysjl, 1, 4, 1, 1, true);

		setupComponet(new JLabel("操作人員:"), 2, 4, 1, 0, false);
		czy.setFocusable(false);
		setupComponet(czy, 3, 4, 1, 1, true);

		// 單擊添加按鈕在表格中添加新的一行
		JButton tjButton = new JButton("添加");
		tjButton.addActionListener(new TjActionListener());
		setupComponet(tjButton, 4, 4, 1, 1, false);

		// 單擊入庫按鈕保存進貨信息
		JButton rkButton = new JButton("入庫");
		rkButton.addActionListener(new RkActionListener());
		setupComponet(rkButton, 5, 4, 1, 1, false);
		// 添加窗體監聽器,完成初始化
		addInternalFrameListener(new initTasks());
	}
	// 初始化表格
	private void initTable() {
		String[] columnNames = {"商品名稱", "商品編號", "產地", "單位", "規格", "包裝", "單價",
				"數量", "批號", "批準文號"};
		((DefaultTableModel) table.getModel())
				.setColumnIdentifiers(columnNames);
		TableColumn column = table.getColumnModel().getColumn(0);
		final DefaultCellEditor editor = new DefaultCellEditor(sp);
		editor.setClickCountToStart(2);
		column.setCellEditor(editor);
	}
	// 初始化商品下拉選擇框
	private void initSpBox() {
		List list = new ArrayList();
		ResultSet set = Dao.query("select * from tb_spinfo where gysName='"
				+ gys.getSelectedItem() + "'");
		sp.removeAllItems();
		sp.addItem(new TbSpinfo());
		for (int i = 0; table != null && i < table.getRowCount(); i++) {
			TbSpinfo tmpInfo = (TbSpinfo) table.getValueAt(i, 0);
			if (tmpInfo != null && tmpInfo.getId() != null)
				list.add(tmpInfo.getId());
		}
		try {
			while (set.next()) {
				TbSpinfo spinfo = new TbSpinfo();
				spinfo.setId(set.getString("id").trim());
				// 如果表格中以存在同樣商品,商品下拉框中就不再包含該商品
				if (list.contains(spinfo.getId()))
					continue;
				spinfo.setSpname(set.getString("spname").trim());
				spinfo.setCd(set.getString("cd").trim());
				spinfo.setJc(set.getString("jc").trim());
				spinfo.setDw(set.getString("dw").trim());
				spinfo.setGg(set.getString("gg").trim());
				spinfo.setBz(set.getString("bz").trim());
				spinfo.setPh(set.getString("ph").trim());
				spinfo.setPzwh(set.getString("pzwh").trim());
				spinfo.setMemo(set.getString("memo").trim());
				spinfo.setGysname(set.getString("gysname").trim());
				sp.addItem(spinfo);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	// 設置組件位置并添加到容器中
	private void setupComponet(JComponent component, int gridx, int gridy,
			int gridwidth, int ipadx, boolean fill) {
		final GridBagConstraints gridBagConstrains = new GridBagConstraints();
		gridBagConstrains.gridx = gridx;
		gridBagConstrains.gridy = gridy;
		if (gridwidth > 1)
			gridBagConstrains.gridwidth = gridwidth;
		if (ipadx > 0)
			gridBagConstrains.ipadx = ipadx;
		gridBagConstrains.insets = new Insets(5, 1, 3, 1);
		if (fill)
			gridBagConstrains.fill = GridBagConstraints.HORIZONTAL;
		getContentPane().add(component, gridBagConstrains);
	}
	// 供應商選擇時更新聯系人字段
	private void doGysSelectAction() {
		Item item = (Item) gys.getSelectedItem();
		TbGysinfo gysInfo = Dao.getGysInfo(item);
		lian.setText(gysInfo.getLian());
		initSpBox();
	}
	class RkActionListener implements ActionListener {	// 入庫按鈕的事件監聽器
		public void actionPerformed(ActionEvent e) {
			// 結束表格中沒有編寫的單元
			stopTableCellEditing();
			// 清除空行
			clearEmptyRow();
			String hpzsStr = hpzs.getText(); // 貨品總數
			String pzsStr = pzs.getText(); // 品種數
			String jeStr = hjje.getText(); // 合計金額
			String jsfsStr = jsfs.getSelectedItem().toString(); // 結算方式
			String jsrStr = jsr.getText().trim(); // 經手人
			String czyStr = czy.getText(); // 操作員
			String rkDate = jhsjDate.toLocaleString(); // 入庫時間
			String ysjlStr = ysjl.getText().trim(); // 驗收結論
			String id = piaoHao.getText(); // 票號
			String gysName = gys.getSelectedItem().toString();// 供應商名字
			if (jsrStr == null || jsrStr.isEmpty()) {
				JOptionPane.showMessageDialog(JinHuoDan.this, "請填寫經手人");
				return;
			}
			if (ysjlStr == null || ysjlStr.isEmpty()) {
				JOptionPane.showMessageDialog(JinHuoDan.this, "填寫驗收結論");
				return;
			}
			if (table.getRowCount() <= 0) {
				JOptionPane.showMessageDialog(JinHuoDan.this, "填加入庫商品");
				return;
			}
			TbRukuMain ruMain = new TbRukuMain(id, pzsStr, jeStr, ysjlStr,
					gysName, rkDate, czyStr, jsrStr, jsfsStr);
			Set<TbRukuDetail> set = ruMain.getTabRukuDetails();
			int rows = table.getRowCount();
			for (int i = 0; i < rows; i++) {
				TbSpinfo spinfo = (TbSpinfo) table.getValueAt(i, 0);
				String djStr = (String) table.getValueAt(i, 6);
				String slStr = (String) table.getValueAt(i, 7);
				Double dj = Double.valueOf(djStr);
				Integer sl = Integer.valueOf(slStr);
				TbRukuDetail detail = new TbRukuDetail();
				detail.setTabSpinfo(spinfo.getId());
				detail.setTabRukuMain(ruMain.getRkId());
				detail.setDj(dj);
				detail.setSl(sl);
				set.add(detail);
			}
			boolean rs = Dao.insertRukuInfo(ruMain);
			if (rs) {
				JOptionPane.showMessageDialog(JinHuoDan.this, "入庫完成");
				DefaultTableModel dftm = new DefaultTableModel();
				table.setModel(dftm);
				initTable();
				pzs.setText("0");
				hpzs.setText("0");
				hjje.setText("0");
			}
		}
	}
	class TjActionListener implements ActionListener {	// 添加按鈕的事件監聽器
		public void actionPerformed(ActionEvent e) {
			// 初始化票號
			initPiaoHao();
			// 結束表格中沒有編寫的單元
			stopTableCellEditing();
			// 如果表格中還包含空行,就再添加新行
			for (int i = 0; i < table.getRowCount(); i++) {
				TbSpinfo info = (TbSpinfo) table.getValueAt(i, 0);
				if (table.getValueAt(i, 0) == null)
					return;
			}
			DefaultTableModel model = (DefaultTableModel) table.getModel();
			model.addRow(new Vector());
			initSpBox();
		}
	}
	// 在事件中計算品種數量、貨品總數、合計金額
	private final class computeInfo implements ContainerListener {
		public void componentRemoved(ContainerEvent e) {
			// 清除空行
			clearEmptyRow();
			// 計算代碼
			int rows = table.getRowCount();
			int count = 0;
			double money = 0.0;
			// 計算品種數量
			TbSpinfo column = null;
			if (rows > 0)
				column = (TbSpinfo) table.getValueAt(rows - 1, 0);
			if (rows > 0 && (column == null || column.getId().isEmpty()))
				rows--;
			// 計算貨品總數和金額
			for (int i = 0; i < rows; i++) {
				String column7 = (String) table.getValueAt(i, 7);
				String column6 = (String) table.getValueAt(i, 6);
				int c7 = (column7 == null || column7.isEmpty()) ? 0 : Integer
						.parseInt(column7);
				float c6 = (column6 == null || column6.isEmpty()) ? 0 : Float
						.parseFloat(column6);
				count += c7;
				money += c6 * c7;
			}

			pzs.setText(rows + "");
			hpzs.setText(count + "");
			hjje.setText(money + "");
			// /////////////////////////////////////////////////////////////////
		}
		public void componentAdded(ContainerEvent e) {
		}
	}
	// 窗體的初始化任務
	private final class initTasks extends InternalFrameAdapter {
		public void internalFrameActivated(InternalFrameEvent e) {
			super.internalFrameActivated(e);
			initTimeField();
			initGysField();
			initPiaoHao();
			initSpBox();
		}
		private void initGysField() {// 初始化供應商字段
			List gysInfos = Dao.getGysInfos();
			for (Iterator iter = gysInfos.iterator(); iter.hasNext();) {
				List list = (List) iter.next();
				Item item = new Item();
				item.setId(list.get(0).toString().trim());
				item.setName(list.get(1).toString().trim());
				gys.addItem(item);
			}
			doGysSelectAction();
		}
		private void initTimeField() {// 啟動進貨時間線程
			new Thread(new Runnable() {
				public void run() {
					try {
						while (true) {
							jhsjDate = new Date();
							jhsj.setText(jhsjDate.toLocaleString());
							Thread.sleep(100);
						}
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}).start();
		}
	}
	// 初始化票號文本框的方法
	private void initPiaoHao() {
		java.sql.Date date = new java.sql.Date(jhsjDate.getTime());
		String maxId = Dao.getRuKuMainMaxId(date);
		piaoHao.setText(maxId);
	}
	// 根據商品下拉框的選擇,更新表格當前行的內容
	private synchronized void updateTable() {
		TbSpinfo spinfo = (TbSpinfo) sp.getSelectedItem();
		int row = table.getSelectedRow();
		if (row >= 0 && spinfo != null) {
			table.setValueAt(spinfo.getId(), row, 1);
			table.setValueAt(spinfo.getCd(), row, 2);
			table.setValueAt(spinfo.getDw(), row, 3);
			table.setValueAt(spinfo.getGg(), row, 4);
			table.setValueAt(spinfo.getBz(), row, 5);
			table.setValueAt("0", row, 6);
			table.setValueAt("0", row, 7);
			table.setValueAt(spinfo.getPh(), row, 8);
			table.setValueAt(spinfo.getPzwh(), row, 9);
			table.editCellAt(row, 6);
		}
	}
	// 清除空行
	private synchronized void clearEmptyRow() {
		DefaultTableModel dftm = (DefaultTableModel) table.getModel();
		for (int i = 0; i < table.getRowCount(); i++) {
			TbSpinfo info2 = (TbSpinfo) table.getValueAt(i, 0);
			if (info2 == null || info2.getId() == null
					|| info2.getId().isEmpty()) {
				dftm.removeRow(i);
			}
		}
	}
	// 停止表格單元的編輯
	private void stopTableCellEditing() {
		TableCellEditor cellEditor = table.getCellEditor();
		if (cellEditor != null)
			cellEditor.stopCellEditing();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区的| 美女性感视频久久| 不卡一区二区中文字幕| 国产日韩精品视频一区| 国内精品在线播放| 午夜精彩视频在线观看不卡| 亚洲精品久久久蜜桃| 99精品欧美一区二区蜜桃免费| 欧美国产成人在线| 91在线高清观看| 亚洲成人动漫av| 欧美一级精品大片| 国产99久久久久久免费看农村| 日韩av一区二区在线影视| 欧美精品在线观看播放| 久久99精品国产| 国产精品色噜噜| 欧美亚洲动漫精品| 久久99在线观看| 欧美激情综合五月色丁香| 99精品欧美一区| 日本特黄久久久高潮| www国产亚洲精品久久麻豆| 99久久伊人网影院| 亚洲国产精品久久人人爱| 精品久久久久香蕉网| yourporn久久国产精品| 日本不卡视频在线观看| 中文字幕高清不卡| 欧美日产国产精品| 国产成人在线视频播放| 亚洲成人在线网站| 国产亚洲欧美日韩在线一区| 欧洲精品在线观看| 国产成人综合在线| 天天影视色香欲综合网老头| 国产日韩影视精品| 欧美日韩一二区| 成人福利视频网站| 麻豆国产欧美一区二区三区| 亚洲精品视频观看| 久久精品亚洲一区二区三区浴池| 欧美色图激情小说| 成人av片在线观看| 国产做a爰片久久毛片| 亚洲成人动漫一区| 亚洲欧美视频在线观看视频| 国产视频一区在线观看| 一本高清dvd不卡在线观看| 美国十次了思思久久精品导航| 中文字幕一区二区视频| 日韩一区二区三区在线视频| 中文乱码免费一区二区| 日韩一卡二卡三卡国产欧美| 91精品91久久久中77777| 成人涩涩免费视频| 久久99精品久久久久久动态图 | 经典三级视频一区| 亚洲大尺度视频在线观看| 国产精品无圣光一区二区| 欧美videossexotv100| 欧美日本乱大交xxxxx| 91视频.com| 91影院在线观看| 岛国精品在线播放| 国产不卡视频在线观看| 韩国欧美国产一区| 日本不卡视频在线| 日韩av中文字幕一区二区三区| 一卡二卡三卡日韩欧美| 一区二区三区日本| 亚洲精选视频免费看| 中文字幕一区av| 国产精品传媒入口麻豆| 中文无字幕一区二区三区| 国产日韩欧美精品综合| 国产欧美日韩另类视频免费观看| www激情久久| 国产亚洲精品中文字幕| 欧美激情一区在线观看| 国产精品色婷婷久久58| 中文字幕在线观看一区二区| 亚洲国产精品成人综合色在线婷婷 | 久久免费看少妇高潮| www国产亚洲精品久久麻豆| 久久久亚洲精华液精华液精华液| 久久久久国色av免费看影院| 精品国产乱子伦一区| 2023国产一二三区日本精品2022| 久久久亚洲精品一区二区三区| 国产欧美一区二区三区沐欲| 亚洲国产精品精华液ab| 日韩理论片网站| 亚洲高清免费一级二级三级| 图片区小说区区亚洲影院| 日本aⅴ免费视频一区二区三区| 免费成人av在线播放| 国产精品一级在线| 成人av在线电影| 日本丶国产丶欧美色综合| 欧美视频一区二区三区四区| 日韩一区二区电影网| 国产亚洲精品中文字幕| 亚洲欧洲综合另类| 丝袜美腿成人在线| 国产精品综合二区| 91成人免费电影| 精品久久久久av影院| 中文字幕一区二区三| 日日夜夜一区二区| 国产一区二区在线影院| 色综合中文字幕国产| 欧美亚洲动漫精品| 久久午夜电影网| 一区二区三区中文字幕在线观看| 日韩av一级片| 94色蜜桃网一区二区三区| 欧美精品久久久久久久多人混战 | 午夜视频一区二区| 国产成人午夜视频| 欧美自拍偷拍午夜视频| 久久综合视频网| 亚洲一区在线看| 国产一区二区调教| 欧美在线观看你懂的| 久久久久88色偷偷免费| 亚洲aaa精品| 福利电影一区二区三区| 在线不卡a资源高清| 国产精品精品国产色婷婷| 青青草97国产精品免费观看无弹窗版| 国产精品一区在线观看乱码| 欧美人妖巨大在线| 亚洲欧美在线aaa| 国产在线看一区| 51午夜精品国产| 一区二区三区日韩欧美精品| 国产成人自拍网| 日韩精品在线网站| 亚洲一区二区视频| aaa国产一区| 久久综合九色综合欧美就去吻 | 成人av午夜影院| 26uuu亚洲| 日韩二区三区四区| 在线中文字幕一区| 国产精品国产三级国产| 亚洲精品网站在线观看| 91豆麻精品91久久久久久| 精品久久国产老人久久综合| 亚洲国产综合视频在线观看| 成人精品免费看| 精品国产人成亚洲区| 91丨porny丨首页| 国产三级精品三级| 老汉av免费一区二区三区| 制服丝袜在线91| 日本中文字幕一区二区视频| 色综合久久久久综合体桃花网| 国产精品人成在线观看免费| 午夜私人影院久久久久| 精品视频在线看| 亚洲高清免费视频| 欧美日韩一区二区三区四区 | 成人免费黄色在线| 久久久久久电影| 国产精品一二三四| 国产亚洲欧美日韩日本| 国产69精品久久久久毛片 | 91精品国产一区二区人妖| 国产精品麻豆久久久| 在线播放中文字幕一区| 一区二区在线免费| 一本大道av伊人久久综合| 亚洲日本欧美天堂| 欧美视频完全免费看| 亚洲一区在线观看免费观看电影高清| 色综合久久综合中文综合网| 亚洲精品乱码久久久久久| 精品视频一区三区九区| 日韩电影在线免费看| 日韩女优av电影| 国产麻豆91精品| 国产精品乱人伦中文| 91麻豆精品秘密| 亚洲成av人片一区二区三区| 51午夜精品国产| 国产麻豆成人精品| 最新不卡av在线| 欧洲视频一区二区| 国产91精品久久久久久久网曝门 | 国产精品国产三级国产三级人妇 | 久久成人免费网| 精品国产一区二区三区不卡| 极品销魂美女一区二区三区| 久久久久久久久久久电影| 成人av电影在线| 亚洲综合激情网| 精品理论电影在线| 懂色av一区二区三区蜜臀 |