北客服监控模板说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北客服监控模板说明
1.添加模块
进入“北京供电局服务监控系统(V 1.0)”,用ssss,ssss登陆.
增加父级模块:
选择“系统维护”——>“系统权限维护”——>“模块添加“
写模块名称,点击addEnter提交
增加子模块:
选择“系统维护”——>“系统权限维护”——>“模块修改“
选择父模块,连接“添加功能入口“
写模块名称:functionRankName,
模块入口:functionEntry
模块URL:url
点击addEnter提交
2.屏蔽右键
<script src="../../lib/javascript/click.js"></script>
3.连接数据库
<%
String userName = (String) session.getAttribute("userName");
String regionNumber = (String) session.getAttribute("serialNumber"); //登
陆的区号
verify con=new verify();
%>
4.条件
(1).页面初始化:
在<body>中加入
onload =
"initIt();initIt1();movepos();iniDate1('<%=DateTimeBox1%>');iniDate2('<%
=DateTimeBox2%>');"
(2).将查询的条件放在Form中,提交到本页。

A.根据需要隐藏保存几个参数:
格式:<input type="hidden" name="参数名" value=<%=存放参数值的
变量名%>>
B.详细form代码:
<form method="post" action="#" name="input">
条件选择界面:
开始时间选择按钮的html:
<div align="center">
<input type="image" class="parent" border="0" name="iaa"
src="../img/button-time.gif" width="50" height="20"
id="Date1Parent" style="z-index:1;"
onclick="expandIt('Date1');flag=1;return false">
</div>
开始时间文本框的html:
<div align="center">
<input type="text" name="DateTimeBox1"
class="input" value="<%if
(!DateTimeBox1.equals("")){out.print(DateTimeBox1);}else{out.print(c urrDateTime);}%>" readonly >
</div>
结束时间选择按钮的html (查询条件是时间段时需要):
<div align="center">
<input type="image" class="parent" border="0"
name="imageField522" src="../img/button-time.gif" width="50"
height="20" id="Date2Parent" style="z-index:1;"
onclick="expandIt('Date2');flag=2;return false">
</div>
结束时间文本框的html (查询条件是时间段时需要):
<div align="center">
<input type="text" name="DateTimeBox2" class="input"
value="<%if
(!DateTimeBox2.equals("")){out.print(DateTimeBox2);}else{out.print(c urrDateTime);}%>" readonly >
</div>
保存参数的html
<input type="hidden" name="Qu_Number" value=<%=Qu_Number%>>
如果还有除时间以外的其他参数则在此加上。

</form>
开始时间界面的html(放在form外):
<div class="child" id="Date1Child" style="z-index:100; width:225px;
height:124px; position:absolute; left: 349px; top: 117px">
<IE:Calendar id="cal" style="width:100%;height:20%;"
ondblclick="return cal_ondblclick()">
</IE:Calendar> </div>
结束时间界面的html(放在form外,查询条件是时间段时需要):<div class="child" id="Date2Child" style="position:absolute;
width:225px; height:124px; z-index:2; left: 485px; top: 117px">
<IE:Calendar2 id="cal2" style="width:100%;height:20%;"
ondblclick="return cal_ondblclick()">
</IE:Calendar2> </div>
(3).用到的公共文件有clickshow.js和calendar.htc,放在目
录../lib/javascript/popdate/下。

其中时间界面的生成是在文件calendar.htc 或calendar_day.htc中,时间界面是放在层中,层的控制是在文件clickshow.js中。

注:时间精确到分用calendar.htc
时间精确到天用calendar_day.htc
其中开始时间选择按钮的层的Id是Date1Parent
开始时间文本框的name是DateTimeBox1
开始时间界面的层的Id是Date1Child
结束时间选择按钮的层的Id是Date2Parent(查询条件是时间段时需
要)
结束时间文本框的name是DateTimeBox2(查询条件是时间段时需要)
结束时间界面的层的Id是Date2Child(查询条件是时间段时需要) 详细代码:
用到的js文件:
<SCRIPT LANGUAGE=javascript
src="../lib/javascript/popdate/clickshow.js"></SCRIPT>
用到的style:
<STYLE>
@media all
{
IE\:Calendar
{
时间精确到天用calendar_day.htc
时间精确到分用calendar.htc
behavior: url(../lib/javascript/popdate/calendar.htc) ;
width : 100%;
height : 20%;
}
查询条件是时间段时需要Calendar2
IE\:Calendar2
{
behavior: url(../lib/javascript/popdate/calendar2.htc) ;
width : 100%;
height : 20%;
}
}
A:link { color:#003399; text-decoration:none; }
A:visited { color:#6699CC; text-decoration:none; }
A:hover { text-decoration:underline; }
</STYLE>
用到的SCRIPT语言:
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
var flag=1;
function cal_ondblclick() {
button1_onclick()
}
查询条件不是时间段只有一个时间时去掉else程序段
function button1_onclick(){
if (flag==1) {
window.returnValue=cal.value
input.DateTimeBox1.value=cal.value
expandIt('Date1')
}else{
window.returnValue=cal2.value
input.DateTimeBox2.value=cal2.value
expandIt('Date2')
}
//self.close()
}
根据分辨率将参数的层的位置调整好,其中block1.. blockN个数根据查询条件定,凡是象时间这样有层的参数才需要移动位置。

function movepos() {
ns4 = (yers)? true:false
ie4 = (document.all)? true:false
if (ns4) {
block1 = document.Date1Child
block2 = document.Date2Child
}
if (ie4) {
block1 = Date1Child.style
block2 = Date2Child.style
}
if ((screen.width == 640) && (screen.height == 480)) {
block1.xpos=230;
block2.xpos=478;
}
else if ((screen.width == 800) && (screen.height == 600)) {
block1.xpos=237;
block2.xpos=485;
}
else if ((screen.width == 1024) && (screen.height == 768)) { block1.xpos=349;
block2.xpos=597;
}
block1.left=block1.xpos
block2.left=block2.xpos
}
function iniDate1(dt) {
cal.value=dt
}
iniDate2函数在查询条件是时间段时需要
function iniDate2(dt) {
cal2.value=dt
}
//-->
</SCRIPT>
用到的Html,JSP语言:
取参数:查询后记住上次选择的参数值
<%
String DateTimeBox1=""; //开始时间
String DateTimeBox2=""; //结束时间
String Qu_Number=””; //选择的区号
if (request.getParameter("DateTimeBox1")!=null)
{
DateTimeBox1=request.getParameter("DateTimeBox1");
}
if (request.getParameter("DateTimeBox2")!=null)
{
DateTimeBox2=request.getParameter("DateTimeBox2");
}
if (request.getParameter("Qu_Number")!=null)
{
Qu_Number=request.getParameter("Qu_Number");
}
如果没选择区用登陆的区号查询,。

if (request.getParameter("Qu_Number")==null)
{
Qu_Number=regionNumber;
}
//根据区号得到区名,并在相应位置赋值
String strSqlQu="select dbname from dbinfo where
serialnumber='"+Qu_Number+"'";
ResultSet rsQu= con.listRole(userName,"lyhf",strSqlQu,request,response);
if (rsQu!=null){
while (rsQu.next()){
QuText=rsQu.getString("dbname");
}
}
如果还有其他参数,在此要读取这些参数。

%>
区名赋值:<%=QuText%>
5.地区地图显示
如果登陆的是北京(用户名及口令ssss,ssss),显示地区地图;
如果登陆的是地区(如用户名及口令dddd,dddd),不显示地区地图;
当用户(北京用户)选择一个地区时,超连接到当前页,其中根据查询条件的需要传递几个参数,如:
区号Qu_Number
开始时间DateTimeBox1
结束时间DateTimeBox2
其中Qu_Number是用户选择地区的地区号, DateTimeBox1是开始时间文本框当前的值,DateTimeBox2是结束时间文本框当前的值,如果查询条件还有其他参数也要传递。

详细代码:
<script language=javascript>
function linkFun(el){
格式:
window.location.href="当前页?参数名1="+参数值1
+"&参数名2="+参数值2+”…”
+"&参数名N="+参数值N;
如:
window.location.href="当前
页?Qu_Number="+el+"&DateTimeBox1="+input.DateTimeBox1.value
+"&DateTimeBox2="+input.DateTimeBox2.value;
其中参数值是从表单域中取的。

}
</script>
<%if (regionNumber.equals("null")) {%>
<table align=center bgcolor=#666666 border=0
cellpadding=4 cellspacing=1
width=70>
<tbody>
<tr bgcolor="#E7E7F5">
<td class=word1 height="199" valign="top" bgcolor="#FFDFEF">
<div align="center">
<table width="98%" border="0" cellspacing="0"
cellpadding="0">
<%
String strSqlDq="select dbinfoid,dbname,serialnumber from
dbinfo order by parentid,serialnumber";
ResultSet rsDq=
con.listRole(userName,当前模块入
口,strSqlDq,request,response);
if (rsDq!=null){
while (rsDq.next()){
String Qu_Id=rsDq.getString("serialnumber");
String Qu_Name=rsDq.getString("dbname");
%>
<tr>
<td class="word1">
<div align="center"><a
href="javascript:linkFun('<%=Qu_Id%>');"><%=Qu_Nam
e%></a
></div>
</td>
</tr>
<%
}
}
%>
</table>
<%}%>
6.查询提交
查询输出:
<%
其中Qu_Number是查询的地区号
String strSql=" …. regionid = '”+ Qu_Number+”'…";
ResultSet rs= con.listRole(userName,"lyhf",strSql,request,response);
if (rs!=null){
while (rs.next()){
//输出
}
}
%>
7.分页
用到类hdjy.lib.pagination.pagination。

查询时先计算记录集总数,取当前页号,再分页显示,最后输出页脚。

输出页脚时要把查询需要的参数赋给一个变量paramStr。

详细代码:
(1)。


<jsp:useBean id="divpage" class ="hdjy.lib.pagination.pagination"
scope="page"/>
(2)。

分页显示
添加到要查询的sql语句后:
int iCount=0;
ResultSet rsCount=
con.listRole(userName,当前模块入口,strSql,request,response);
if (rsCount!=null){
while (rsCount.next()){
iCount=iCount+1;
}
}
ResultSet rs1= con.listRole(userName, 当前模块入
口,strSql,request,response);
int pageNo=0;
if (request.getParameterValues("pageNo")!=null)
{
pageNo=Integer.parseInt(request.getParameter("pageNo"));
}else{
pageNo=1;
}
int iRowCount=10;
String go="1";
if (request.getParameterValues("goFlag")!=null)
{
go=request.getParameter("goFlag");
if (go.equals("1")) {
if ((request.getParameterValues("gopage")!=null) &&
(!request.getParameter("gopage").equals(""))) {
pageNo=Integer.parseInt(request.getParameter("gopage"));
}else{
pageNo=1;
}
}
}
ResultSet rs;
rs=divpage.paginationRun(rs1,iCount,iRowCount,pageNo,当前页);
int kk=0;
int i=0;
if (rs!=null){
while (rs.next()){
kk=kk+1;
if (kk==iRowCount+1)
{
break;
}
i++;
//输出……..
}
}
(3)。

输出页脚
添加到要显示页脚的地方
String s="";
String paramStr="";
参数串paramStr 传递了所有查询的条件,以便点击上一页/下一页时能记住查询的条件。

格式:
paramStr="&参数名1="+参数值1+"&参数名2="+参数值2+”…”+"&参数名N="+参数值N;
如:
paramStr="&DateTimeBox1="+DateTimeBox1+"&DateTimeBox2="+DateT imeBox2+"&Qu_Number="+Qu_Number;
s=divpage.pageBottom(iCount,iRowCount,pageNo, 当前页,paramStr);
out.print("<br>"+s);
6.错误页
<%@ page errorPage="../err/Jsp1ErrorPage.jsp" %>
7.菜单
显示页面左边的菜单:在表格左边的空白单元格中加入
<iframe frameborder="0" src="../frame/menu.jsp" width=120
height="400"></iframe>即可。

8.关闭数据库
在用完数据库操作后要关闭数据库
代码:
con.Close();
9.页面命名
话务统计:
话务量统计:hwtj/hwltj.jsp
话务量同期比分析:hwtj/hwltqbfx.jsp
话务量趋势分析:hwtj/hwlqsfx.jsp
统计月报:
投诉回复分析:tjyb/tshf.jsp
报修发生分析:tjyb/bxfs.jsp
考核指标分析:tjyb/khzb.jsp
业务分类统计月报:tjyb/ywfl.jsp
服务满意度分析:tjyb/fwmy.jsp
报修处理分析:tjyb/bxcl.jsp
客户投诉分析:tjyb/khts.jsp
报修质量分析:tjyb/bxzl.jsp
服务监控:
坐席工作状态:ffjk/zxgz.jsp
录音回放及工单查询:ffjk/fwjk.jsp
报修处理情况查询:ffjk/bxcl.jsp
业务统计:
外拨结果统计:ywtj/wbjg.jsp
调查结果统计:ywtj/dcjg.jsp
投诉分类统计:ywtj/tsfl.jsp
报装分类统计:ywtj/bzfl.jsp
业务查询分类统计:ywtj/ywcx.jsp
业务分类统计:ywtj/ywfl.jsp
客户回访分类统计:ywtj/khhf.jsp
业务综合统计:ywtj/ywzh.jsp
事故报修分类统计:ywtj/sgbx.jsp
抢修部门统计:ywtj/qxbm.jsp
每日运营简报:ywtj/mryy.jsp。

相关文档
最新文档