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

📄 engage.java

📁 主要功能包括散客开单、团体开单、宾客结帐、客房预订、营业查询、客户管理、网络设置、系统设置等等。 详细说明见阳光酒店管理系统需求规格说明书。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.sunshine.engage;

import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import com.sunshine.sunsdk.sql.*;
import com.sunshine.sunsdk.swing.*;
import com.sunshine.mainframe.*;




public class Engage 
extends JDialog 
implements ActionListener,MouseListener {
	
	public static DefaultTableModel dtm = new DefaultTableModel();
	public static long pk;
	public static String r_type,r_no;
	
	private JTable tb = new JTable(dtm);
	private JScrollPane sp = new JScrollPane(tb);
	private JButton bt1,bt2,bt3,bt4,bt5,bt6,bt7;
	private JTextField tf1,tf2;
	private JPopupMenu pm;
	private JMenuItem mi1,mi2;
	
	EngageInfo ei  = new EngageInfo(this);
	ModiEngage em  = new ModiEngage(this);
	Eindividual ev = new Eindividual(this);
	
	public Engage(JFrame frame) {
		super (frame, "客户预订", true);
		
		JPanel panelMain,panelCent,panelNort;
		panelMain = new JPanel(new BorderLayout());
		panelNort = buildNorth();
		panelCent = buildDTM();
		
		panelMain.add("North",panelNort);
		panelMain.add(panelCent);
		addListener();
		this.setContentPane(panelMain);
		this.setPreferredSize (new Dimension (880,508));
		this.setMinimumSize (new Dimension (880,508));
		this.setResizable(false);		//不允许改变窗口大小
		pack();
		sunswing.setWindowCenter(this);	//窗口屏幕居中
		
	}
	
	private void addListener() {
		bt1.addActionListener(this);
		bt2.addActionListener(this);
		bt3.addActionListener(this);
		bt4.addActionListener(this);
		bt6.addActionListener(this);
		bt7.addActionListener(this);
		mi1.addActionListener(this);
		mi2.addActionListener(this);
		bt1.addMouseListener(this);
		bt2.addMouseListener(this);
		bt3.addMouseListener(this);
		bt4.addMouseListener(this);
		bt5.addMouseListener(this);
		bt6.addMouseListener(this);
		bt7.addMouseListener(this);
	}
	
	//////////////////////
	private JPanel buildNorth() {
		JPanel panelNort1 = new JPanel();
		JLabel lb = new JLabel("     房间号/姓名/电话:");
		tf1 = new JTextField (10);
		bt1 = new TJButton ("pic/new.gif", "增加", "增加预定信息");
		bt2 = new TJButton ("pic/modi0.gif", "修改", "修改预定信息");
		bt3 = new TJButton ("pic/del.gif", "删除", "删除预定信息");
		bt4 = new TJButton ("pic/find.gif", "查询", "查询预定信息");
		bt5 = new TJButton ("pic/recall.gif", "过滤", "过滤预定信息");
		bt6 = new TJButton ("pic/b1.gif", "刷新", "刷新预定信息");
		bt7 = new TJButton ("pic/modi3.gif", "开设房间", "为预定房间开单");
		
		pm = new JPopupMenu();
		mi1 = new JMenuItem("今天预计抵达的宾客");
		mi2 = new JMenuItem("明天预计抵达的宾客");
		pm.addSeparator();
		pm.add(mi1);
		pm.add(mi2);
		pm.addSeparator();
		
		panelNort1.add(bt1);
		panelNort1.add(bt2);
		panelNort1.add(bt3);
		panelNort1.add(lb);
		panelNort1.add(tf1);
		panelNort1.add(bt4);
		panelNort1.add(bt5);
		panelNort1.add(bt6);
		panelNort1.add(bt7);
		
		return panelNort1;
	}
	
	
	private JPanel buildDTM () {
		JPanel panelCent1 = new JPanel(new BorderLayout());
		initDTM();
		tf2 = new JTextField("宾客预定信息");
		tf2.setHorizontalAlignment (JTextField.CENTER);
		tf2.setBackground(new Color(199,183,143));
		tf2.setBorder(new LineBorder(new Color(87,87,47)));
		tf2.setEditable(false);
		
		panelCent1.add("North",tf2);
		panelCent1.add(sp);
		panelCent1.setBorder(BorderFactory.createTitledBorder(""));
		
		return panelCent1;
	}
	
	private void initDTM() {
		String sqlCode;
		sqlCode = "select a.pk,a.c_name 宾客姓名,a.c_tel 联系电话,b.r_type 预定房间类型,a.r_no 预定房间编号,a.pa_time 预抵时间,a.keep_time 保留时间,a.eng_time 预定时间,a.remark 备注,b.id,"+
				  "b.price from engage as a,roomtype as b where a.r_type_id = b.id and a.delmark = 0 and engagemark = 2 and b.delmark = 0";
		sunsql.initDTM(dtm,sqlCode);
		tb.removeColumn(tb.getColumn("pk"));
		tb.removeColumn(tb.getColumn("id"));
		tb.removeColumn(tb.getColumn("price"));
	}
	
	private boolean initMrt() {
		int row = tb.getSelectedRow();
		if(row == -1) {
			JOptionPane.showMessageDialog(null, "请在宾客预定信息表中指定记录!","提示", JOptionPane.INFORMATION_MESSAGE);
			return false;
		}
		pk = Long.parseLong(dtm.getValueAt(row,0)+"");
		r_type = dtm.getValueAt(row,3)+"";
		r_no = dtm.getValueAt(row,4)+"";
		ModiEngage.tf1.setText(dtm.getValueAt(row,1) + "");		
		ModiEngage.tf2.setText(dtm.getValueAt(row,2) + "");	
		ModiEngage.tf3.setText(dtm.getValueAt(row,5) + "");		
		ModiEngage.tf4.setText(dtm.getValueAt(row,6) + "");
		ModiEngage.ta.setText(dtm.getValueAt(row,8) + "");
		ModiEngage.cb1.setSelectedItem(dtm.getValueAt(row,3)+"");		
		ModiEngage.cb2.addItem(dtm.getValueAt(row,4));	
		ModiEngage.cb2.setSelectedItem(dtm.getValueAt(row,4)+"");
		try {
			String sql = "select cluemark from engage where pk = '"+pk+"'";
			ResultSet rs = sunsql.executeQuery(sql);
			if(rs.next()) {
				int cluemark = Integer.parseInt(rs.getString(1));
				if(cluemark==0) 
					ModiEngage.chk.setSelected(false);
				else
					ModiEngage.chk.setSelected(true);
			}
	    }
	    catch (Exception ex) {
	    }
		
		return true;
	}
	
	private boolean delInfo (int dr[]) {
		int rowCount = dr.length*2;
		int r =0;							//DTM行指针
					
		if(rowCount > 0) {					//判断选择记录数
			int isDel = JOptionPane.showConfirmDialog (null, "确定要删除预订记录吗?", "提示", JOptionPane.YES_NO_OPTION);
			if(isDel == JOptionPane.YES_OPTION) {
				String sqlCode[] = new String[rowCount];
				//生成SQL语句
				for (int i = 0; i < rowCount; i++) {
					String pk = dtm.getValueAt(dr[r], 0)+"";
					sqlCode[i] = "update engage set delmark = 1, engagemark = 0 where pk= "+pk;
					i++;
					String r_no = dtm.getValueAt(dr[r],4)+"";
					String r_type_id = dtm.getValueAt(dr[r],9)+"";
					sqlCode[i] = "update roominfo set state = '可供' where id = '"+r_no+"' and delmark = 0";
					RightTopPanel.setViewListButtonImage(r_type_id,r_no,"可供");
					r++;		//DTM行指针加1
			    }//Endfor
			    //以事务模式执行SQL语句组, 确保操作正确, 返回值为成功执行SQL语句的条数
			    isDel = sunsql.runTransaction(sqlCode);		
			    if(isDel != rowCount) {			//如果成功执行的条数 = 数组长度,则表示更新成功
			    	String mm = "在执行第 [ " + (isDel + 1) + " ] 条记录的删除操作时出错,数据有可能被其它终端修改\n或者是网络不通畅 ...";
			    	JOptionPane.showMessageDialog(null, mm, "错误",JOptionPane.ERROR_MESSAGE);
			    	//更新失败,返回false
			    	for(int i = 0; i<dr.length; i++) {
			    		RightTopPanel.setViewListButtonImage(dtm.getValueAt(dr[i],4)+"",dtm.getValueAt(dr[i],9)+"","预定");
			    	}
			    	
			    	return false;
			    }//Endif
			    return true;		//更新成功,返回true
			}//Endif
		}
		else {						//如果没有选中记录,则提示一下
			String msg1 = "请先选定记录再按删除键!";
			JOptionPane.showMessageDialog(null, msg1, "提示",JOptionPane.INFORMATION_MESSAGE);
		}
		return false;
	}
	
	private boolean initIDV(int row) {
		try {
			//从房间信息表里获得当前房间的状态和房间类型编号
			ResultSet rs = null;			
			
							
				//传房间号到开单窗口
				ev.lbA.setText(dtm.getValueAt(row, 4) + "");
				//传房间类型到开单窗口
				ev.lbB.setText(dtm.getValueAt(row, 3) + "");
				//传房间单价到开单窗口
				ev.lbC.setText(dtm.getValueAt(row, 10) + "");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -