冬瓜茶饮料

nc 画界面,触发效果(第一种)

 

package nc.ui.hzctr.sellctr.action;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import nc.ui.pub.beans.MessageDialog;
import nc.ui.pub.beans.UIButton;
import nc.ui.pub.beans.UIDialog;
import nc.ui.pub.beans.UILabel;
import nc.ui.pub.beans.UIRefPane;
import nc.ui.pub.beans.UITextArea;

/**
 * 批量输入日期窗口
 * 
 * @author Yaolz
 */
public class BatchInputDateDialog extends UIDialog implements ActionListener {

	// 交房通知书生效等待期(天)标签
	private UILabel day;
	// 天数输入框
	private UITextArea dayField;
	// 竣备实际获取时间标签
	private UILabel time;
	// 时间参照
	private UIRefPane sjref = null;
	// 确定
	private UIButton ok_btn;
	// 取消
	private UIButton cancel_btn;
	private boolean isCancle;
	private int bat = 0;

	@Override
	public int showModal() {
		super.show();
		int bat = this.bat;
		return bat;
	}
	
	public BatchInputDateDialog() {
		setLayout(new BorderLayout());
		// 标题
		setTitle("批量输入日期框");
		this.setCancle(true);
		initUI();
	}

	public void setCancle(boolean isCancle) {
		this.isCancle = isCancle;
	}

	private void initUI() {
		// 窗体长宽
		setSize(350, 200);
		getContentPane().setLayout(null);
		// 交房标签
		getContentPane().add(getJfDay());
		// 交房文本框
		getContentPane().add(getJfText());
		// 竣备标签
		getContentPane().add(getJfTime());
		// 竣备参照
		getContentPane().add(getRqsj());
		// 确定按钮
		getContentPane().add(getbuttonOk());
		// 取消按钮
		getContentPane().add(getbuttonCancel());
		Toolkit kit = Toolkit.getDefaultToolkit();
		Dimension screenSize = kit.getScreenSize();
		int screenWidth = screenSize.width / 2;
		int screenHeight = screenSize.height / 2;
		int height = getHeight();
		int width = getWidth();
		setLocation(screenWidth - width / 2, screenHeight - height / 2);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource().getClass().getName()
				.equals("nc.ui.pub.beans.UIButton")) {
			nc.ui.pub.beans.UIButton btn = (nc.ui.pub.beans.UIButton) e
					.getSource();
			if (this.ok_btn.getName().equals(btn.getName())) {
				onOk();
			} else if (this.cancel_btn.getName().equals(btn.getName())) {
				onCancel();
			}
		}
	}

	private void onOk() {
		if ((getJfText().getText() == null || getJfText().getText().length() <= 0)
				&& (getRqsj().getText() == null || getRqsj().getText().length() <= 0)) {
			MessageDialog.showErrorDlg(null, "提示", "必须填写天数与时间!");
			return;
		}
		this.bat = 1;
		this.setCancle(false);
		closeOK();
	}

	private UIButton getbuttonOk() {
		this.ok_btn = new UIButton("确认");
		this.ok_btn.setName("btn_ok");
		this.ok_btn.setLocation(90, 140);
		this.ok_btn.addActionListener(this);
		return this.ok_btn;
	}

	private UIButton getbuttonCancel() {
		this.cancel_btn = new UIButton("取消");
		this.cancel_btn.setName("btn_cance");
		this.cancel_btn.setLocation(190, getbuttonOk().getY());
		this.cancel_btn.addActionListener(this);
		return this.cancel_btn;
	}

	private UILabel getJfDay() {
		if (this.day == null) {
			this.day = new UILabel("交房通知书生效等待期(天):");
			this.day.setFont(getFont());
			this.day.setBackground(getBackground());
			this.day.setForeground(getForeground());
			this.day.setSize(200, 35);
			this.day.setLocation(30, 30);
		}
		return this.day;
	}

	private UITextArea getJfText() {
		if (this.dayField == null) {
			this.dayField = new UITextArea();
			this.dayField.setSize(100, 25);
			this.dayField.setLocation(205, 35);
		}
		return this.dayField;
	}

	private UILabel getJfTime() {
		if (this.time == null) {
			this.time = new UILabel("竣备实际获取时间:");
			this.time.setFont(getFont());
			this.time.setBackground(getBackground());
			this.time.setForeground(getForeground());
			this.time.setSize(200, 35);
			this.time.setLocation(30, 75);
		}
		return this.time;
	}

	private UIRefPane getRqsj() {
		if (this.sjref == null) {
			this.sjref = new UIRefPane();
			this.sjref.setSize(165, 25);
			this.sjref.setRefNodeName("日期");
			this.sjref.setLocation(140, 80);
		}
		return this.sjref;
	}
	
	public HashMap<String, String> getData() {
		HashMap rtnMap = new HashMap<String, String>();
		rtnMap.put("day", getJfText().getFieldText());
		rtnMap.put("time", getRqsj().getRefShowName());
		return rtnMap;
	}

	private void onCancel() {
		this.setCancle(true);
		this.bat = 0;
		closeCancel();
	}

}

  

package nc.ui.hzctr.sellctr.action;

import java.awt.event.ActionEvent;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;

