📄 agdeldeptpersons.java.svn-base
字号:
package com.fzet.cois.dividework.agents;
import java.io.PrintWriter;
import java.util.Vector;
import com.fzet.cois.common.scriptLib.*;
import lotus.domino.*;
import java.util.StringTokenizer;
public class AgDelDeptPersons extends AgentBase {
public void NotesMain() {
ErrHandle err = null; // 错误日志
Session session = null; // 当前会话
AgentContext ac = null; // 当前上下文环境
Database dbMain = null;
Database db = null; // 当前数据库
View vwCalendar = null; // 日程安排查询视图
ViewEntryCollection vecReturn = null; // 日程安排返回查询结果记录集实体
ViewEntry veReturn = null; // 查询结果集中一条实体
ViewEntry veTemp = null;
Document doc = null, docPerson = null; // 当前文档
PrintWriter pw = null; // 输出流
String sQuery = null; // 查询参数
String sDeptName = null, sUNID = null; // 查询条件------当前用户名称
StringBuffer sbResult = new StringBuffer(); // 输出结果字符串缓冲:查询结果
Document docTemp = null; // 条目字符串变量
DocumentCollection dc = null;
try {
// 初始化过程
session = getSession();
ac = session.getAgentContext();
doc = ac.getDocumentContext();
db = ac.getCurrentDatabase();
pw = getAgentOutput();
dbMain = Common.getMainDb(session);
// 初始化错误日志类
err = new ErrHandle(session, 0, "", "agDelDeptPersons.xml");
// 取得查询参数
sQuery = doc.getItemValueString("Query_String_Decoded");
// 取UNID
sUNID = Common.parseParameter(sQuery, "UNID");
// 提取当部门户名称
sDeptName = Common.parseParameter(sQuery, "DeptName");
if (sDeptName == null)
throw new NotesException(NotesError.NOTES_ERR_OBJECT_NOT_FOUND,
"未找到参数DeptName");
String sStartday = Common.parseParameter(sQuery, "start_day");
// 提取视图名称
String sViewName = Common.parseParameter(sQuery, "ViewName");
// 取值的类型 0:从本库中取 1:从配置中心取
String sType = Common.parseParameter(sQuery, "Type");
// 是否新文档
String sIsNewDoc = Common.parseParameter(sQuery, "NewDoc");
if (sIsNewDoc.equals("0")) {
Document oriDoc = db.getDocumentByUNID(sUNID);
if (oriDoc != null) { // 说明是已保存过的文档
//System.out.println("保存过的文档");
View vwPersonPaib = db.getView("vwPaibIndx");
if (vwPersonPaib == null) {
//System.out.println("error");
Common
.returnXML(pw,
"<root><Return>0</Return><Error>vwPaibIndx!</Error></root>");
return;
}
vwPersonPaib = db.getView("vwPersonPaib");
if (vwPersonPaib == null) {
Common
.returnXML(pw,
"<root><Return>0</Return><Error>未找到视图vwPersonPaib!</Error></root>");
return;
}
// 开始计算返回值
sbResult.append("<root><Return>1</Return><Content>");
sbResult.append("<Data>");
vecReturn = vwPersonPaib.getAllEntriesByKey(sStartday
+ sDeptName, true);
veReturn = vecReturn.getFirstEntry();
while (veReturn != null) {
// 2、数据体
// 开始
sbResult.append("<Document>");
docPerson = veReturn.getDocument();
System.out.println("zj"+docPerson.getItemValueString("Zj"));
// asResult.addElement(vCategory);
// 周1到周7数据及周计,累计
sbResult.append("<name>").append(
docPerson.getItemValueString("name")).append(
"</name>");
sbResult.append("<day1>").append(
docPerson.getItemValueString("day1")).append(
"</day1>");
sbResult.append("<day2>").append(
docPerson.getItemValueString("day2"))
.append("</day2>");
sbResult.append("<day3>").append(
docPerson.getItemValueString("day3"))
.append("</day3>");
sbResult.append("<day4>").append(
docPerson.getItemValueString("day4"))
.append("</day4>");
sbResult.append("<day5>").append(
docPerson.getItemValueString("day5")).append(
"</day5>");
sbResult.append("<day6>").append(
docPerson.getItemValueString("day6"))
.append("</day6>");
sbResult.append("<day7>").append(
docPerson.getItemValueString("day7")).append(
"</day7>");
sbResult.append("<Zj>").append(
docPerson.getItemValueString("Zj")).append(
"</Zj>");
sbResult.append("<Lj>").append(
docPerson.getItemValueString("Lj")).append(
"</Lj>");
// 结束
sbResult.append("</Document>");
docPerson.recycle();
veTemp = veReturn;
veReturn = vecReturn.getNextEntry(veReturn);
veTemp.recycle();
}
sbResult.append("</Data></Content></root>");
//System.out.println(sbResult);
// 返回结果
Common.returnXML(pw, sbResult.toString());
return;
}
}
// 如果是新文档,判断是从本库中取还是从配置中心取
String sName[] = new String[1]; // 姓名------------返回值
Document doc1 = null;
if (sType.equals("0")) {
// 从本库中取
View vwUsers = db.getView(sViewName);
doc1 = vwUsers.getDocumentByKey(sDeptName);
if (doc1 != null) {
Vector vTemp1 = session.evaluate(
"@Implode(DeptUsers;\";\")", doc1);
int len = split(vTemp1.firstElement().toString(), ";").length;
sName = new String[len];
sName = split(vTemp1.firstElement().toString(), ";");
}
} else {
View vwUsers = dbMain.getView("vwUserByDeptName");
doc1 = vwUsers.getDocumentByKey(sDeptName);
dc = vwUsers.getAllDocumentsByKey(sDeptName);
sName = new String[dc.getCount()]; //重新定义sName数组的长度
doc1 = dc.getFirstDocument();
int i = 0;
while (doc1 != null) {
sName[i] = doc1.getItemValueString("LastName");
i++;
docTemp = doc1;
doc1 = dc.getNextDocument(doc1);
docTemp.recycle();
}
}
// 输出结果
// sbResult.append("<root><Return>1</Return><Content><Day>");
// 开始计算返回值
sbResult.append("<root><Return>1</Return><Content>");
sbResult.append("<Data>");
for (int j = 0; j < sName.length; j++) {
sbResult.append("<Document>");
sbResult.append("<name>").append(sName[j]).append("</name>");
sbResult.append("<day1></day1>");
sbResult.append("<day2></day2>");
sbResult.append("<day3></day3>");
sbResult.append("<day4></day4>");
sbResult.append("<day5></day5>");
sbResult.append("<day6></day6>");
sbResult.append("<day7></day7>");
sbResult.append("<Zj></Zj>");
sbResult.append("<Lj></Lj>");
// 结束
sbResult.append("</Document>");
}
sbResult.append("</Data></Content></root>");
Common.returnXML(pw, sbResult.toString());
} catch (NotesException e) {
StringBuffer sbReturn = new StringBuffer().append(
"<root><Return>0</Return><Error>").append(e.text).append(
"</Error></root>");
Common.returnXML(pw, sbReturn.toString());
err.record(true, e.id, e.text);
e.printStackTrace();
} catch (Exception e) {
StringBuffer sbReturn = new StringBuffer().append(
"<root><Return>0</Return><Error>").append(e.toString())
.append("</Error></root>");
Common.returnXML(pw, sbReturn.toString());
err.record(true, 0, e.toString());
e.printStackTrace();
} finally {
// 释放所有申请的资源
try {
if (doc != null)
doc.recycle();
if (veReturn != null)
veReturn.recycle();
if (vecReturn != null)
vecReturn.recycle();
if (vwCalendar != null)
vwCalendar.recycle();
if (db != null)
db.recycle();
if (ac != null)
ac.recycle();
if (session != null)
session.recycle();
} catch (NotesException e) {
System.out.println(e.text);
e.printStackTrace();
}
}
}
public String[] split(String source, String sign) {
StringTokenizer commaToker = new StringTokenizer(source, sign);
String[] result = new String[commaToker.countTokens()];
for (int i = 0; commaToker.hasMoreTokens(); i++)
result[i] = commaToker.nextToken();
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -