首页>代码>Java+Swing+SQL+Server2005开发酒店管理系统源代码下载>/04/DrinkeryManage/src/com/mwq/frame/check_out/DayDialog.java
package com.mwq.frame.check_out;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;

import com.mwq.dao.Dao;
import com.mwq.mwing.FixedColumnTablePanel;
import com.mwq.mwing.MTable;
import com.mwq.tool.Today;

public class DayDialog extends JDialog {

	// private JTable table;
	//
	// private DefaultTableModel tableModel;

	private Vector<String> tableColumnV;

	private Vector<Vector<Object>> tableValueV;

	private JComboBox dayComboBox;

	private JComboBox monthComboBox;

	private JComboBox yearComboBox;

	private int daysOfMonth[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,
			30, 31 };

	private Dao dao=Dao.getInstance();

	/**
	 * Launch the application
	 * 
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			DayDialog dialog = new DayDialog();
			dialog.addWindowListener(new WindowAdapter() {
				public void windowClosing(WindowEvent e) {
					System.exit(0);
				}
			});
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the dialog
	 */
	public DayDialog() {
		super();
		setModal(true);
		setTitle("日结账");
		setBounds(60, 60, 860, 620);

		final JPanel panel = new JPanel();
		getContentPane().add(panel, BorderLayout.NORTH);

		int year = Today.getYEAR();
		int month = Today.getMONTH();
		int day = Today.getDAY();

		yearComboBox = new JComboBox();
		yearComboBox.setMaximumRowCount(10);		
		String minDatetime = dao.sOrderFormOfMinDatetime();
		if (minDatetime == null) {
			yearComboBox.addItem(year);
		} else {
			int minYear = Integer.valueOf(minDatetime.substring(0, 4));
			for (int y = minYear; y <= year; y++) {
				yearComboBox.addItem(y);
			}
		}
		yearComboBox.setSelectedItem(year);
		judgeLeapYear(year);
		yearComboBox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int year = (Integer) yearComboBox.getSelectedItem();// 获得选中的年度
				judgeLeapYear(year);// 判断是否为闰年,以确定2月份的天数
				int month = (Integer) monthComboBox.getSelectedItem();// 获得选中的月份
				if (month == 2) {// 如果选中的为2月
					int itemCount = dayComboBox.getItemCount();// 获得日下拉菜单当前的天数
					if (itemCount != daysOfMonth[2]) {// 如果日下拉菜单当前的天数不等于2月份的天数
						if (itemCount == 28)// 如果日下拉菜单当前的天数为28天
							dayComboBox.addItem(29);// 则添加为29天
						else
							// 否则日下拉菜单当前的天数则为29天
							dayComboBox.removeItem(29);// 则减少为28天
					}
				}
			}
		});
		panel.add(yearComboBox);

		final JLabel yearLabel = new JLabel();
		yearLabel.setText("年");
		panel.add(yearLabel);

		monthComboBox = new JComboBox();
		monthComboBox.setMaximumRowCount(12);
		for (int m = 1; m < 13; m++) {
			monthComboBox.addItem(m);
		}
		monthComboBox.setSelectedItem(month);
		monthComboBox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int month = (Integer) monthComboBox.getSelectedItem();// 获得选中的月份
				int itemCount = dayComboBox.getItemCount();// 获得日下拉菜单当前的天数
				while (itemCount != daysOfMonth[month]) {// 如果日下拉菜单当前的天数不等于选中月份的天数
					if (itemCount > daysOfMonth[month]) {// 如果大于选中月份的天数
						dayComboBox.removeItem(itemCount);// 则移除最后一个选择项
						itemCount--;// 并将日下拉菜单当前的天数减1
					} else {// 否则小于选中月份的天数
						itemCount++;// 将日下拉菜单当前的天数加1
						dayComboBox.addItem(itemCount);// 并添加为选择项
					}
				}
			}
		});
		panel.add(monthComboBox);

		final JLabel monthLabel = new JLabel();
		monthLabel.setText("月");
		panel.add(monthLabel);

		dayComboBox = new JComboBox();
		dayComboBox.setMaximumRowCount(10);
		int days = daysOfMonth[month];
		for (int d = 1; d <= days; d++) {
			dayComboBox.addItem(d);
		}
		dayComboBox.setSelectedItem(day);
		panel.add(dayComboBox);

		final JLabel dayLabel = new JLabel();
		dayLabel.setText("日    ");
		panel.add(dayLabel);

		final JButton submitButton = new JButton();
		submitButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				tableValueV.removeAllElements();
				int year = (Integer) yearComboBox.getSelectedItem();
				int month = (Integer) monthComboBox.getSelectedItem();
				int day = (Integer) dayComboBox.getSelectedItem();
				int columnCount = tableColumnV.size();
				Vector orderFormV = dao.sOrderFormOfDay(year + "-" + month
						+ "-" + day);
				for (int row = 0; row < orderFormV.size(); row++) {
					Vector rowV = new Vector();// 表格行对象
					Vector orderForm = (Vector) orderFormV.get(row);// 消费单对象
					String orderFormNum = orderForm.get(1).toString();
					rowV.add(orderFormNum);// 编号
					rowV.add(orderForm.get(2));// 台号
					rowV.add(orderForm.get(3).toString().substring(11, 19));// 开台时间
					rowV.add(orderForm.get(4));// 消费金额
					for (int column = 4; column < columnCount; column++) {
						rowV.add("――");// 商品消费数量,默认未消费
					}
					Vector orderItemV = dao
							.sOrderItemAndMenuByOrderFormNum(orderFormNum);
					for (int i = 0; i < orderItemV.size(); i++) {
						Vector orderItem = (Vector) orderItemV.get(i);// 消费项目对象
						String menuName = orderItem.get(3).toString();
						for (int column = 4; column < columnCount; column++) {
							if (tableColumnV.get(column).equals(menuName)) {
								int amount = (Integer) orderItem.get(4);
								if (rowV.get(column).toString().equals("――"))
									rowV.set(column, amount);
								else
									rowV.set(column, (Integer) rowV.get(column)
											+ amount);
								break;
							}
						}
					}
					tableValueV.add(rowV);
				}
				Vector totalV = new Vector();
				totalV.add("总计");
				totalV.add("――");
				totalV.add("――");
				int rowCount = tableValueV.size();
				for (int column = 3; column < columnCount; column++) {
					int total = 0;
					for (int row = 0; row < rowCount; row++) {
						Object value = tableValueV.get(row).get(column);
						if (!value.equals("――"))
							total += (Integer) value;
					}
					totalV.add(total);
				}
				tableValueV.add(totalV);
				Container contentPane = getContentPane();
				contentPane.remove(1);
				contentPane.add(new FixedColumnTablePanel(tableColumnV,
						tableValueV, 4), BorderLayout.CENTER);
				SwingUtilities.updateComponentTreeUI(contentPane);
			}
		});
		submitButton.setText("确定");
		panel.add(submitButton);

		tableColumnV = new Vector<String>();
		tableColumnV.add("编号");
		tableColumnV.add("台号");
		tableColumnV.add("开台时间");
		tableColumnV.add("消费金额");
		Vector<Vector<Object>> vector = dao.sMenu();
		for (int i = 0; i < vector.size(); i++) {
			tableColumnV.add(vector.get(i).get(2).toString());
		}

		tableValueV = new Vector();

		getContentPane().add(
				new FixedColumnTablePanel(tableColumnV, tableValueV, 4),
				BorderLayout.CENTER);
		//
	}

	private void judgeLeapYear(int year) {
		if (year % 100 == 0) {
			if (year % 400 == 0)
				daysOfMonth[2] = 29;
			else
				daysOfMonth[2] = 28;
		} else {
			if (year % 4 == 0)
				daysOfMonth[2] = 29;
			else
				daysOfMonth[2] = 28;
		}
	}

}
最近下载更多
Sheep27  LV1 2024年7月5日
这是一个天才  LV1 2024年5月30日
wanglinddad  LV55 2023年12月18日
sunshine9920  LV12 2023年10月22日
E-dream  LV1 2023年6月15日
微信网友_6511688260882432  LV3 2023年6月13日
WOWsuperman  LV1 2023年6月6日
1135177454  LV1 2023年5月21日
UltimateI  LV1 2023年5月19日
你们的代码都是我的了  LV16 2022年12月9日
最近浏览更多
槐序的故事是这样  LV1 5月24日
Yj123456k  LV2 5月12日
srl2881552  LV10 1月7日
拜托你仔细听  LV3 2024年12月23日
interface  LV22 2024年8月10日
wwkddjjj  LV8 2024年8月9日
DelinDelin 2024年8月3日
暂无贡献等级
Sheep27  LV1 2024年7月5日
odasdas  LV1 2024年6月23日
项立利  LV1 2024年5月30日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友