根据客户的需求,做的一个WFCI和JSP的扩展
2007-11-26 14:37
169 查看
鉴于AgentFlow没有源代码,有时候调试起来确实很不方便,所以不如直接在jsp中写代码方便一些。
<%...@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%...--
This file was created by Thomas Handson On Nov.26th,2007 for selecting member.
--%>
<jsp:useBean id="user" type="com.flowring.struts.webapp.User" scope="session" />
<%...
si.wfinterface.WFCI wfci=null;
try{
wfci=com.flowring.WebSystem.getWFCI();
}
catch(Exception e)
{
e.printStackTrace();
}
pe.pase.MemberRecord memberRecord=user.getMemberRecord();
String mainRoleId=memberRecord.getMainRoleID();
pe.pase.memberDR memDr=memberRecord.getMemberDR(mainRoleId);
String departmentId=memDr.getDepartmentID();
String departmentName=memDr.getDepartmentName();
pe.pase.Department department=wfci.getDepartment(departmentId);
Vector roleList=department.getRoleList();
List li=new ArrayList();
for(int i=0;i<roleList.size();i++)
{
pe.pase.Role role=wfci.getRole((String)roleList.get(i));
Vector memberList=role.getMemberList();
for(int j=0;j<memberList.size();j++)
{
String memberId=(String)memberList.get(j);
li.add(wfci.getMember(memberId));
}
}
%>
<html lang="zh-CN" xml:lang="zh-CN">
<head>
<meta http-equiv="content-type" type="text/html;charset=utf-8" />
<title>部门人员列表</title>
<style type="text/css">...
<!--
.tree{...}{width:120px;}
table{...}{margin-left:20px;}
#Panel{...}{border:3px double #2D72B0;width:35%;padding:2px;}
ul{...}{margin:0px;}
li{...}{list-style:none;line-height:150%;}
-->
</style>
<script type="text/javascript">...
//<![CDATA[
function add()
...{
var tree=document.getElementById("tree");
var tree1=document.getElementById("tree1");
var isNotExist=true;
for(var i=0;i<tree.options.length;i++,isNotExist=true)
...{
for(var j=0;j<tree1.options.length;j++)
...{
if(tree.options[i].selected==true && tree1.options[j].value==tree.options[i].value)
...{
isNotExist=false;
continue;
}
}
if(tree.options[i].selected==true && isNotExist)
...{
var opt=new Option(tree.options[i].text,tree.options[i].value);
tree1.add(opt);
}
}
}
function remove()
...{
var tree=document.getElementById("tree1");
for(var i=0,n=tree.options.length;i<n;i++,n=tree.options.length)
...{
if(tree.options[i].selected==true)
...{
var opt=tree.options[i];
tree.removeChild(opt);
if(tree.options.length==null || typeof(tree.options.length)=="undefined" || tree.options.length<=0)
break;
i=-1;
}
}
}
function ok()
...{
var tree=document.getElementById("tree1");
var obj="",name=""
if(tree.options.length && tree.options.length>-1)
...{
for(var i=0;i<tree.options.length;i++)
...{
name+=tree.options[i].text+";"
obj+=tree.options[i].value+";";
}
name=name.substring(0,name.length-1);
obj=obj.substring(0,obj.length-1);
}
opener.document.AddEventForm.joinMember.value=obj;
opener.document.AddEventForm.joinMemberName.value=name;
window.close();
}
function cancel()
...{
window.close();
}
//]]>
</script>
</head>
<body>
<div id="Panel">
<ul>
<li><%=departmentName %></li>
</ul>
<table border="0" cellpadding="0" cellspacing="1" width="30%">
<tr>
<td width="50%">
<select name="tree" id="tree" multiple="true" size="10" class="tree">
<%...
Iterator it=li.iterator();
while(it.hasNext())
{
pe.pase.MemberRecord member=(pe.pase.MemberRecord)it.next();
out.println("<option value=""+member.getID()+"">"+member.getName()+"</option>");
}
%>
</select>
</td>
<td>
<button onClick="add()">添加</button>
<br />
<button onClick="remove()">删除</button>
</td>
<td width="50%">
<select name="tree1" id="tree1" multiple="true" size="10" class="tree">
</select>
</td>
</tr>
<tr>
<td colspan="3" align="right"><button onClick="ok()">确定</button> <button onClick="cancel()">取消</button></td>
</tr>
</table>
</div>
</body>
</html>
<%...@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%...--
This file was created by Thomas Handson On Nov.26th,2007 for selecting member.
--%>
<jsp:useBean id="user" type="com.flowring.struts.webapp.User" scope="session" />
<%...
si.wfinterface.WFCI wfci=null;
try{
wfci=com.flowring.WebSystem.getWFCI();
}
catch(Exception e)
{
e.printStackTrace();
}
pe.pase.MemberRecord memberRecord=user.getMemberRecord();
String mainRoleId=memberRecord.getMainRoleID();
pe.pase.memberDR memDr=memberRecord.getMemberDR(mainRoleId);
String departmentId=memDr.getDepartmentID();
String departmentName=memDr.getDepartmentName();
pe.pase.Department department=wfci.getDepartment(departmentId);
Vector roleList=department.getRoleList();
List li=new ArrayList();
for(int i=0;i<roleList.size();i++)
{
pe.pase.Role role=wfci.getRole((String)roleList.get(i));
Vector memberList=role.getMemberList();
for(int j=0;j<memberList.size();j++)
{
String memberId=(String)memberList.get(j);
li.add(wfci.getMember(memberId));
}
}
%>
<html lang="zh-CN" xml:lang="zh-CN">
<head>
<meta http-equiv="content-type" type="text/html;charset=utf-8" />
<title>部门人员列表</title>
<style type="text/css">...
<!--
.tree{...}{width:120px;}
table{...}{margin-left:20px;}
#Panel{...}{border:3px double #2D72B0;width:35%;padding:2px;}
ul{...}{margin:0px;}
li{...}{list-style:none;line-height:150%;}
-->
</style>
<script type="text/javascript">...
//<![CDATA[
function add()
...{
var tree=document.getElementById("tree");
var tree1=document.getElementById("tree1");
var isNotExist=true;
for(var i=0;i<tree.options.length;i++,isNotExist=true)
...{
for(var j=0;j<tree1.options.length;j++)
...{
if(tree.options[i].selected==true && tree1.options[j].value==tree.options[i].value)
...{
isNotExist=false;
continue;
}
}
if(tree.options[i].selected==true && isNotExist)
...{
var opt=new Option(tree.options[i].text,tree.options[i].value);
tree1.add(opt);
}
}
}
function remove()
...{
var tree=document.getElementById("tree1");
for(var i=0,n=tree.options.length;i<n;i++,n=tree.options.length)
...{
if(tree.options[i].selected==true)
...{
var opt=tree.options[i];
tree.removeChild(opt);
if(tree.options.length==null || typeof(tree.options.length)=="undefined" || tree.options.length<=0)
break;
i=-1;
}
}
}
function ok()
...{
var tree=document.getElementById("tree1");
var obj="",name=""
if(tree.options.length && tree.options.length>-1)
...{
for(var i=0;i<tree.options.length;i++)
...{
name+=tree.options[i].text+";"
obj+=tree.options[i].value+";";
}
name=name.substring(0,name.length-1);
obj=obj.substring(0,obj.length-1);
}
opener.document.AddEventForm.joinMember.value=obj;
opener.document.AddEventForm.joinMemberName.value=name;
window.close();
}
function cancel()
...{
window.close();
}
//]]>
</script>
</head>
<body>
<div id="Panel">
<ul>
<li><%=departmentName %></li>
</ul>
<table border="0" cellpadding="0" cellspacing="1" width="30%">
<tr>
<td width="50%">
<select name="tree" id="tree" multiple="true" size="10" class="tree">
<%...
Iterator it=li.iterator();
while(it.hasNext())
{
pe.pase.MemberRecord member=(pe.pase.MemberRecord)it.next();
out.println("<option value=""+member.getID()+"">"+member.getName()+"</option>");
}
%>
</select>
</td>
<td>
<button onClick="add()">添加</button>
<br />
<button onClick="remove()">删除</button>
</td>
<td width="50%">
<select name="tree1" id="tree1" multiple="true" size="10" class="tree">
</select>
</td>
</tr>
<tr>
<td colspan="3" align="right"><button onClick="ok()">确定</button> <button onClick="cancel()">取消</button></td>
</tr>
</table>
</div>
</body>
</html>
相关文章推荐
- <p>在我们的实际软件项目中,管理团队事实上比写代码或者实现一个客户的需求更为的有挑战性。由于编程实际上是和机器打交道,而和机器打交道,仅仅要你符合机器预定的逻辑,</p>
- 针对根据客户需求进行产品配制的情况的简单策略
- 根据业务需求写了一个继承的构造函数,分享出来
- 系统架构培训:矩阵,封装,一个案例教你激发客户潜藏的需求!
- 一个扩展后的Split方法,可根据字符串分隔字符,返回字符数组
- 摆平客户的需求变更之表单扩展属性
- 作为短信运营商,我就根据客户的需求反馈提出以下几条短信平台的实质建议
- 根据公司需求写的一个linux 巡检小脚本
- C#如何不根据图像文件扩展名来确定一个图像文件是什么格式
- ShopEx customSchema 定制可以根据客户的需求对网站进行相应功能的添加修改或者删除
- 一个简单的iTextSharp的ASP.NET的例子(根据iText的jsp版本转换而来)
- 1.首先描述下自定义控件的一般方法: 自定义控件是被创造出来,所以先要复写它三个的构造方法,根据需求决定复写哪个,若没有自定义属性,复写只有一个参数的即可。若有自定义属性,则可以通过obtainSty
- 系统架构培训:矩阵,封装,一个案例教你激发客户潜藏的需求!
- 如何根据客户需求做到DSP投放广告,精准广告投放?
- 一个更容易扩展,根据用户个人信息生成密码弱口令生成器 genpAss
- jsp页面中同一个超链接地址根据不同的条件而跳到不同的页面
- 客户提的一个需求
- jquery与后台进行数据交互--前台发单一数据对象,后台返回一个json字符串 jsp页面
- 需求分析之“客户隐形需求”
- 编写程序,当程序运行后,根据屏幕提示输入一个数字字符串,输入后统计有多少个偶数数字和奇数数字。