⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jf_view_sell.java

📁 该代码是一个关于医药进销存管理系统的源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -