createsche_day.java

来自「一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。」· Java 代码 · 共 1,166 行 · 第 1/3 页

JAVA
1,166
字号
package jp.co.sjts.gsession.schedule;
/*
 * Copyright (C) 1999-2002 Japan Total System Co,LTD
 */
import java.util.Collection;
import java.util.Map;
import java.util.Iterator;
import java.util.Hashtable;
import java.util.Arrays;
import java.util.Vector;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import jp.co.sjts.gsession.tools.*;

/**
 * 僗働僕儏乕儖擔娫夋柺嶌惉<BR><BR>
 *
 * @author Ei       Kishida &lt;ei@sjts.co.jp&gt;
 * @author Hideyuki Kitade  &lt;kitade@sjts.co.jp&gt;
 */
public class Createsche_day extends CreatePage{

	private Hashtable hsPara;
	private Hashtable hsPara1;
	private String mapURL = null;
	private String mainURL = null;
	private String helpURL = null;
	private String dataDIR = null;
	private String userDIR = null;
	private String groupDIR = null;
	private String hiduke ;
	private int mod ;
	private String gid ;
	private String uid ;
	private String euid ;
	private String sid ;
	private IUserManager UM = null;
	private SCScheFile sfile ;
	private GSDate cal ;			//僇儗儞僟乕

	private final String title = "僗働僕儏乕儖";
	private static final String bgcolor = "#ffffff";
	private static final String text = "#000000";
	private static final String link = "#0000ff";
	private static final String alink = "#000000";
	private static final String vlink = "#0000ff";

	private static final int ID = 0;
	private static final int NAME = 1;
	private static final int KANA = 2;

	/**
	 *  僷儔儊乕僞僙僢僩
	 *
	 *  @param  hsPara   僷儔儊乕僞奿擺僴僢僔儏僥乕僽儖
	 *  @param  hsPara1  僷儔儊乕僞奿擺僴僢僔儏僥乕僽儖
	 *  @param  UM       儐乕僓乕儅僱乕僕儍乕
	 *  @param  mod      儌乕僪
	 *  @param  hiduke   擔晅
	 *  @param  gid      僌儖乕僾ID
	 *  @param  euid     儐乕僓乕ID
	 */
	public Createsche_day(Hashtable hsPara,Hashtable hsPara1,IUserManager UM,int mod,String hiduke,String gid,String euid){

		this.hsPara = hsPara;
		this.mapURL = (String)hsPara.get(SCCmd.SC_MAP);
		this.mainURL = (String)hsPara.get(SCCmd.SC_MAIN);  //儊僀儞URL庢摼
		this.dataDIR = (String)hsPara.get(SCCmd.SC_DIR);
		this.userDIR = (String)hsPara.get(SCCmd.SC_USER);
		this.groupDIR = (String)hsPara.get(SCCmd.SC_GROUP);
		this.helpURL = (String)hsPara.get("help");        //僿儖僾URL庢摼
		this.hsPara1 = hsPara1;
		this.hiduke = hiduke;
		this.euid = euid;   //
		this.gid = gid;		//廡娫丒擔娫偺偲偒偺僌儖乕僾
		this.mod = mod;		//
		this.UM = UM;		
	}

	/**
	 *  僗働僕儏乕儖擔娫夋柺傪嶌惉偟傑偡丅
	 *
	 *  @param req 儕僋僄僗僩
	 *  @param res 儗僗億儞僗
	 */
	protected boolean writePage(HttpServletRequest req,HttpServletResponse res) throws GSException{

		HttpSession session = req.getSession(false);
		this.uid = ((Integer)session.getAttribute(GSBase.SESSION_PARA_UID)).toString();//僗働僕儏乕儖嶌惉儐乕僓
/* 愝掕僨乕僞撉傒崬傒 */
		SCConfUserFile sconf = new SCConfUserFile(userDIR,uid);
		String url = GSTool.removeParaFormURI(req.getRequestURI());

		addScript(
			 "function openWindow(i)\r\n"
			+"{\r\n"
			+"   var win=window.open(\"\",\"window\"+i,\"width=550,height=500,resizable=1\");\r\n"
			+"   win.location=\""+mainURL+"?"+SCCmd.PA_CMD+"="+SCCmd.CD_UINF+"&"+SCCmd.PA_UID+"="+uid+"\";\r\n"
			+"}"
		);

		addScript(
			 "function openWindow2(i)\r\n"
			+"{\r\n"
			+"   var win=window.open(\"\",\"window\"+i,\"width=550,height=500,resizable=1\");\r\n"
			+"   win.location=\""+mainURL+"?"+SCCmd.PA_CMD+"="+SCCmd.CD_UINF+"&"+SCCmd.PA_UID+"=\""+"+i;\r\n"
			+"}"
		);

		cal = new GSDate();
		cal.setYMD(hiduke);
		String yymm = cal.getstrYear()+cal.getstrMonth();

		setCharset("iso-2022-jp");
		setTitle(title);
		setBodyColor(bgcolor,text,link,vlink,alink);

		//僿儖僾儁乕僕
		setHelpUrl(helpURL + GSHelpPage.SC200000);

/* 僞僀僩儖 */
		addBodyString("");
		addBodyString("<!--僞僀僩儖-->");
		addBodyString("<TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("<TR>");
		addBodyString("<TD>");
		addBodyString("<FORM METHOD=\"post\" ACTION=\"" + url + "\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + SCCmd.PA_CMD + "\" VALUE=\"" + SCCmd.CD_DAY + "\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + SCCmd.PA_SUB + "\" VALUE=\"" + SCCmd.CD_DAY + "\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + SCCmd.PA_MOD + "\" VALUE=\"" + mod + "\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + SCCmd.PA_DATE + "\" VALUE=\"" + hiduke + "\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + SCCmd.PA_GID + "\" VALUE=\"" + gid + "\">");
		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + SCCmd.PA_TMP + "\" VALUE=\"" + 1 + "\">");

		addBodyString("<INPUT TYPE=\"hidden\" NAME=\"" + SCCmd.PA_SORTFLG + "\" VALUE=\""
		 			  + ( (hsPara1.get(SCCmd.PA_SORTFLG)!=null)?
						  ((String[])(hsPara1.get(SCCmd.PA_SORTFLG)))[0]:"false")
					  + "\">");

		addBodyString("  <TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"1\">");
		addBodyString("  <TR HEIGHT=\"40\" BGCOLOR=\"#000080\">");
		addBodyString("  <TD WIDTH=\"100%\"><FONT SIZE=\"+1\" COLOR=\"#ffffff\"><B>"+SCTools.chkStrDec(title)+"</B></FONT></TD>");
		addBodyString("  <TD WIDTH=\"5%\" NOWRAP>");
		addBodyString("  <A HREF=\""+url
					  +"?"+SCCmd.PA_CMD+"="+SCCmd.CD_SET
					  +"&"+SCCmd.PA_MOD+"="+mod
					  +"&"+SCCmd.PA_GID+"="+gid
					  +"&"+SCCmd.PA_SUB+"="+SCCmd.CD_DAY
					  +"&"+SCCmd.PA_DATE+"="+cal.getYMD()
					  +"\">");
		addBodyString("  <IMG SRC=\""
					  +mapURL+SCCmd.S_ST+"\" ALT=\"僗働僕儏乕儖婎杮愝掕\" WIDTH=\"93\" HEIGHT=\"28\" BORDER=\"0\"></A>");
		addBodyString("  </TR>");
		addBodyString("  </TABLE>");
		addBodyString("</TD>");
		addBodyString("</TR>");
/* 杮懱 */
		addBodyString("<!--杮懱-->");
		addBodyString("<TR>");
		addBodyString("<TD BGCOLOR=\"#ffffff\">");
		addBodyString("  <TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"2\">");
		addBodyString("  <TR>");
		addBodyString("  <TD width=\"10%\" nowrap>");
		addBodyString("  <A HREF=\""+url
					  +"?"+SCCmd.PA_CMD+"="+SCCmd.CD_WEEK
					  +"&"+SCCmd.PA_SUB+"="+SCCmd.CD_WEEK
					  +"&"+SCCmd.PA_MOD+"="+0
					  +"&"+SCCmd.PA_GID+"="+gid
					  +"&"+SCCmd.PA_USER+"="+uid
					  +"&"+SCCmd.PA_DATE+"="+hiduke
					  +"&"+SCCmd.PA_TMP+"="+1
					  +"\">");
		addBodyString("  <IMG SRC=\""+mapURL+SCCmd.S_WEEK+"\" ALT=\"廡娫\" WIDTH=\"30\" HEIGHT=\"18\" BORDER=\"0\"></A>");
		addBodyString("  </TD>");


		addBodyString("  <TD>");
		addBodyString("    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("    <TR>");

		addBodyString("    <TD ALIGN=\"left\">");
		addBodyString("    <font color=\"#e0e0e0\">仭</font>");
		addBodyString("    </TD>");
		addBodyString("    <TD ALIGN=\"left\">");
		addBodyString("    <font color=\"#000000\">嵼惾丂</font><BR>");
		addBodyString("    </TD>");

		addBodyString("    <TD ALIGN=\"left\">");
		addBodyString("    <font color=\"#ffdead\">仭</font>");
		addBodyString("    </TD>");
		addBodyString("    <TD ALIGN=\"left\">");
		addBodyString("    <font color=\"#000000\">寚嬑丂</font><BR>");
		addBodyString("    </TD>");

		addBodyString("    <TD ALIGN=\"left\">");
		addBodyString("    <font color=\"#00ced1\">仭</font>");
		addBodyString("    </TD>");
		addBodyString("    <TD ALIGN=\"left\">");
		addBodyString("    <font color=\"#000000\">奜弌丂</font><BR>");
		addBodyString("    </TD>");

		addBodyString("    </TR>");
		addBodyString("    </TABLE>");
		addBodyString("  </TD>");


		SCMsgFile mfile = new SCMsgFile(userDIR,uid);//儐乕僓乕僼傽僀儖
		if (mfile.size()== 0){
			addBodyString("  <TD ALIGN=\"left\" width=\"15%\" BGCOLOR=\"#ffffff\">");
			addBodyString("  <font>揱尵偼偁傝傑偣傫</font>");
			addBodyString("  </TD>");
			
		}else{
			addBodyString("  <TD ALIGN=\"left\" width=\"15%\" BGCOLOR=\"#ffffff\">");
			addBodyString("  <font>揱尵偑撏偄偰偄傑偡</font>");
			addBodyString("  </TD>");
		}

		addBodyString("  <TD ALIGN=\"right\">");
		addBodyString("  <INPUT TYPE=\"image\" NAME=\"zweek\" SRC=\""
					  +mapURL+SCCmd.S_LA1+"\" ALT=\"慜廡堏摦\" WIDTH=\"18\" HEIGHT=\"18\" BORDER=\"0\">");
		addBodyString("  <INPUT TYPE=\"image\" NAME=\"zday\" SRC=\""
					  +mapURL+SCCmd.S_LA2+"\" ALT=\"慜擔堏摦\" WIDTH=\"18\" HEIGHT=\"18\" BORDER=\"0\">");
		addBodyString("  <INPUT TYPE=\"image\" NAME=\"tday\" SRC=\""
					  +mapURL+SCCmd.S_TODAY+"\" ALT=\"崱擔\" WIDTH=\"30\" HEIGHT=\"18\" BORDER=\"0\">");
		addBodyString("  <INPUT TYPE=\"image\" NAME=\"yday\" SRC=\""
					  +mapURL+SCCmd.S_RA2+"\" ALT=\"梻擔堏摦\" WIDTH=\"18\" HEIGHT=\"18\" BORDER=\"0\">");
		addBodyString("  <INPUT TYPE=\"image\" NAME=\"yweek\" SRC=\""
					  +mapURL+SCCmd.S_RA1+"\" ALT=\"梻廡堏摦\" WIDTH=\"18\" HEIGHT=\"18\" BORDER=\"0\">");
		addBodyString("  </TD>");
		addBodyString("  </TR>");
		addBodyString("  </TABLE>");
		addBodyString("</TD>");
		addBodyString("</TR>");
/*  */
		addBodyString("<TR>");
		addBodyString("<TD>");
		addBodyString("  <TABLE WIDTH=\"100%\" BORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("  <TR BGCOLOR=\"#000080\">");
		int count=0;	//壗帪娫暘偁傞偐丠
		for(int ix=Integer.parseInt(sconf.GetFromTime());ix<Integer.parseInt(sconf.GetToTime());ix++)
		{
			count++;
		}
		int hcount = count*2+1;

		//擔晅昞帵
		addBodyString("  <TH HEIGHT=\"40\" COLSPAN=\""+hcount+"\"><FONT COLOR=\"#ffffff\">"
					  +hiduke.substring(0,4)+"擭"+hiduke.substring(4,6)+"寧"+hiduke.substring(6,8)+"擔</FONT></TH>");
		addBodyString("  </TR>");

/* 僇儗儞僟乕 */


		addBodyString("  <TR BGCOLOR=\"#cccccc\">");
		addBodyString("  <TH ROWSPAN=\"2\" width=\"10%\" BGCOLOR=\"#808080\" NOWRAP><FONT COLOR=\"#ffffff\">巵柤</FONT></TH>");

		count=0;	//壗帪娫暘偁傞偐丠
		for(int ix=Integer.parseInt(sconf.GetFromTime());ix<Integer.parseInt(sconf.GetToTime());ix++)
		{
			//帪娫昞帵
			addBodyString("  <TH COLSPAN=\"2\" NOWRAP>"+ix+"</TH>");
			count++;
		}
		addBodyString("  </TR>");
		addBodyString("  <TR BGCOLOR=\"#808080\">");
		for(int ix=0;ix<count*2;ix++)
		{
			//栚惙慄昞帵
			addBodyString("  <TD HEIGHT=\"5\" WIDTH=\"3%\"><IMG SRC=\""+mapURL+SCCmd.S_SPE30+"\"></TD>");
		}
		addBodyString("  </TR>");

/* 擔晅傪栠偡 */
		cal.setYMD(hiduke);
		String[][] buf;
		
/* 巊梡幰偺僗働僕儏乕儖 */

			sfile = new SCScheFile(userDIR,0,uid,yymm);
		
/* 僗働僕儏乕儖僨乕僞僙僢僩 */

		//2師尦偺攝楍偵僨乕僞僙僢僩
		buf = new String[sfile.size()][count*2];
		for(int idx=0;idx<sfile.size();idx++){
			for(int index=0;index<count*2;index++){
				buf[idx][index]="0";
			}
		}

		int datmax = -1;
		//
		String sth=sconf.GetFromTime();
		if(Integer.parseInt(sth)<10){
			sth="0"+sth;
		}

		String edh=sconf.GetToTime();
		if(Integer.parseInt(edh)<10){
			edh="0"+edh;
		}

		String sh = cal.getstrYear()+cal.getstrMonth()+cal.getstrDay()+sth+"00";//奐巒帪娫
		String eh = cal.getstrYear()+cal.getstrMonth()+cal.getstrDay()+edh+"00";//偙偭偪傕奐巒帪娫丠
		int ii=0;
		for(int ix=0;ix<sfile.size();ix++){
			SCScheData sdata = sfile.Getmod(ix);
			if(
			   (Long.parseLong(sdata.GetFrom())< Long.parseLong(eh))
			   &&
			   (Long.parseLong(sdata.GetTo()) > Long.parseLong(sh)) 
			   ){

				//壗僐儅巊偆偐嶼弌
				String sttime = sh;
				String edtime = eh;
				if(Long.parseLong(sdata.GetFrom())>Long.parseLong(sh)){
					sttime = sdata.GetFrom().substring(0,12);
				}

				if(Long.parseLong(sdata.GetTo())<Long.parseLong(eh)){
					edtime = sdata.GetTo().substring(0,12);
				}

				long hour = Long.parseLong(edtime.substring(8,10))-Long.parseLong(sttime.substring(8,10));
				long minu = Long.parseLong(edtime.substring(10,12))-Long.parseLong(sttime.substring(10,12));
				long retsu=hour*2;
				if(minu<0){
					retsu= retsu-1;
				}

				if(minu>0){
					retsu++;
				}

				//偳偙偐傜巒傑傞偐嶼弌
				int index=0;
				int stretsu=0;
				if(Long.parseLong(sdata.GetFrom())>Long.parseLong(sh))
				{
					hour = Long.parseLong(sdata.GetFrom().substring(8,10))-Long.parseLong(sh.substring(8,10));
					minu = Long.parseLong(sdata.GetFrom().substring(10,12))-Long.parseLong(sh.substring(10,12));
					stretsu =(int)(hour*2);
					if(minu<0)
					{
						stretsu= stretsu-1;
					}
					if(minu>0)
					{
						stretsu++;
					}
				}
				retsu = retsu+stretsu;
				for(ii=0;ii<sfile.size();ii++)
				{
					if(Integer.parseInt(buf[ii][stretsu])==0)
					{
						for(index=stretsu;index<retsu;index++)
						{
							buf[ii][index]=sdata.GetSid();
						}
						if(ii>datmax)
						{
							datmax=ii;
						}
						break;
					}
				}
			}
		}

		int maxrow = 0;
		if (datmax==-1){
			maxrow=1;
		}else{
			maxrow =datmax +1;
		}

		/* 廳暋峴偼壗峴偁傞偐 ROWSPN偺嶼弌 */
		int colcnt = 0;
		if (Integer.parseInt(uid)!=0){//娗棟幰埲奜
			/* 巊梡幰柤 */
			Integer sessionUID = (Integer)session.getAttribute(GSBase.SESSION_PARA_UID);
			String sessionUNAME = (String)session.getAttribute(GSBase.SESSION_PARA_UNAME);
			addBodyString("");
			addBodyString("  <TR ALIGN=\"left\" VALIGN=\"top\">");
			addBodyString("  <TD HEIGHT=\"50\" BGCOLOR=\"#e0e0e0\" ROWSPAN=\""+maxrow+"\">");

⌨️ 快捷键说明

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