import nc.bs.framework.common.NCLocator;
import nc.itf.uif.pub.IUifService;
import nc.ui.pub.beans.MessageDialog;
import nc.ui.pubapp.uif2app.view.ShowUpableBillForm;
import nc.ui.uif2.NCAction;
import nc.ui.uif2.model.AbstractAppModel;
import nc.uif2.annoations.MethodType;
import nc.uif2.annoations.ModelMethod;
import nc.uif2.annoations.ModelType;
import nc.vo.hzctr.sellctr.AggSellctrVO;
import nc.vo.pub.lang.UFDate;

/**
 * 批量输入日期按钮
 * 
 * @author Yaolz
 */
public class BatchInputDateAction extends NCAction {

	private AbstractAppModel model;
	private ShowUpableBillForm editor;

	public BatchInputDateAction() {
		this.setBtnName("批量输入日期");
		this.setCode("batInputAction");
	}

	@Override
	public void doAction(ActionEvent e) throws Exception {
		// 获取界面选择行数
		Integer[] num = ((nc.ui.uif2.model.BillManageModel) model)
				.getSelectedOperaRows();
		// 获取选择的每行数据
		Object[] headRow = ((nc.ui.uif2.model.BillManageModel) model)
				.getSelectedOperaDatas();
		if (num == null || num.length < 1) {
			MessageDialog.showHintDlg(null, "提示", "请选择要批量输入日期的数据");
			return;
		}
		int a = 0;
		for (Object object : headRow) {
			AggSellctrVO head = (AggSellctrVO) object;
			if (head.getParentVO().getDbillstatus() != -1) {
				a++;
			}
		}
		if (a > 0) {
			MessageDialog
					.showHintDlg(null, "更新失败", "当前选择的数据中存在非自由态单据,请重新选择!!!");
			return;
		}
		BatchInputDateDialog bat = new BatchInputDateDialog();
		if (bat.showModal() == 0) {
			return;
		}
		HashMap<String, String> data = bat.getData();
		// 获取输入天数
		String day = data.get("day");
		// 获取输入日期
		String time = data.get("time");
		Date date = StrToDate(time);
		int idate = Integer.parseInt(day);
		UFDate ddate = new UFDate(date);
		int b = 0;
		for (Object object : headRow) {
			// 遍历取出表头数据
			AggSellctrVO head = (AggSellctrVO) object;
			// 不是自由态的跳过单次循环
			if (head.getParentVO().getDbillstatus() != -1) {
				continue;
			}
			// 交房通知日期 delivernoticedate
			UFDate delivernoticedate = (head.getParentVO()
					.getDelivernoticedate()) != null ? head.getParentVO()
					.getDelivernoticedate() : new UFDate("1900-01-01");
			// 交房通知书生效天 effectwait_date
			int effectwait_date = (head.getParentVO().getEffectwait_date()) != null ? head
					.getParentVO().getEffectwait_date() : 0;
			// 输入交房通知日期与交房通知书生效天,得到新日期
			Date newDate = addDate(delivernoticedate.toDate(), effectwait_date);
			// 转换成UFDate类型
			UFDate newDates = new UFDate(newDate);
			// 设置实际峻备完成时间
			head.getParentVO().setCompleteddate(ddate);
			// 实际峻备完成时间
			UFDate completeddate = head.getParentVO().getCompleteddate();
			// 新日期与实际峻备完成时间做比较,如果新日期大于实际峻备完成时间。则 设置实际峻备完成时间 为 新日期
			if (newDates.compareTo(completeddate) > 0 && newDates.getDay() > 0){
				head.getParentVO().setConfirmdate(newDates.toString().substring(0,7));
			}else{
				head.getParentVO().setConfirmdate(completeddate.toString().substring(0,7));
			}
			// 设置交房通知书生效等待期(天)
			head.getParentVO().setEffectwait_date(idate);
			// 设置Dr属性为0
			head.getParentVO().setAttributeValue("dr", new Integer(0));
			getUpdate().update(head.getParentVO());
			b++;
		}
		MessageDialog.showHintDlg(null, "更新成功", "已成功更新" + b + "条记录,请刷新当前界面!!!");
	}

	/**
	 * 输入日期与天数,得到新日期
	 */
	public static Date addDate(Date date, long day) throws ParseException {
		long time = date.getTime(); // 得到指定日期的毫秒数
		day = day * 24 * 60 * 60 * 1000; // 要加上的天数转换成毫秒数
		time += day; // 相加得到新的毫秒数
		return new Date(time); // 将毫秒数转换成日期
	}

	private IUifService getUpdate() {
		IUifService service = (IUifService) NCLocator.getInstance().lookup(
				IUifService.class.getName());
		return service;
	}

	/**
	 * 字符串转换成日期
	 * 
	 * @param str
	 * @return date
	 */
	public static Date StrToDate(String str) {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
		try {
			date = (Date) format.parseObject(str);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return date;
	}

	public ShowUpableBillForm getEditor() {
		return editor;
	}

	public void setEditor(ShowUpableBillForm editor) {
		this.editor = editor;
	}

	@ModelMethod(modelType = ModelType.AbstractAppModel, methodType = MethodType.GETTER)
	public AbstractAppModel getModel() {
		return this.model;
	}

	@ModelMethod(modelType = ModelType.AbstractAppModel, methodType = MethodType.SETTER)
	public void setModel(AbstractAppModel model) {
		this.model = model;
		model.addAppEventListener(this);
	}

}

  

posted on 2017-07-10 15:59  冬瓜茶饮料  阅读(458)  评论(0编辑  收藏  举报

导航