📄 mainfrm.java
字号:
return;
}
try {
num = Integer.parseInt(txtnumber.getText()); //获取商品个数
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null, "请正确填写商品个数", "错误",
JOptionPane.ERROR_MESSAGE);
return;
}
String sql = "select * from shopping where id='" + id + "'";
Link lk = new Link();
lk.connection();
ResultSet rs = lk.Select(sql);
try {
if (rs.next()) {
int geshu = Integer.parseInt(rs.getString(5));
if (geshu < num) { //判断库存是否小于商品个数
JOptionPane.showMessageDialog(null, "库存量不足,请联系仓库管理员", "警告",
JOptionPane.INFORMATION_MESSAGE);
}
else {
do {
Vector v = new Vector();
v.removeAllElements();
v.add(rs.getString(1).trim());
v.add(rs.getString(2).trim()); //类别
v.add(rs.getString(3).trim()); //商品名
v.add(rs.getString(4).trim()); //单价
v.add(tatol); //商品个数
v.add(rs.getString(6).trim()); //单位
v.add(rs.getString(7).trim()); //折扣率
v.add(rs.getString(8).trim()); //备注
vt.add(v); //添加数据
}
while (rs.next());
shopping += id + "\n";
tblsp.updateUI();
txtid.setText("");
txtnumber.setText("");
}
}
else {
JOptionPane.showMessageDialog(null, "没有该商品,请确认商品名是否正确", "错误",
JOptionPane.ERROR_MESSAGE);
}
}
catch (SQLException ex1) {
}
lk.close();
txtnumber.setText("1");
}
public void disleibei() { //显示
Link obj = new Link();
obj.connection();
String sql = "select kindsname from kinds";
ResultSet rs = obj.Select(sql);
cmbname.removeAllItems(); //清除下拉框中所有的项
cmbname.addItem("商品类别");
try {
while (rs.next()) {
cmbname.addItem(rs.getString(1));
}
rs.close();
obj.close();
}
catch (SQLException ex) {
}
}
public void jButton1_actionPerformed(ActionEvent e) {
vr.removeAllElements(); //删除表中原有数据
String name = txtspname.getText().trim();
String sql = ""; //
if (name.equals("") && cmbname.getSelectedItem().equals("商品类别")) {
sql = "select * from sellnote";
}
else if (!name.equals("") &&
cmbname.getSelectedItem().equals("商品类别")) {
sql = "select * from sellnote where name like'%" + name + "%'";
}
else if (name.equals("") &&
!cmbname.getSelectedItem().equals("商品类别")) {
sql = "select * from sellnote where kindsname='" +
cmbname.getSelectedItem() + "'";
}
else {
sql = "select * from sellnote where kindsname='" +
cmbname.getSelectedItem() + "' and name like'%" + name + "%'";
}
Link lk = new Link();
lk.connection();
ResultSet rs = lk.Select(sql);
try {
if (rs.next()) {
do {
Vector v = new Vector();
v.removeAllElements();
v.add(rs.getString(1).trim()); //商品编号
v.add(rs.getString(2).trim()); //类别
v.add(rs.getString(3).trim()); //商品名
v.add(rs.getString(4).trim()); //总数
v.add(rs.getString(5).trim()); //总额
v.add(rs.getString(6).trim()); //售出时间
vr.add(v); //添加数据
}
while (rs.next());
tbltotal.updateUI();
}
else {
JOptionPane.showMessageDialog(null, "不存在该商品记录", "",
JOptionPane.INFORMATION_MESSAGE);
}
}
catch (SQLException ex1) {
}
try {
rs.close();
}
catch (SQLException ex) {
}
lk.close();
}
public void btnsell_actionPerformed(ActionEvent e) { //销售表中商品
if (vt.size() == 0) {
JOptionPane.showMessageDialog(null, "表中无任何数据!", "提示",
JOptionPane.INFORMATION_MESSAGE);
return;
}
String shopping = ""; //用于存所售出的商品名
String sql = ""; //用于存SQL语句
float vipzhek = 10; //用于存会员折扣率
float price = 0; //用于存总额
boolean fl = false; //判断是否是会员
float mo = 0; //用于存单件商品的总额
Link lk = new Link();
lk.connection();
ResultSet rs = null;
if (chbvip.isSelected()) { //如果是会员,判断会员等级
rs = lk.Select("select grade from vip where cardid='" +
txtvipid.getText().trim() + "'");
try {
if (rs.next()) {
fl = true;
if (rs.getInt(1) == 1) {
vipzhek = 9.5f;
}
else {
vipzhek = 9.0f;
}
}
else {
JOptionPane.showMessageDialog(null, "该会员号不存在,请核实再查询!", "错误",
JOptionPane.ERROR_MESSAGE);
rs.close();
lk.close();
return;
}
}
catch (SQLException ex1) {
}
}
for (int i = 0; i < vt.size(); i++) {
int sum = 0; //用于剩余库存量
float danjia = 0; //用于存单价
float zhek = 10; //用于存折扣率
int su = 0; //售出数量
Vector tmep = (Vector) vt.get(i); //把表中的每一行都存在一个数组中
//查询原有库存
sql = "select price,total,abate from shopping where id='" +
tmep.get(0) + "'";
rs = lk.Select(sql);
//更新库存
try {
if (rs.next()) { //减去售出的数量
danjia = rs.getFloat(1);
su = Integer.parseInt(tmep.get(4).toString());
sum = rs.getInt(2) - su; //剩余库存量
zhek = rs.getFloat(3); //取出折扣
// System.out.println("su=" + su + " sum=" + sum + " zhek=" + zhek);
if (fl) {
mo = vipzhek * su * danjia * zhek * 0.01f;
}
else {
mo = danjia * zhek * 0.1f * su;
}
price += mo; //累计总额
}
}
catch (NumberFormatException ex) {
System.out.println("整形数据转换出错!");
}
catch (SQLException ex) {
} //取得当前时间
Calendar date = Calendar.getInstance(); //获取一个日历
t = new Date();
String temp = t.toString().substring(11,
(t.toString().length() - 4));
temp = temp.substring(0, 8);
date.get(Calendar.MINUTE);
date.get(Calendar.SECOND);
String time = date.get(Calendar.YEAR) + "-" +
(date.get(Calendar.MONTH) + 1)
+ "-" + date.get(Calendar.DATE) + " " + temp;
sql = "update shopping set total=" + sum + " where id='" +
tmep.get(0).toString() + "'";
int count = 0;
count = lk.Update(sql); //更新库存
if (count <= 0) {
JOptionPane.showMessageDialog(null, "更新库存出错了!", "错误",
JOptionPane.ERROR_MESSAGE);
lk.close();
return;
}
sql = "insert into sellnote values('" + tmep.get(0) + "','" +
tmep.get(1) + "','" + tmep.get(2) + "'," + tmep.get(4) +
"," + mo + ",'" + time + "')";
count = 0;
count = lk.Update(sql); //插入销售记录
if (count <= 0) {
JOptionPane.showMessageDialog(null, "无法更新销售记录!", "错误",
JOptionPane.ERROR_MESSAGE);
lk.close();
return;
}
shopping += "商品名:" + tmep.get(2) + "\n商品数量:" + su + "\n商品折扣率:" +
zhek +
"折\n"; //将出售信息存在一个字符串中,便于打印清单
}
System.out.println(price);
if (fl) {
sql = "update vip set integral=integral+" + (int) price +
" where cardid='" + //更新会员积分
txtvipid.getText().trim() + "'"; //每次消费增加积分
int count = 0;
count = lk.Update(sql);
if (count <= 0) {
JOptionPane.showMessageDialog(null, "会员积分出错了!", "错误",
JOptionPane.ERROR_MESSAGE);
lk.close();
return;
}
lk.Update("update vip set grade=2 where integral>=1000"); //当会员积分大于等于1000分时自动提升等级
try {
if (rs.next()) {
}
}
catch (SQLException ex3) {
}
}
try {
rs.close();
}
catch (SQLException ex2) {
}
lk.close();
System.out.println(price + " " + mo);
Checkout ct = new Checkout(shopping, fl, vipzhek, price, this);
ct.setSize(450, 420);
ct.setLocation(300, 200);
ct.show();
txtvipid.setText("");
// this.clear();//清空表中的数据
}
public void txtnumber_keyPressed(KeyEvent e) { //单击回车触发添加
if ( (int) e.getKeyChar() == 10) {
btntianjia_actionPerformed(null);
}
}
public void txtname_keyPressed(KeyEvent e) {
if ( (int) e.getKeyChar() == 10) {
btntianjia_actionPerformed(null);
}
}
public void txtspname_keyPressed(KeyEvent e) {
if ( (int) e.getKeyChar() == 10) {
jButton1_actionPerformed(null);
}
}
public void btncan_actionPerformed(ActionEvent e) { //删除表中的要销售商品的记录
int count = tblsp.getSelectedRow();
if (vt.size() == 0) {
JOptionPane.showMessageDialog(null, "表中无任何数据!", "提示",
JOptionPane.INFORMATION_MESSAGE);
return;
}
if (count < 0) {
JOptionPane.showMessageDialog(null, "请选择要删除的商品", "提示",
JOptionPane.INFORMATION_MESSAGE);
return;
}
String str = (String) tblsp.getValueAt(count, 1);
if (JOptionPane.showConfirmDialog(null, "确认删除?", "确认",
JOptionPane.YES_NO_OPTION) == 0) {
vt.remove(count); //删除表中的数据
tblsp.updateUI(); //更新表
}
}
public void jMenuItem3_actionPerformed(ActionEvent e) {
if ( (JOptionPane.showConfirmDialog(null, "确认退出?", "确认",
JOptionPane.YES_NO_OPTION)) ==
0) {
System.exit(0); //退出系统
}
}
public void jMenuItem1_actionPerformed(ActionEvent e) { //添加用户
UserAdd ua = new UserAdd();
ua.setSize(400, 330);
ua.setLocation(300, 250);
ua.show();
}
public void jMenuItem2_actionPerformed(ActionEvent e) { //登陆窗口
LandFrm lf = new LandFrm(this);
lf.setLocation(300, 250);
lf.show();
}
public void chbvip_mouseClicked(MouseEvent e) {
if (chbvip.isSelected()) {
txtvipid.setEnabled(true);
}
else {
txtvipid.setEnabled(false);
}
}
public void jMenuItem4_actionPerformed(ActionEvent e) { //计算器
try {
Runtime.getRuntime().exec("calc"); //调用计算器
}
catch (IOException ex) {
}
}
public void jMenuItem9_actionPerformed(ActionEvent e) { //计算器
try {
Runtime.getRuntime().exec("notepad"); //调用记事本
}
catch (IOException ex) {
}
}
public void jMenuItem11_actionPerformed(ActionEvent e) { //帮助提示
Help help = new Help();
help.setSize(470, 450);
help.setLocation(300, 250);
help.show();
}
public void btnkong_actionPerformed(ActionEvent e) { //清空表中的数据
if (vr.size() == 0) {
return;
}
if (JOptionPane.showConfirmDialog(null, "是否清空表中数据", "提示",
JOptionPane.YES_NO_OPTION) == 0) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -