起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1394|回复: 8

[结贴] 按日期过滤报表的错误

[复制链接]

3

主题

13

帖子

25

积分

新手上路

Rank: 1

积分
25
QQ
发表于 2013-10-11 18:19:28 | 显示全部楼层 |阅读模式
求助
我定义了一个leaveSumActivity.w,想做一个过滤时间的报表,参数为 begin和end 。但是运行时均报错 “ leaveSumActivity is not define" 在js里已有注明var leaveSumActivity = {};
步骤我是参照 http://bbs.justep.com/forum.php?mod=viewthread&tid=49841&pid=165022634&page=1&extra=#pid165022634 和论坛里其他内容 来操作的。
错误代码为
[ERROR] 2013-10-11 18:13:57,688 com.justep.report.controller.DataController - 报表数据获取失败
执行ksql:select DEMO_LeaveApply.fCreateDeptName as fCreateDeptName,DEMO_LeaveApply.fCreatePerName as fCreatePerName,SA_OPOrg.sCode as sCode,case when DEMO_LeaveApply.fLeaveTypeName = '休假' then DEMO_LeaveApply.fLeaveDays else 0 end as vacation,case when DEMO_LeaveApply.fLeaveTypeName = '出差' then DEMO_LeaveApply.fLeaveDays else 0 end as travel,case when DEMO_LeaveApply.fLeaveTypeName = '病假' then DEMO_LeaveApply.fLeaveDays else 0 end as sick,case when DEMO_LeaveApply.fLeaveTypeName = '事假' then DEMO_LeaveApply.fLeaveDays else 0 end as leaveApply,case when DEMO_LeaveApply.fLeaveTypeName = '产假' then DEMO_LeaveApply.fLeaveDays else 0 end as maternity,DEMO_LeaveApply.fStartTime as fStartTime from DEMO_LeaveApply DEMO_LeaveApply  optional  join SA_OPOrg SA_OPOrg on DEMO_LeaveApply.fCreateDeptID = SA_OPOrg optional  join SA_Task SA_Task on DEMO_LeaveApply = SA_Task.sData1 where SA_Task.sStatusID = 'tesFinished' AND SA_Task.sParent is null AND DEMO_LeaveApply.fStartTime > :begin AND DEMO_LeaveApply.fStartTime < :end order by SA_OPOrg.sCode asc时出错!
com.justep.report.exception.ReportServerException: 报表数据获取失败
        at com.justep.report.controller.DataController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.controller.InitController.execute(Unknown Source)
        at com.justep.report.controller.GenericControllerChain.execute(Unknown Source)
        at com.justep.report.Servlet.a(Unknown Source)
        at com.justep.report.Servlet.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:595)
Caused by: com.justep.report.exception.ReportServerException: 执行ksql:select DEMO_LeaveApply.fCreateDeptName as fCreateDeptName,DEMO_LeaveApply.fCreatePerName as fCreatePerName,SA_OPOrg.sCode as sCode,case when DEMO_LeaveApply.fLeaveTypeName = '休假' then DEMO_LeaveApply.fLeaveDays else 0 end as vacation,case when DEMO_LeaveApply.fLeaveTypeName = '出差' then DEMO_LeaveApply.fLeaveDays else 0 end as travel,case when DEMO_LeaveApply.fLeaveTypeName = '病假' then DEMO_LeaveApply.fLeaveDays else 0 end as sick,case when DEMO_LeaveApply.fLeaveTypeName = '事假' then DEMO_LeaveApply.fLeaveDays else 0 end as leaveApply,case when DEMO_LeaveApply.fLeaveTypeName = '产假' then DEMO_LeaveApply.fLeaveDays else 0 end as maternity,DEMO_LeaveApply.fStartTime as fStartTime from DEMO_LeaveApply DEMO_LeaveApply  optional  join SA_OPOrg SA_OPOrg on DEMO_LeaveApply.fCreateDeptID = SA_OPOrg optional  join SA_Task SA_Task on DEMO_LeaveApply = SA_Task.sData1 where SA_Task.sStatusID = 'tesFinished' AND SA_Task.sParent is null AND DEMO_LeaveApply.fStartTime > :begin AND DEMO_LeaveApply.fStartTime < :end order by SA_OPOrg.sCode asc时出错!
        at com.justep.report.controller.DataController.a(Unknown Source)
        at com.justep.report.controller.DataController.a(Unknown Source)
        ... 20 more
Caused by: java.lang.Exception
        ... 22 more
QQ截图20131011181327.png

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2013-10-11 18:40:50 | 显示全部楼层
begin和end参数是怎么赋值的,参考http://bbs.justep.com/forum.php? ... 6&pid=165015651
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

3

主题

13

帖子

25

积分

新手上路

Rank: 1

积分
25
QQ
 楼主| 发表于 2013-10-12 08:32:47 | 显示全部楼层
js代码:
var leaveSumActivity = {};


leaveSumActivity.trigger1Click = function(event){
                //找到要被过滤数据的data组件
        var data = justep.xbl("ds1");
        //找到去过滤其他数据的data组件
        var data2 = justep.xbl("data1");
         // 定义要过滤的ksql的条件语句
        var filter = "";
        //判断是否有需要过滤的数据
        if(data2.getValue('begin').trim() != ''){
                var d1 = data2.getValue('begin');
                d1 = d1.substr(0, 22);
                d1 = d1.replace("T", " ");
                filter += " DEMO_LeaveApply.fStartTime >= stringToDate('" + d1 + "') and" ;
        }

        if(data2.getValue('end').trim() != ''){
                var d2 = data2.getValue('end');
                d2 = d2.substr(0, 22);
                d2 = d2.replace("T", " ");
                filter += " DEMO_LeaveApply.fStartTime <= stringToDate('" + d2 + "') and";
        }
        filter += " 1=1";
         //为被过滤数据设置过滤条件
        data.setFilter("filter", filter);
        // 刷新就可以生成过滤后的结果了。
        data.refreshData();
};

leaveSumActivity.dataModelLoad = function(event){
        var data = justep.xbl("data1");
        var nowDateTimeStr = justep.Date.toString(new Date(),'yyyy-MM-dd');// 今天的时间

//        var yDate = justep.Date.decrease(new Date(), 1, 'd');
//        var yDateStr = justep.Date.toString(yDate, 'yyyy-MM-ddThh:mm:ss.000Z');// 昨天的时间
        data.setValue('begin', nowDateTimeStr);
        data.setValue('end', nowDateTimeStr);       
};



规则设置如图
QQ截图20131012083211.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35928
发表于 2013-10-12 10:02:56 | 显示全部楼层
打开js文件看看是不是有错误
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

3

主题

13

帖子

25

积分

新手上路

Rank: 1

积分
25
QQ
 楼主| 发表于 2013-10-12 10:23:20 | 显示全部楼层
js 中也没有发现错误。附件为w和js文件

ksql中不添加 参数 时候执行,且w文件中不增加录入框时候,表格是可以显示数据的。

leaveApply.rar

2.16 KB, 下载次数: 242

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35928
发表于 2013-10-12 11:18:07 | 显示全部楼层
reportData不能设置filter,报表日期查询参考2楼发的链接
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

3

主题

13

帖子

25

积分

新手上路

Rank: 1

积分
25
QQ
 楼主| 发表于 2013-10-12 12:29:15 | 显示全部楼层
问题依旧存在,
更改后的js为:


var leaveSumActivity = {};


leaveSumActivity.trigger1Click = function(event){
       
        //静态data
    var data1 = justep.xbl('data1');
//reportData
    var reportDate = justep.xbl('ds1');
//得到开始时间
    if(data1.getValue('begin').trim() != ''){
            var d1 = data1.getValue('begin');
            d1 = d1.substr(0, 22);
            d1 = d1.replace("T", " ");
            reportDate.setStringVar('begin', d1);
    }
//得到结束时间
    if(data1.getValue('end').trim() != ''){
            var d2 = data1.getValue('end');
            d2 = d2.substr(0, 22);
            d2 = d2.replace("T", " ");
            reportDate.setStringVar('end', d2);

    }
//刷新报表
    justep.xbl('groupReport').refresh();
};

leaveSumActivity.dataModelLoad = function(event){
        var reportDate = justep.xbl("ds1");
        var nowDateTimeStr = justep.Date.toString(new Date(),'yyyy-MM-dd');// 今天的时间

//        var yDate = justep.Date.decrease(new Date(), 1, 'd');
//        var yDateStr = justep.Date.toString(yDate, 'yyyy-MM-ddThh:mm:ss.000Z');// 昨天的时间
        reportDate.setValue('begin', nowDateTimeStr);
        reportDate.setValue('end', nowDateTimeStr);       
      //刷新报表
        justep.xbl('groupReport').refresh();
};


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35928
发表于 2013-10-12 13:42:47 | 显示全部楼层
你好楼主,该问题需要远程,已经通过技术服务QQ加你为好友了,请及时通过,我们会尽快QQ远程。(已远程)
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

3

主题

13

帖子

25

积分

新手上路

Rank: 1

积分
25
QQ
 楼主| 发表于 2013-10-12 14:48:55 | 显示全部楼层
已经搞定了,谢谢~
是因为resource上没有命空间xui导致的。
不过这个命名空间没改动过,不知道怎么就没默认带出来。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-9 06:17 , Processed in 0.067089 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表