📄 jf_view_sell.java
字号:
package com.lzw.view;
import javax.swing.*;
import java.awt.*;
import javax.swing.BorderFactory;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableColumnModel;
import java.awt.event.*;
import java.util.Locale;
import java.text.DateFormat;
import java.util.List;
import java.util.Iterator;
import java.awt.event.*;
import javax.swing.event.TableModelListener;
import com.lzw.dao.AdapterDao;
import com.lzw.model.*;
import java.awt.Font;
import java.util.Calendar;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
public class JF_view_sell extends JInternalFrame implements TableModelListener {
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
GridLayout gridLayout1 = new GridLayout();
JLabel jLabel1 = new JLabel();
JTextField jTextField1 = new JTextField();
JLabel jLabel2 = new JLabel();
JTextField jTextField2 = new JTextField();
JLabel jLabel3 = new JLabel();
JTextField jTextField3 = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField jTextField4 = new JTextField();
JLabel jLabel5 = new JLabel();
JTextField jTextField5 = new JTextField();
JLabel jLabel6 = new JLabel();
JTextField jTextField6 = new JTextField();
JLabel jLabel7 = new JLabel();
JLabel jLabel8 = new JLabel();
JTextField jTextField8 = new JTextField();
JComboBox jComboBox1 = new JComboBox();
JSplitPane jSplitPane1 = new JSplitPane();
BorderLayout borderLayout2 = new BorderLayout();
JPanel jPanel4 = new JPanel();
JPanel jPanel5 = new JPanel();
GridLayout gridLayout2 = new GridLayout();
JLabel jLabel9 = new JLabel();
JTextField jTxsph = new JTextField();
JLabel jLabel10 = new JLabel();
JTextField jTldrq = new JTextField();
JLabel jLabel11 = new JLabel();
JLabel jLabel12 = new JLabel();
JTextField jTjbr = new JTextField();
FlowLayout flowLayout1 = new FlowLayout();
JButton jBadd = new JButton();
JButton jBsave = new JButton();
JButton jButton3 = new JButton();
JComboBox jComboBox2 = new JComboBox();
BorderLayout borderLayout3 = new BorderLayout();
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1 = new JTable();
DefaultTableModel tableModel = null;
JComboBox jcbh = new JComboBox();
JComboBox jComboBox21 = new JComboBox();
JButton jBreg = new JButton();
JButton jBdel = new JButton();
private Calendar calendar;
public JF_view_sell() {
try {
buildTable();
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void buildTable() {
String[] tname = {"流水号", "药品编号", "药品名称", "药品批号", "规格", "产地", "单位",
"零售价", "销售数量", "销售金额", "库存数量"};
java.util.Vector vname = new java.util.Vector();
for (int i = 0; i < tname.length; i++) {
vname.addElement(tname[i]);
}
tableModel = new DefaultTableModel(vname, 0);
tableModel.addTableModelListener(this);
jTable1.setModel(tableModel);
TableColumnModel tcm = jTable1.getColumnModel();
}
private void jbInit() throws Exception {
tableModel.addTableModelListener(this);
this.getContentPane().setLayout(borderLayout1);
jPanel1.setLayout(borderLayout2);
jSplitPane1.setOrientation(JSplitPane.VERTICAL_SPLIT);
jSplitPane1.setVerifyInputWhenFocusTarget(false);
jPanel4.setLayout(gridLayout2);
gridLayout2.setColumns(4);
gridLayout2.setRows(2);
jLabel9.setHorizontalAlignment(SwingConstants.RIGHT);
jLabel9.setText("销售票号:");
jTxsph.setText("");
jLabel10.setText("录单日期:");
jLabel10.setHorizontalAlignment(SwingConstants.RIGHT);
jTldrq.setText("");
jLabel11.setText("销售客户:");
jLabel11.setHorizontalAlignment(SwingConstants.RIGHT);
jLabel12.setHorizontalAlignment(SwingConstants.RIGHT);
jLabel12.setText("经办人:");
jTjbr.setText("");
jPanel5.setLayout(flowLayout1);
jBadd.setEnabled(false);
jBadd.setFont(new java.awt.Font("新宋体", Font.PLAIN, 12));
jBadd.setText("添加");
jBadd.addActionListener(new JF_view_sell_jBadd_actionAdapter(this));
jBsave.setEnabled(false);
jBsave.setFont(new java.awt.Font("新宋体", Font.PLAIN, 12));
jBsave.setText("存盘");
jBsave.addActionListener(new JF_view_sell_jBsave_actionAdapter(this));
jButton3.setFont(new java.awt.Font("新宋体", Font.PLAIN, 12));
jButton3.setText("退出");
jButton3
.addActionListener(new JF_view_sell_jButton3_actionAdapter(this));
jPanel2.setLayout(borderLayout3);
jPanel2.setBorder(BorderFactory.createLoweredBevelBorder());
jScrollPane1
.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jTable1.setAutoscrolls(false);
jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
this.setClosable(true);
this.setMaximizable(true);
this.setTitle("医药进销存管理系统-[药品销售]");
jBreg.setFont(new java.awt.Font("新宋体", Font.PLAIN, 12));
jBreg.setText("登记");
jBreg.addActionListener(new JF_view_sell_jBreg_actionAdapter(this));
jComboBox1.setFont(new java.awt.Font("新宋体", Font.PLAIN, 12));
jLabel4.setHorizontalAlignment(SwingConstants.RIGHT);
jLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
jBdel.setEnabled(false);
jBdel.setFont(new java.awt.Font("新宋体", Font.PLAIN, 12));
jBdel.setText("删除");
jBdel.addActionListener(new JF_view_sell_jBdel_actionAdapter(this));
jTextField1.setEnabled(false);
jTextField2.setEnabled(false);
jTextField3.setEnabled(false);
jTextField5.setEnabled(false);
jTextField6
.addKeyListener(new JF_view_sell_jTextField6_keyAdapter(this));
jComboBox2.setFont(new java.awt.Font("新宋体", Font.PLAIN, 12));
this.getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);
jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jScrollPane1.getViewport().add(jTable1);
jLabel1.setText("销售品种:");
jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
jPanel3.setBorder(BorderFactory.createLineBorder(Color.black));
gridLayout1.setColumns(4);
gridLayout1.setRows(4);
jPanel3.setLayout(gridLayout1);
this.getContentPane().add(jPanel3, java.awt.BorderLayout.SOUTH);
jTextField1.setText("");
jLabel2.setText("销售总数:");
jTextField2.setText("0");
jLabel3.setText("合计金额:");
jLabel3.setHorizontalAlignment(SwingConstants.RIGHT);
jTextField3.setText("0");
jLabel4.setText("折扣金额:");
jTextField4.setText("0");
jTextField4.addFocusListener(new FocusAdapter() {
public void focusLost(FocusEvent e) {
double zkje, ysje, hjje;
try {
hjje = Double.parseDouble(jTextField3.getText().trim());
zkje = Double.parseDouble(jTextField4.getText().trim());
} catch (java.lang.NumberFormatException format) {
JOptionPane.showMessageDialog(null, "输入的数据格式有误,请重新录入!!\n"
+ format.getMessage(), "系统提示",
JOptionPane.ERROR_MESSAGE);
System.out.println(format.getMessage());
return;
}
ysje = hjje - zkje;
if (ysje >= 0) {
jTextField5.setText(String.valueOf(ysje));
jTextField6.requestFocus();
} else {
JOptionPane.showMessageDialog(null,
"输入的折扣金额不允许比合计金额大,请重新输入!!!", "系统提示",
JOptionPane.ERROR_MESSAGE);
jTextField4.setText("0");
jTextField4.requestFocus();
}
}
});
jLabel5.setText("实收金额:");
jLabel5.setHorizontalAlignment(SwingConstants.RIGHT);
jTextField5.setText("");
jLabel6.setText("应收金额:");
jLabel6.setHorizontalAlignment(SwingConstants.RIGHT);
jTextField6.setText("");
jLabel7.setText("收款方式:");
jLabel7.setHorizontalAlignment(SwingConstants.RIGHT);
jComboBox1.addItem("现金");
jComboBox1.addItem("转帐");
jLabel8.setText("未收金额:");
jLabel8.setHorizontalAlignment(SwingConstants.RIGHT);
jTextField8.setText("");
jPanel3.add(jLabel1);
jPanel3.add(jTextField1);
jPanel3.add(jLabel2);
jPanel3.add(jTextField2);
jPanel3.add(jLabel3);
jPanel3.add(jTextField3);
jPanel3.add(jLabel4);
jPanel3.add(jTextField4);
jPanel3.add(jLabel6);
jPanel3.add(jTextField5);
jPanel3.add(jLabel5);
jPanel3.add(jTextField6);
jPanel3.add(jLabel7);
jPanel3.add(jComboBox1);
jPanel3.add(jLabel8);
jPanel3.add(jTextField8);
this.getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);
jPanel1.add(jSplitPane1, java.awt.BorderLayout.CENTER);
jSplitPane1.add(jPanel4, JSplitPane.TOP);
jPanel4.add(jLabel9);
jPanel4.add(jTxsph);
jPanel4.add(jLabel10);
jPanel4.add(jTldrq);
jPanel4.add(jLabel11);
jPanel4.add(jComboBox2);
jPanel4.add(jLabel12);
jPanel4.add(jTjbr);
jSplitPane1.add(jPanel5, JSplitPane.BOTTOM);
jPanel5.add(jBreg);
jPanel5.add(jBadd);
jPanel5.add(jBdel);
jPanel5.add(jBsave);
jPanel5.add(jButton3);
setSize(850, 550);
setVisible(true);
}
public void jBadd_actionPerformed(ActionEvent e) {
/*-----添加药品详细记录-------*/
java.util.Vector vdata = new java.util.Vector();
String lsh = new com.lzw.constrol.GenalLsh().getLsh();
vdata.addElement(lsh);
tableModel.addRow(vdata);
jTable1.setModel(tableModel);
// 此处简洁处理为一次读入完成之后,在进行登记添加的时候不进行读取以提高效率
if (jcbh.getItemCount() <= 0) {
String queryStr = "";
queryStr = "select m.ypbh from obj_medicine m";
List list = AdapterDao.QueryObject(queryStr);
Iterator iterator = list.iterator();
jcbh.removeAllItems();
while (iterator.hasNext()) {
jcbh.addItem(iterator.next());
}
jcbh.addItemListener(new JF_view_sell_jcbh_itemAdapter(this));
}
TableColumnModel tcm = jTable1.getColumnModel();
tcm.getColumn(0).setPreferredWidth(140);
tcm.getColumn(1).setCellEditor(new DefaultCellEditor(jcbh));
jTable1.setRowHeight(20);
jTable1.requestFocus();
jBdel.setEnabled(true);
jBsave.setEnabled(true);
}
public void tableChanged(javax.swing.event.TableModelEvent e) {
int row = e.getFirstRow();
int col = e.getColumn();
if (col == 8) { // 为销售数量
Object obj = jTable1.getValueAt(row, col);
int xssl, kcsl;
double xsdj, xsje;
xsdj = Double.parseDouble(String
.valueOf(jTable1.getValueAt(row, 7)).trim());
xssl = Integer.parseInt(String.valueOf(obj).trim());
kcsl = Integer
.parseInt(String.valueOf(jTable1.getValueAt(row, 10)));
if (xssl > kcsl) {
JOptionPane.showMessageDialog(null, "销售数量【" + xssl
+ "】不能大于库存数量【" + kcsl + "】,请修改!!!", "系统提示",
JOptionPane.WARNING_MESSAGE);
return;
}
xsje = xsdj * xssl;
System.out.println("xssl" + xssl + ";xsdj" + xsdj + ";xsje" + xsje);
jTable1.setValueAt(String.valueOf(xsje), row, 9);
jTextField1.setText(String.valueOf(jTable1.getRowCount())); // 销售品种数
int xszs = 0;
double hjje = 0.00;
for (int i = 0; i < jTable1.getRowCount(); i++) {
xszs = xszs
+ Integer.parseInt(String.valueOf(
jTable1.getValueAt(i, 8)).trim());
hjje = hjje
+ Double.parseDouble(String.valueOf(
jTable1.getValueAt(i, 9)).trim());
}
jTextField2.setText(String.valueOf(xszs)); // 销售总数
jTextField3.setText(String.valueOf(hjje)); // 合计金额
}
}
public void jcbh_itemStateChanged(ItemEvent itemEvent) {
String bh;
Object obj = jcbh.getSelectedItem();
if (obj == null)
return;
int row;
row = jTable1.getSelectedRow();
if (row < 0)
return;
bh = obj.toString();
String queryStr;
System.out.println("queryStr = from obj_medicine m where m.ypbh = '"
+ bh);
queryStr = "FROM Obj_Stock s JOIN s.objmedicine where s.ypbh = '" + bh
+ "'";
List list = AdapterDao.QueryObject(queryStr);
if (list.size() <= 0) {
JOptionPane.showMessageDialog(this, "该商品在库存中没有记录", "未采购商品",
JOptionPane.ERROR_MESSAGE);
return;
}
Object objlist[] = null;
objlist = (Object[]) list.get(0);
obj_medicine objm = (obj_medicine) objlist[1];
jTable1.setValueAt(objm.getYpmc(), row, 2);
jTable1.setValueAt(objm.getPh(), row, 3);
jTable1.setValueAt(objm.getGg(), row, 4);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -