📄 agrcpbtotal.java.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") + " ")
.append("</td>");
for (int j = 1; j < 8; j++) {
sbResult.append("<td class=tdbgred>")
.append(docSearch.getItemValueString("day" + j) + " ").append("</td>");
}
sbResult.append("<td class=tdbgred>").append(docSearch.getItemValueString("Zj") + " ").append(
"</td>");
sbResult.append("<td class=tdbgred>").append(docSearch.getItemValueString("Lj") + " ").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(" ").append("</td>");
for (int k = 1; k < 8; k++) {
sbResult.append("<td class=tdbgred>").append(
docSearch.getItemValueString("day" + k) + " ").append("</td>");
}
sbResult.append("<td class=tdbgred>").append(
docSearch.getItemValueString("Zj") + " ").append("</td>");
sbResult.append("<td class=tdbgred>").append(
docSearch.getItemValueString("Lj") + " ").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("制表日期: ").append(sZbrq).append("</td>");
sbResult.append("<td class=tdbgred colspan=\"3\">").append("最后修改日期: ").append(sXgrq).append("</td>");
sbResult.append("<td class=tdbgred colspan=\"4\">").append("最后修改人: ").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\">开始日期: ").append(
docSearch.getItemValue("start_day").firstElement().toString()).append(" ").append(
"—— 结束日期: ");
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()\"> [打印]</a>");
sbResult
.append("<a onclick=\"document.all.WebBrowser.ExecWB(4,1); return false;\" target=\"_self\" href=\"\" class=\"NOPRINT\"> [保存]</a>");
sbResult
.append("<a onclick=\"document.all.WebBrowser.ExecWB(6,1); return false;\" target=\"_self\" href=\"\" class=\"NOPRINT\"> [打印]</a>");
sbResult
.append("<a onclick=\"document.all.WebBrowser.ExecWB(7,1); return false;\" target=\"_self\" href=\"\" class=\"NOPRINT\"> [打印预览]</a>");
sbResult
.append("<a onclick=\"document.all.WebBrowser.ExecWB(8,1); return false;\" target=\"_self\" href=\"\" class=\"NOPRINT\"> [页面设置]</a>");
sbResult.append("</div>");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -