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

QQ登录

只需一步,快速开始

查看: 6693|回复: 10

[结贴] 新做报表界面,想实现用时间进行查询,显示报表查询失败

  [复制链接]

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
发表于 2013-11-13 20:12:58 | 显示全部楼层 |阅读模式
版本: X5.2.4 小版本号: 2249
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
报表用的是ACTION进行数据查询,SQL语句在PLSQL中运行正常,报错语句:
Caused by: com.justep.report.exception.ReportServerException: 执行sqlQueryAction时报错!SELECT KHMC,WLMC,HTBH,GLHTH,KZSL,WBDJ,KZYH,KZRQ,DQRQ,XYZLX,LCID,WBJE,YWLX,HTQDRQ,ZGSDS,CM,XHG,BXGS,BXF,JKZZS,SJF,DLF,GJF,BGF,XCF,SFWBJE,WKF,CIQSL FROM (SELECT  DISTINCT A.KHMC,A.WLMC,A.HTBH,A.GLHTH,A.KZSL,A.WBDJ,A.KZYH,A.KZRQ,A.DQRQ,A.XYZLX,A.LCID,A.WBJE,A.YWLX,(SELECT QDRQ FROM JKHTB F WHERE F.HTNO=A.HTNO) AS HTQDRQ,(SELECT SUM(ZGSDS) FROM SFHKB D WHERE D.HTNO=A.HTNO AND A.YWLX=D.YWLX) AS ZGSDS,(SELECT CM FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='商检费') AS CM,(SELECT XHG FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='商检费') AS XHG,(SELECT KHMC FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='保险费') AS BXGS,(SELECT JE FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='保险费') AS BXF,(SELECT JE FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='进口增值税') AS JKZZS,(SELECT JE FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='商检费') AS SJF,(SELECT JE FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='代理费') AS DLF, (SELECT JE FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='港建费') AS GJF, (SELECT JE FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='港口作业包干费') AS BGF, (SELECT JE FROM FYPJB B WHERE B.HTNO=A.HTNO AND B.DJMC='小船费') AS XCF, (SELECT SUM(WBJE) FROM SFHKB D WHERE D.HTNO=A.HTNO AND A.YWLX=D.YWLX ) AS SFWBJE,(SELECT WBTZJE FROM WKB C WHERE A.HTNO=C.HTNO AND A.YWLX=C.YWLX) AS WKF, (SELECT CIQSL FROM GKRKB E WHERE A.HTNO=E.HTNO AND YWLX='进口') AS CIQSL,A.DJR FROM XYZXXB A,SFHKB D,FYPJB B,WKB C,GKRKB E WHERE B.HTNO=D.HTNO AND C.YWLX=D.YWLX) where 1=1  and TRUNC(HTQDRQ) between to_date('null','YYYY-MM-DD') and to_date('null','YYYY-MM-DD')
        at com.justep.report.controller.DataController.a(Unknown Source)
        at com.justep.report.controller.DataController.a(Unknown Source)
        ... 20 more

按照论坛上的方法都试了,不加
if(!"".equals(KSSJ)&&!"".equals(JSSJ))
{
oracle += " and TRUNC(HTQDRQ) between to_date('"+KSSJ+"','YYYY-MM-DD') and to_date('"+JSSJ+"','YYYY-MM-DD')";
}
的时候正常。
JS里获取时间语句如下:
var data1 = justep.xbl('data1');
//reportData
    var reportDate = justep.xbl('ds1');
//得到开始时间
    if(data1.getValue('KSSJ').trim() != ''){
            var d1 = data1.getValue('KSSJ');
            d1 = d1.substr(0, 22);
            d1 = d1.replace("T", " ");
            reportDate.setStringVar('KSSJ', d1);
    }
//得到结束时间
    if(data1.getValue('JSSJ').trim() != ''){
            var d2 = data1.getValue('JSSJ');
            d2 = d2.substr(0, 22);
            d2 = d2.replace("T", " ");
            reportDate.setStringVar('JSSJ', d2);
    }
//刷新报表
    justep.xbl('report1').refresh();

求解决,求远程。

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2013-11-13 20:41:25 | 显示全部楼层
传递值出了问题
var d1 = data1.getValue('KSSJ');和var d2 = data1.getValue('JSSJ');
都能正确的到值吗?

评分

参与人数 1 +3 收起 理由
jishuang + 3 赞一个!

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

11

主题

58

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2013-11-13 21:50:49 | 显示全部楼层
同意楼上的,很明显,TRUNC(HTQDRQ) between to_date('null','YYYY-MM-DD') and to_date('null','YYYY-MM-DD') 提示你数据库对空值日期进行操作。建议调试js中日期取得的值。

评分

参与人数 1 +3 收起 理由
jishuang + 3 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2013-11-14 08:23:53 | 显示全部楼层
我也知道是获取值没获取到的原因,但是这个语句应该是没问题的啊,是直接用正确的语句改的,语法没问题啊,我就是看不出来为什么没获取到。。。。。。
回复 支持 反对

使用道具 举报

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2013-11-14 09:14:19 | 显示全部楼层
如果没有选择日期,也就没有执行 reportDate.setStringVar('JSSJ', d2); 那么JSSJ'参数没有赋值
if(!"".equals(KSSJ)&&!"".equals(JSSJ))
{
oracle += " and TRUNC(HTQDRQ) between to_date('"+KSSJ+"','YYYY-MM-DD') and to_date('"+JSSJ+"','YYYY-MM-DD')";
}
这段代码应该判断一下,传过来的参数是否为空
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

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

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2013-11-14 09:43:24 | 显示全部楼层
如果值都为空,允许插叙出所有值,应该怎么判断啊?
回复 支持 反对

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2013-11-14 11:14:33 | 显示全部楼层
有没有人帮忙看一下啊?我现在直接把两个值填上固定值也不行啊
if(!"".equals(KSSJ)&&!"".equals(JSSJ)){
                        oracle += " and HTQDRQ between to_date('"+KSSJ+"','YYYY-MM-DD') and to_date('"+JSSJ+"','YYYY-MM-DD')";
                        }
        else{
                oracle += " and HTQDRQ between to_date('2012-01-01','YYYY-MM-DD') and to_date('2013-12-26','YYYY-MM-DD')";
                }
回复 支持 反对

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2013-11-14 17:33:01 | 显示全部楼层
如果没有选择日期,也就没有执行 reportDate.setStringVar('JSSJ', d2); 那么JSSJ'参数没有赋值
if(!"".equals(KSSJ)&&!"".equals(JSSJ))
{
oracle += " and TRUNC(HTQDRQ) between to_date('"+KSSJ+"','YYYY-MM-DD') and to_date('"+JSSJ+"','YYYY-MM-DD')";
}
这段代码应该判断一下,传过来的参数是否为空


这个没人帮忙吗?怎么解决给个话啊。。。zhaixin老大你说的详细点呗?
回复 支持 反对

使用道具 举报

11

主题

1134

帖子

1261

积分

金牌会员

Rank: 6Rank: 6

积分
1261
QQ
发表于 2013-11-15 08:47:52 | 显示全部楼层
你好楼主,该问题需要远程,请在你的个人信息中完善QQ和联系电话,我们会尽快QQ远程。
远程的联系方法QQ2025089647。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要
回复 支持 反对

使用道具 举报

107

主题

475

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
QQ
 楼主| 发表于 2013-11-15 09:13:59 | 显示全部楼层
资料更新了,可以远程了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 06:39 , Processed in 0.073889 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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