?? 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 + -