📄 engage.java
字号:
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 + -