⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agrcpbtotal.java.svn-base

📁 一个包含排班信息的模块 2.1. 最新排班 6 2.2. 所有排班 6 2.3. 日常排班统计 7 2.4. 排班管理 7 2.5. 班次配置 7 2.6. 部门人员配置 7
💻 SVN-BASE
字号:
package com.fzet.cois.dividework.agents;

import lotus.domino.*;

import java.io.*;
import java.util.*;

import com.fzet.cois.common.scriptLib.*;

public class AgrcpbTotal extends AgentBase {

    public void NotesMain() {
	Session session = null;
	AgentContext ac = null;
	Document doc = null;
	Database db = null;
	DocumentCollection dc = null; // 记录结果集
	Document docRecord = null; // 记录结果文档
	Document docTemp = null; // 临时文档
	ErrHandle err = null; // 错误处理
	PrintWriter pw = null;
	Document docSearch = null;
	DocumentCollection dcSearch = null; // 记录结果集
	View vwPersonPaib = null;
	// View vwAffair = null;

	try {
	    session = getSession();
	    ac = session.getAgentContext();
	    db = ac.getCurrentDatabase(); // 取得当前数据库
	    doc = ac.getDocumentContext(); // 取得当前文档
	    pw = getAgentOutput();
	    err = new ErrHandle(session, 0, "", "agrcpbTotal.xm1");

	    // 读取URL中的参数
	    String sQuery = doc.getItemValueString("Query_String_Decoded");
	    String sName = Common.parseParameter(sQuery, "name");
	    String sCond = getScond(sQuery); // 取得查询条件

	    // 生成XML头信息
	    Common.returnXML(pw, "<root><Return>1</Return><Content>");
	    if (db == null) {
		Common.returnXML(pw, "<root><Return>0</Return><Error>无法打开排班信息数据库。</Error></root>");
		return;
	    }
	    dc = db.search(sCond, null, 0);
	    Document doc1 = null;
	    doc1 = dc.getLastDocument();
	    String aStartDay[] = new String[dc.getCount()];
	    String aDeptName[] = new String[dc.getCount()];
	    int i = 0;
	    while (doc1 != null) {
		aStartDay[i] = doc1.getItemValue("start_day").firstElement().toString();
		aDeptName[i] = doc1.getItemValueString("DeptName");
		i++;
		docTemp = doc1;
		doc1 = dc.getPrevDocument(doc1);
		docTemp.recycle();
	    }
	    // 取不重复的日期值和部门值
	    aStartDay = setUnique(aStartDay);
	    aDeptName = setUnique(aDeptName);

	    StringBuffer sbResult = null;
	    sbResult = new StringBuffer();

	    String sZbrq = null;
	    String sXgrq = null;
	    String sLastModifyer = null;
	    printButton(sbResult);
	    if (sName != null && (!sName.equals(""))) {
		dcSearch = db.search(sCond, null, 0);

		if (dcSearch.getCount() == 0) {

		    doc.replaceItemValue("Body1", "暂时没有" + sName + "的排班"); // 输出到页面表单中
		    return;
		}
		docSearch = dcSearch.getFirstDocument();
		// 动态定义二维数组的长度
		while (docSearch != null) {
		    // 打印头
		    printHead(docSearch, sbResult);
		    sbResult.append("<tr>");
		    sbResult.append("<td class=tdbgred>").append(docSearch.getItemValueString("name") + "&nbsp;")
			    .append("</td>");

		    for (int j = 1; j < 8; j++) {
			sbResult.append("<td class=tdbgred>")
				.append(docSearch.getItemValueString("day" + j) + "&nbsp;").append("</td>");
		    }
		    sbResult.append("<td class=tdbgred>").append(docSearch.getItemValueString("Zj") + "&nbsp;").append(
			    "</td>");
		    sbResult.append("<td class=tdbgred>").append(docSearch.getItemValueString("Lj") + "&nbsp;").append(
			    "</td>");
		    sbResult.append("</tr>");
		    sZbrq = docSearch.getItemValueString("Zbrq");
		    sXgrq = docSearch.getItemValueString("Xgrq");
		    sLastModifyer = docSearch.getItemValueString("LastModifyUser");
		    // 打印结尾
		    printEnd(sbResult, sZbrq, sXgrq, sLastModifyer);

		    docTemp = docSearch;
		    docSearch = dcSearch.getNextDocument(docSearch);
		    docTemp.recycle();
		}
	    }// 与if对应
	    if (sName.equals("") || sName == null) {
		for (i = 0; i < aStartDay.length; i++) {
		    for (int j = 0; j < aDeptName.length; j++) {
			vwPersonPaib = db.getView("vwPersonPaib");
			dcSearch = vwPersonPaib.getAllDocumentsByKey(aStartDay[i] + aDeptName[j]);
			docSearch = dcSearch.getFirstDocument();
			// 把部门的班次分出来,形成单独的一个数组
			if (docSearch != null) {
			    // 打印头
			    printHead(docSearch, sbResult);
			    while (docSearch != null) {
				sbResult.append("<tr>");
				sbResult.append("<td class=tdbgred>").append(docSearch.getItemValueString("name"))
					.append("&nbsp;").append("</td>");
				for (int k = 1; k < 8; k++) {
				    sbResult.append("<td class=tdbgred>").append(
					    docSearch.getItemValueString("day" + k) + "&nbsp;").append("</td>");
				}
				sbResult.append("<td class=tdbgred>").append(
					docSearch.getItemValueString("Zj") + "&nbsp;").append("</td>");
				sbResult.append("<td class=tdbgred>").append(
					docSearch.getItemValueString("Lj") + "&nbsp;").append("</td>");
				sbResult.append("</tr>");

				// 结束
				sZbrq = docSearch.getItemValueString("Zbrq");
				sXgrq = docSearch.getItemValueString("Xgrq");
				sLastModifyer = docSearch.getItemValueString("LastModifyUser");
				docTemp = docSearch;
				docSearch = dcSearch.getNextDocument(docSearch);
				docTemp.recycle();
			    }
			    // 打印结尾
			    printEnd(sbResult, sZbrq, sXgrq, sLastModifyer);
			}
		    }
		}
	    }// 与if对应
	    doc.replaceItemValue("Body1", sbResult.toString()); // 输出到页面表单中

	} catch (Exception e) {
	    err.record(false, 0, e.toString());
	    e.printStackTrace();
	    Common.returnXML(pw, "<root><Return>0</Return><Error>错误:" + e.toString() + "</Error></root>");
	} finally {
	    try {
		if (docTemp != null)
		    docTemp.recycle();
		if (docRecord != null)
		    docRecord.recycle();
		if (dc != null)
		    dc.recycle();
		if (db != null)
		    db.recycle();
		if (doc != null)
		    doc.recycle();
		if (ac != null)
		    ac.recycle();
		if (session != null)
		    session.recycle();
	    } catch (Exception e) {
		e.printStackTrace();
	    }
	}
    }

    private void printEnd(StringBuffer sbResult, String sZbrq, String sXgrq, String sLastModifyer) {
	sbResult.append("<tr>");

	sbResult.append("<td class=tdbgred colspan=\"3\">").append("制表日期:&nbsp;&nbsp;").append(sZbrq).append("</td>");
	sbResult.append("<td class=tdbgred colspan=\"3\">").append("最后修改日期:&nbsp;&nbsp;").append(sXgrq).append("</td>");
	sbResult.append("<td class=tdbgred colspan=\"4\">").append("最后修改人:&nbsp;&nbsp;").append(sLastModifyer).append(
		"</td>").append("</tr></table><br>");
    }

    private void printHead(Document docSearch, StringBuffer sbResult) throws NotesException {
	sbResult
		.append("<table width='100%' border='1' cellspacing='0' cellpadding='0' class='WTableBorder' style='border-width-top:0px'>");
	sbResult.append("<tr>").append("<td class=tdbgred>部门").append("</td>");
	sbResult.append("<td class=tdbgred colspan=\"2\">").append(docSearch.getItemValueString("DeptName")).append(
		"</td>");
	sbResult.append("<td class=tdbgred colspan=\"7\">开始日期:&nbsp;&nbsp;").append(
		docSearch.getItemValue("start_day").firstElement().toString()).append("&nbsp;").append(
		"——&nbsp;结束日期:&nbsp;&nbsp;");
	sbResult.append(docSearch.getItemValue("end_day").firstElement().toString()).append("</td>").append("</tr>");
	sbResult.append("<tr>").append("<td width=10% class=viewTitle>姓名</td>").append(
		"<td width=10% class=viewTitle>星期一</td>").append("<td width=10% class=viewTitle>星期二</td>").append(
		"<td width=10% class=viewTitle>星期三</td>").append("<td width=10% class=viewTitle>星期四</td>").append(
		"<td width=10% class=viewTitle>星期五</td>").append("<td width=10% class=viewTitle>星期六</td>").append(
		"<td width=10% class=viewTitle>星期日</td>").append("<td width=10% class=viewTitle>欠休(周计)</td>").append(
		"<td width=10% class=viewTitle>欠休(累计)</td>").append("</tr>");
    }

    // 获取&sCond后面的参数值
    public String getScond(String sQuery) {
	int nPos = sQuery.indexOf("&Cond=");
	String sCond;
	if (nPos <= 0)
	    sCond = "";
	else
	    sCond = sQuery.substring(nPos + 6, sQuery.length());
	return sCond;
    }

    public String[] setUnique(String[] values) {
	Map map = new HashMap();
	if (values == null)
	    return null;
	for (int i = 0; i < values.length; i++) {
	    if (map.get(values[i]) == null)
		map.put(values[i], values[i]);
	}
	String[] rt = new String[values.length];
	return (String[]) map.keySet().toArray(rt);
    }

    private void printButton(StringBuffer sbResult) {
	sbResult.append("<html>");
	sbResult.append("<head>");
	sbResult.append("<title>");
	sbResult.append("统计结果");
	sbResult.append("</title>");
	sbResult.append("</head>");
	sbResult.append("<body>");
	sbResult.append("<SCRIPT LANGUAGE=\"JavaScript\">");
	sbResult.append("</SCRIPT>");
	sbResult.append("<STYLE type=text/css> ");
	sbResult
		.append(
			"BODY { 	COLOR: black; FONT-FAMILY: 宋体; FONT-SIZE: 14px } TD { 	COLOR: black; FONT-FAMILY: 宋体; FONT-SIZE: 14px; font-height: 100% } ")
		.append(
			"A:link { 	COLOR: blue; CURSOR: hand; TEXT-DECORATION: none } A:visited { 	COLOR: black; CURSOR: hand; TEXT-DECORATION: none } A:active { 	COLOR: red; TEXT-DECORATION: none}")
		.append("A:hover { 	COLOR: red; TEXT-DECORATION: none }");
	sbResult.append("</STYLE>");
	sbResult.append("<BODY bgcolor=\"#FFFFFF\">");
	sbResult.append("<div class=\"TD\">");
	sbResult.append("<a href=\"javascript:window.close()\" class=\"NOPRINT\">");
	sbResult.append("[关闭]</a>");
	// sbResult.append("<a
	// href=\"javascript:window.print()\">&nbsp;[打印]</a>");
	sbResult
		.append("<a onclick=\"document.all.WebBrowser.ExecWB(4,1); return false;\" target=\"_self\" href=\"\" class=\"NOPRINT\">&nbsp;[保存]</a>");
	sbResult
		.append("<a onclick=\"document.all.WebBrowser.ExecWB(6,1); return false;\" target=\"_self\" href=\"\" class=\"NOPRINT\">&nbsp;[打印]</a>");
	sbResult
		.append("<a onclick=\"document.all.WebBrowser.ExecWB(7,1); return false;\" target=\"_self\" href=\"\" class=\"NOPRINT\">&nbsp;[打印预览]</a>");
	sbResult
		.append("<a onclick=\"document.all.WebBrowser.ExecWB(8,1); return false;\" target=\"_self\" href=\"\" class=\"NOPRINT\">&nbsp;[页面设置]</a>");
	sbResult.append("</div>");
    }

}

⌨️ 快捷键说明

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