📄 buymaterial.java
字号:
package com.csbook.restaurant;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;import java.util.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author pengtao * @version 1.0 */public class BuyMaterial extends JInternalFrame { JPanel panel1 = new JPanel(); BorderLayout borderLayout1 = new BorderLayout(); JPanel jPanel1 = new JPanel(); GridLayout gridLayout1 = new GridLayout(4,4); JLabel jLabel1 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JTextField operator = new JTextField(); JLabel jLabel6 = new JLabel(); JLabel jLabel7 = new JLabel(); JPanel jPanel2 = new JPanel(); FlowLayout flowLayout1 = new FlowLayout(); JLabel jLabel8 = new JLabel(); JPanel jPanel3 = new JPanel(); JButton ok = new JButton(); JButton cancel = new JButton(); JTextField remark = new JTextField(); JTextField price = new JTextField(); JTextField discount = new JTextField(); JLabel jLabel2 = new JLabel(); JTextField amount = new JTextField(); String currentOper=""; JComboBox commodity = new JComboBox(); Hashtable foodSupplier=new Hashtable(); JTextField supplier = new JTextField(); public BuyMaterial(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable,String operator) { super(title); this.currentOper=operator; try { jbInit(); pack(); } catch(Exception ex) { ex.printStackTrace(); } } private void jbInit() throws Exception { panel1.setLayout(borderLayout1); jPanel1.setLayout(gridLayout1); jLabel1.setText("所进商品:"); jLabel3.setText("备注:"); jLabel4.setText("折扣:"); jLabel5.setText("经手人:"); jLabel6.setText("单价:"); jLabel7.setText("供应商:"); jPanel2.setLayout(flowLayout1); jLabel8.setText("进货入库"); ok.setText("确定"); ok.addActionListener(new BuyMaterial_ok_actionAdapter(this)); cancel.setText("取消"); cancel.addActionListener(new BuyMaterial_cancel_actionAdapter(this)); remark.setText(""); operator.setText(""); price.setText(""); discount.setText(""); jLabel2.setText("数量:"); amount.setText(""); this.prepareShow(); commodity.setSelectedIndex(-1); commodity.addActionListener(new BuyMaterial_commodity_actionAdapter(this)); getContentPane().add(panel1); panel1.add(jPanel1, BorderLayout.CENTER); jPanel1.add(jLabel1, null); jPanel1.add(commodity, null); jPanel1.add(jLabel7, null); jPanel1.add(supplier, null); jPanel1.add(jLabel6, null); jPanel1.add(price, null); jPanel1.add(jLabel5, null); jPanel1.add(operator, null); jPanel1.add(jLabel4, null); jPanel1.add(discount, null); panel1.add(jPanel2, BorderLayout.NORTH); jPanel2.add(jLabel8, null); panel1.add(jPanel3, BorderLayout.SOUTH); jPanel3.add(ok, null); jPanel3.add(cancel, null); jPanel1.add(jLabel2, null); jPanel1.add(amount, null); jPanel1.add(jLabel3, null); jPanel1.add(remark, null); jPanel1.add(remark, null); operator.setText(currentOper); operator.setEditable(false); } void ok_actionPerformed(ActionEvent e) { if(price.getText().trim().equals("")||discount.getText().trim().equals("")||amount.getText().trim().equals("")) { JOptionPane.showMessageDialog(this, "单价、数量和折扣不能为空,无折扣请输入1!", "警告", JOptionPane.ERROR_MESSAGE); return; } String temp=price.getText().trim(); try { Float.parseFloat(temp); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "您输入的数据不合法!", "警告", JOptionPane.ERROR_MESSAGE); return; } temp=discount.getText().trim(); try { float disc=Float.parseFloat(temp); if(disc>1||disc<0) JOptionPane.showMessageDialog(this, "折扣率只能在0和1之间!", "警告", JOptionPane.ERROR_MESSAGE); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "您输入的数据不合法!", "警告", JOptionPane.ERROR_MESSAGE); } temp=amount.getText().trim(); try { Float.parseFloat(temp); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "您输入的数据不合法!", "警告", JOptionPane.ERROR_MESSAGE); } Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; try{ conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Restaurant;user=user;password=user"); //建立库存入库单 ps=conn.prepareStatement("insert into commodityIn(commodity,operator,supplier,amount,price,discount,totalPrice,remark,stockDate) values(?,?,?,?,?,?,?,?,?)"); ps.setString(1,commodity.getSelectedItem().toString()); ps.setString(2,operator.getText()); ps.setString(3,supplier.getText()); ps.setFloat(4,Float.parseFloat(amount.getText())); ps.setFloat(5,Float.parseFloat(price.getText())); ps.setFloat(6,Float.parseFloat(discount.getText())); ps.setFloat(7,Float.parseFloat(amount.getText())*Float.parseFloat(price.getText())*Float.parseFloat(discount.getText())); ps.setString(8,remark.getText()); java.sql.Date currentDate=new java.sql.Date(System.currentTimeMillis()); ps.setDate(9,currentDate); ps.executeUpdate(); //更改库存信息 ps=conn.prepareStatement("select amount from stockInfo where commodity=?"); ps.setString(1,commodity.getSelectedItem().toString()); rs=ps.executeQuery(); float curAmount=0; boolean hasRecord=false; if(rs.next()){ hasRecord = true; curAmount=rs.getFloat("amount"); } if(hasRecord) { ps=conn.prepareStatement("update stockInfo set amount=? where commodity=?"); ps.setFloat(1,curAmount+Float.parseFloat(amount.getText())); ps.setString(2,commodity.getSelectedItem().toString()); ps.executeUpdate(); } else { ps=conn.prepareStatement("insert into stockInfo(commodity,amount,updateTime) values(?,?,?)"); ps.setString(1,commodity.getSelectedItem().toString()); ps.setFloat(2,Float.parseFloat(amount.getText())); ps.setDate(3,currentDate); ps.executeUpdate(); } JOptionPane.showMessageDialog(this, "已成功进行入库操作!", "操作",JOptionPane.PLAIN_MESSAGE); } catch(SQLException ex){ ex.printStackTrace(); } finally{ if(ps!=null)try{ps.close();}catch(SQLException ignore){} if(conn!=null)try{conn.close();}catch(SQLException ignore){} } } void cancel_actionPerformed(ActionEvent e) { this.dispose(); } private void prepareShow(){ Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; try{ conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Restaurant;user=user;password=user"); ps=conn.prepareStatement("select name,producer from food"); rs=ps.executeQuery(); while(rs.next()) { commodity.addItem(rs.getString("name")); foodSupplier.put(rs.getString("name"),rs.getString("producer")); } } catch(SQLException ex){ ex.printStackTrace(); } finally{ if(rs!=null)try{rs.close();}catch(SQLException ignore){} if(ps!=null)try{ps.close();}catch(SQLException ignore){} if(conn!=null)try{conn.close();}catch(SQLException ignore){} } } void commodity_actionPerformed(ActionEvent e) { if(commodity.getSelectedIndex()==-1) return; String selectedFood=commodity.getSelectedItem().toString(); supplier.setText((foodSupplier.get(selectedFood)).toString()); } }class BuyMaterial_ok_actionAdapter implements java.awt.event.ActionListener { BuyMaterial adaptee; BuyMaterial_ok_actionAdapter(BuyMaterial adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.ok_actionPerformed(e); }}class BuyMaterial_cancel_actionAdapter implements java.awt.event.ActionListener { BuyMaterial adaptee; BuyMaterial_cancel_actionAdapter(BuyMaterial adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.cancel_actionPerformed(e); }}class BuyMaterial_commodity_actionAdapter implements java.awt.event.ActionListener { BuyMaterial adaptee; BuyMaterial_commodity_actionAdapter(BuyMaterial adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.commodity_actionPerformed(e); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -