createcircular_jushin.java

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

JAVA
392
字号
package jp.co.sjts.gsession.circular;

/*
 * 夞棗庴怣僼僅儖僟乕夋柺嶌惉  Createcircular_jushin.java
 * Copyright (C) 1999-2000 Japan Total System Co,LTD
 *	  Masakatu O	<ookubo@sjts.co.jp>
 */

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 jp.co.sjts.gsession.tools.*;

public class Createcircular_jushin extends CreatePage
{
	private Hashtable hsPara;
	private Hashtable hsPara1;
	private CIReceirveFile cifile;
	private CIReceirveData cidata ;
	private GSDate cal ;			//僇儗儞僟乕
	private String mapURL ;
	private String dataDIR ;
	private String helpURL ;
	private int page ;
	private int max ;
	private int today ;
	private String uid ;
	private IUserManager UM;
	private CINoteFile cndata;

	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 = "#ff0000";
	private static final String vlink = "#0000ff";

	private static final int WKDATE = 0;
	private static final int TITLE = 1;
	private static final int DATEKEY = 2;
	private static final int YMD = 3;
	private static final int CIRCID = 4;
	private static final int USER = 5;
	private static final int KUSER = 6;
	private static final int NOFILE = 7;
	private static final int UMU = 8;
	
	public Createcircular_jushin(Hashtable hsPara,Hashtable hsPara1,int page,int max,String uid,IUserManager UM)
	{
		this.hsPara = hsPara;
		this.mapURL = (String)hsPara.get(CICmd.CI_MAP);
		this.dataDIR = (String)hsPara.get(CICmd.CI_DIR);
		this.helpURL = (String)hsPara.get("help");
		this.hsPara1 = hsPara1;
		this.uid = uid;
		this.page = page;
		this.max = max;
		this.UM = UM;
	}

	/**
	 * <P>夞棗庴怣僼僅儖僟乕夋柺傪嶌惉偟傑偡丅
	 *
	 * @param req - 儕僋僄僗僩
	 * @param res - 儗僗億儞僗
	 */
	protected boolean writePage(HttpServletRequest req,HttpServletResponse res) throws GSException {

		String url = GSTool.removeParaFormURI(req.getRequestURI());
/* 僨乕僞撉傒崬傒 */
		cifile = new CIReceirveFile(dataDIR,uid);
		cal = new GSDate();
		int today = Integer.parseInt( cal.getstrYear() + cal.getstrMonth() + cal.getstrDate());

		setCharset("iso-2022-jp");
		setHelpUrl(helpURL + GSHelpPage.CI000000);
		setTitle(title);
		setBodyColor(bgcolor,text,link,vlink,alink);

		addBodyString("");
		addBodyString("<TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("");
		addBodyString("<TR>");
		addBodyString("<TD BGCOLOR=\"#000080\">");
		addBodyString("  <TABLE HEIGHT=\"40\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"5\">");
		addBodyString("  <TR>");
		addBodyString("  <FORM METHOD=\"post\" ACTION=\"" + url + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CICmd.PA_CMD + "\" VALUE=\"" + CICmd.CI_RECEIRVE + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CICmd.PA_PAG + "\" VALUE=\"" + Integer.toString(page) + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CICmd.PA_MOD + "\" VALUE=\"0\">");

		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CICmd.CI_SORTKEY + "\" VALUE=\""
					  + ((hsPara1.get(CICmd.CI_SORTKEY)!=null)?
						 ((String[])hsPara1.get(CICmd.CI_SORTKEY))[0]:"0") 
					  + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CICmd.CI_SORTFLG+TITLE + "\" VALUE=\""
		 			  + ( (hsPara1.get(CICmd.CI_SORTFLG+TITLE)!=null)?
						  ((String[])(hsPara1.get(CICmd.CI_SORTFLG+TITLE)))[0]:"false")
					  + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CICmd.CI_SORTFLG+DATEKEY + "\" VALUE=\""
		 			  + ( (hsPara1.get(CICmd.CI_SORTFLG+DATEKEY)!=null)?
						  ((String[])(hsPara1.get(CICmd.CI_SORTFLG+DATEKEY)))[0]:"false")
					  + "\">");
		addBodyString("  <INPUT TYPE=\"hidden\" NAME=\"" + CICmd.CI_SORTFLG+USER + "\" VALUE=\""
		 			  + ( (hsPara1.get(CICmd.CI_SORTFLG+USER)!=null)?
						  ((String[])(hsPara1.get(CICmd.CI_SORTFLG+USER)))[0]:"false")
					  + "\">");
		addBodyString("  <TD NOWRAP><FONT SIZE=\"+1\" COLOR=\"#ffffff\"><B>夞棗</B></FONT></TD>");
		addBodyString("  <TD WIDTH=\"100%\" ALIGN=\"right\">");
		addBodyString("  <INPUT TYPE=\"image\" NAME=\""+"pers"+"\" SRC=\""+mapURL+CICmd.W_B_12+"\" ALT=\"屄恖愝掕\" BORDER=\"0\">");
		addBodyString("  </TD>");
		addBodyString("  </TR>");
		addBodyString("  </TABLE>");
		addBodyString("</TD>");
		addBodyString("</TR>");
/* 怴婯夞棗 */
		addBodyString("  <!--怴婯夞棗-->");
		addBodyString("<TR>");
		addBodyString("<TD>");
		addBodyString("  <TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"5\">");
		addBodyString("  <TR>");
		addBodyString("  <TD WIDTH=\"100%\" ALIGN=\"right\">");
		addBodyString("  <!--怴婯夞棗-->");
		addBodyString("  <INPUT TYPE=\"image\" NAME=\""+"new"+"\" SRC=\""+mapURL+CICmd.W_B_09+"\" ALT=\"怴婯夞棗\" BORDER=\"0\">");
		addBodyString("  </TD>");
		addBodyString("  </TR>");
		addBodyString("  </TABLE>");
		addBodyString("</TD>");
		addBodyString("</TR>");



/* 僼僅儖僟乕慖戰 */
		addBodyString("  <!--僼僅儖僟乕慖戰-->");
		addBodyString("<TR>");
		addBodyString("<TD>");
		addBodyString("  <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("  <TR>");
		addBodyString("  <TD>");
		addBodyString("    <TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("    <TR>");
		addBodyString("    <TD><INPUT TYPE=\"image\" NAME=\""+"rec"+"\" SRC=\""+mapURL+CICmd.W_B_20+"\" ALT=\"庴怣僼僅儖僟乕\" BORDER=\"0\"></TD>");
		addBodyString("    <TD><INPUT TYPE=\"image\" NAME=\""+"send"+"\" SRC=\""+mapURL+CICmd.W_B_21+"\" ALT=\"憲怣嵪傒僼僅儖僟乕\" BORDER=\"0\"></TD>");
		addBodyString("    </TR>");
		addBodyString("    </TABLE>");
		addBodyString("  </TD>");
/* 儁乕僕 */
		addBodyString("     <!--儁乕僕堏摦-->");
		addBodyString("  <TD WIDTH=\"100%\" ALIGN=\"right\">");
		if( page == 0 ) {
			addBodyString("  <IMG SRC=\""+mapURL+CICmd.W_B_L+"\" HEIGHT=\"18\" WIDTH=\"18\" BORDER=\"0\">");
		}else{
			addBodyString("  <INPUT TYPE=\"image\" NAME=\""+"down"+"\" SRC=\""+mapURL+CICmd.W_B_L+"\" ALT=\"慜儁乕僕\" HEIGHT=\"18\" WIDTH=\"18\" BORDER=\"0\">");
		}

		addBodyString("  </TD>");
		addBodyString("  <TD ALIGN=\"right\" NOWRAP>");
		if( cifile.size() == 0 ) {
			addBodyString( "<B>Page 0/0</B>" );
		}else{
			if( cifile.size() % max == 0 ) {
				addBodyString("<B>Page " + Integer.toString(page+1) + "/" + Integer.toString(cifile.size()/max) + "</B>" );
			}else{
				addBodyString("<B>Page " + Integer.toString(page+1) + "/" + Integer.toString(cifile.size()/max+1) + "</B>" );
			}
		}
		addBodyString("  </TD>");
		addBodyString("  <TD ALIGN=\"right\" NOWRAP>");
		if( (page+1)*max <  cifile.size() ) {
			addBodyString("  <INPUT TYPE=\"image\" NAME=\""+"up"+"\" SRC=\""+mapURL+CICmd.W_B_R+"\" ALT=\"師儁乕僕\" HEIGHT=\"18\" WIDTH=\"18\" BORDER=\"0\">");
		}else{
			addBodyString("  <IMG SRC=\""+mapURL+CICmd.W_B_R+"\" HEIGHT=\"16\" WIDTH=\"18\" BORDER=\"0\">");
		}
		addBodyString("  </TD>");
		addBodyString("  </TR>");
		addBodyString("  </TABLE>");
		addBodyString("</TD>");
		addBodyString("</TR>");
/* 僞僀僩儖 */
		String href = url+"?"+CICmd.PA_CMD+"="+CICmd.CI_RECEIRVE
			+"&"+CICmd.PA_PAG+"="+Integer.toString(page)
			+"&"+CICmd.PA_MOD+"="+"0";

		int sortkey = (hsPara1.get(CICmd.CI_SORTKEY)!=null)?
			Integer.parseInt(((String[])hsPara1.get(CICmd.CI_SORTKEY))[0]):0;
		int key = sortkey;

		String titleSortflg="true";
		if( (sortkey==TITLE) && (hsPara1.get(CICmd.CI_SORTFLG+TITLE)!=null) )
			titleSortflg = (((String[])hsPara1.get(CICmd.CI_SORTFLG+TITLE))[0]).equals("true")?"false":"true";
		String ymdSortflg="true";
		if( (sortkey==DATEKEY) && (hsPara1.get(CICmd.CI_SORTFLG+DATEKEY)!=null) )
			ymdSortflg = (((String[])hsPara1.get(CICmd.CI_SORTFLG+DATEKEY))[0]).equals("true")?"false":"true";
		String userSortflg="true";
		if( (sortkey==USER) && (hsPara1.get(CICmd.CI_SORTFLG+USER)!=null) )
			userSortflg = (((String[])hsPara1.get(CICmd.CI_SORTFLG+USER))[0]).equals("true")?"false":"true";

		if(sortkey == 0){
			ymdSortflg = "false";
			sortkey = DATEKEY;
		}

		addBodyString("<TR>");
		addBodyString("<TD>");
		addBodyString("  <TABLE BGCOLOR=\"#ffffcf\" WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">");
		addBodyString("  <TR ALIGN=\"right\">");
		addBodyString("  <TD NOWRAP><FONT COLOR=\"#ff0000\" SIZE=-1> 仸 </FONT><FONT SIZE=-1>偼嶍彍偝傟偨儐乕僓乕偱偡丅</FONT><BR></TD>");
		addBodyString("  </TR>");
		addBodyString("  <TR ALIGN=\"center\">");
		addBodyString("  <TD>");
		addBodyString("    <TABLE WIDTH=\"98%\" BORDER=\"1\" CELLSPACING=\"1\" CELLPADDING=\"1\">");
		addBodyString("    <TR BGCOLOR=\"#8080ff\">");

		String paraFlags = "&" + CICmd.CI_SORTFLG + TITLE + "=" + titleSortflg +
						   "&" + CICmd.CI_SORTFLG + DATEKEY + "=" + ymdSortflg +
						   "&" + CICmd.CI_SORTFLG + USER + "=" + userSortflg;

		String titleTitle = makeTitle("僞僀僩儖",titleSortflg,sortkey,TITLE);
		addBodyString("    <TH WIDTH=\"70%\" NOWRAP><A HREF=\""
					  + href
					  + "&"+CICmd.CI_SORTKEY+"="+Integer.toString(TITLE)
					  + paraFlags
					  + "\">"
					  + titleTitle
					  + "</A></TH>");
		String ymdTitle = makeTitle("擔晅",ymdSortflg,sortkey,DATEKEY);
		addBodyString("    <TH WIDTH=\"15%\" NOWRAP><A HREF=\""
					  + href
					  + "&"+CICmd.CI_SORTKEY+"="+Integer.toString(DATEKEY)
					  + paraFlags
					  + "\">"
					  + ymdTitle
					  + "</A></TH>");
		String userTitle = makeTitle("搳峞幰",userSortflg,sortkey,USER);
		addBodyString("    <TH WIDTH=\"15%\" NOWRAP><A HREF=\""
					  + href
					  + "&"+CICmd.CI_SORTKEY+"="+Integer.toString(USER)
					  + paraFlags
					  + "\">"
					  + userTitle
					  + "</A></TH>");

/* 柧嵶峴 */

		Vector vecCircular = new Vector();
		Object[] dspCircular = null;
		//僜乕僩梡僥乕僽儖嶌惉
		for(int i = 0; i < cifile.size(); i++) {
			Vector vec = new Vector(9);
			cidata = cifile.Getmod(i);//柧嵶撉傒崬傒
			cal.setYMDHMS(cidata.GetDate());
			cndata = new CINoteFile(dataDIR,cidata.GetCircid(),0);
			cndata.Load();
			IUser user = UM.getUser(Integer.parseInt(cndata.getEntuserid()));
			int wkdate = Integer.parseInt(cal.getstrYear() + cal.getstrMonth() + cal.getstrDate());
			wkdate = wkdate + Integer.parseInt( cidata.GetLimit() );
			vec.add(Integer.toString(wkdate));
			vec.add(cidata.GetTitol());
			vec.add(new Long(cal.getTime()));
			vec.add(Integer.toString(cal.getYear()) + "擭" 
					+ Integer.toString(cal.getMonth()) + "寧" 
					+ Integer.toString(cal.getDay()) + "擔 ");
			vec.add(cidata.GetCircid());
			vec.add(cidata.GetUname());

			String kana = "0";
			Boolean nofile = new Boolean("true");
			if(user != null) {
				kana = user.getKana();
				nofile = new Boolean("false");
			}
			if(cndata.getEntuserid().equals("0"))
				nofile = new Boolean("false");
			vec.add(kana);
			vec.add(nofile);
			vec.add(cidata.GetUmu());
			vecCircular.add(vec);
		}
		dspCircular = vecCircular.toArray();

		boolean sortflg=true;
		switch(key){
		case TITLE:
			sortflg = (hsPara1.get(CICmd.CI_SORTFLG+TITLE)!=null)?
				(((String[])hsPara1.get(CICmd.CI_SORTFLG+TITLE))[0]).equals("true"):true;
			break;
		case DATEKEY:
			sortflg = (hsPara1.get(CICmd.CI_SORTFLG+DATEKEY)!=null)?
				(((String[])hsPara1.get(CICmd.CI_SORTFLG+DATEKEY))[0]).equals("true"):true;
			break;
		case USER:
			sortflg = (hsPara1.get(CICmd.CI_SORTFLG+USER)!=null)?
				(((String[])hsPara1.get(CICmd.CI_SORTFLG+USER))[0]).equals("true"):true;
			break;
		case 0:
			sortflg = true;
			sortkey = DATEKEY;
		}

		// 僜乕僩
		GSSort cirsort = (sortkey == USER)?new GSSort(sortflg,KUSER):new GSSort(sortflg,sortkey);
		Arrays.sort(dspCircular,cirsort);

		// 柧嵶峴昞帵
		boolean mode = true;
		for( int i = page * max ; i < (page + 1) * max && i < dspCircular.length ; i++) {
			Vector vec = (Vector)dspCircular[i];

			// BGCOLOR愝掕
		//	if(today > Integer.parseInt((String)vec.get(WKDATE)))
		//		addBodyString("    <TR BGCOLOR=\"#ff00ff\">");
		//	else if(mode)
			if(mode)
				addBodyString("    <TR BGCOLOR=\"#f0f0f0\">");
			else
				addBodyString("    <TR BGCOLOR=\"#bebebe\">");

			mode = !mode;

			// 妋擣僼儔僌傪庢摼
			int check = Integer.parseInt((String)vec.get(UMU));

			//桳岠婜尷敾掕
			boolean eff = true;
			if(today > Integer.parseInt((String)vec.get(WKDATE))) {
				eff = false;
				check = 0;
			}

			addBodyString("    <TD>" + ((check == 0)?"<B>":""));
			addBodyString("     <A HREF=\"" + url + "?" + CICmd.PA_CMD + "=" + CICmd.CI_MSG
					  + "&" + CICmd.PA_CID + "=" + ((String)vec.get(CIRCID))
					  + "&" + CICmd.PA_PAG + "=" + Integer.toString(page)
					  + "&" + CICmd.PA_MOD + "=" + "0"
					  + "\" TARGET=\"_self\">"
					  + ((!eff)?"<FONT COLOR=\"#ff0000\">":"")
					  + ((String)vec.get(TITLE))
					  + ((!eff)?"</FONT></A>":"</A>"));
			addBodyString(((check == 0)?"    </B></TD>":"    </TD>"));

			addBodyString("    <TD ALIGN=\"center\" NOWRAP>" + ((check == 0)?"<B>":"")
					  + ((!eff)?"<FONT COLOR=\"#ff0000\">":"")
					  + ((String)vec.get(YMD))
					  + ((!eff)?"</FONT>":"")
					  + ((check == 0)?"</B></TD>":"</TD>"));

			addBodyString("    <TD NOWRAP>" + ((check == 0)?"<B>":""));
			if(((Boolean)vec.get(NOFILE)).booleanValue())
				addBodyString("    <FONT COLOR=\"#ff0000\">仸  </FONT>" + ((String)vec.get(USER)));
			else if(!eff)
				addBodyString("    <FONT COLOR=\"#ff0000\">" + ((String)vec.get(USER)) + "</FONT>");
			else
				addBodyString("  " + ((String)vec.get(USER)));

			addBodyString( ((check == 0)?"    </B></TD>":"    </TD>"));

			addBodyString("    </TR>");
		}
		addBodyString("     </TABLE>");
		addBodyString("  </TD>");
		addBodyString("  </FORM>");
		addBodyString("  </TR>");
		addBodyString("  <TR><TD>丂<BR></TD></TR>");
/* 柧嵶廔椆 */
		addBodyString("  </TABLE>");  //new
		addBodyString("</TD>");
		addBodyString("</TR>");
		addBodyString("</TABLE>");

		return true;
	}

	private String makeTitle(String title,String flag,int key,int sorttarget)
	{
		if(key == sorttarget) {
			if(flag.equals("true"))
				title = "<FONT COLOR=\"#ffffff\"> 仴 " + title + "</FONT>";
			else
				title = "<FONT COLOR=\"#ffffff\">" + title + " 仯 </FONT>";
		}
		else
			title = "<FONT COLOR=\"#ffffff\">" + title + "</FONT>";

		return title;
	}
}

⌨️ 快捷键说明

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