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

QQ登录

只需一步,快速开始

查看: 8132|回复: 15

[结贴] 关于报表条件查询问题

  [复制链接]

55

主题

242

帖子

790

积分

高级会员

Rank: 4

积分
790
QQ
发表于 2014-2-11 10:45:57 | 显示全部楼层 |阅读模式
版本: X5.2.6 小版本号:
数据库: MS SQLServer 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
我设计了一个报表,页面是这样的:
QQ截图20140211103214.jpg
条件筛选我参照DEMO的例子写成这样子:

ksqlQueryProcedure代码如下:
import java.util.HashMap;
import java.util.Map;

import com.justep.message.CommonMessages;
import com.justep.model.ModelUtils;
import com.justep.system.data.DatabaseProduct;
import com.justep.system.data.KSQL;
import com.justep.system.data.SQL;
import com.justep.system.data.Table;
import com.justep.util.Utils;

public class KSQLProcedure {

        public static Table query(String PCH,String SCBM,String JZ,String GX,String KSRQ,String JSRQ){
               
                String mssql = "select PM.fPCH as fPCH,PM.fSCBM as fSCBM,PM.fXHHJZ as fXHHJZ,PM.fGXBH as fGXBH,PM.fGG as fGG,PM.fDW as fDW,PM.fRQ as fRQ,sum(PM.fSCSL) as fSCSL,sum(PM.fHGPSL) as fHGPSL,sum(PM.fFPSL) as fFPSL,sum(PM.fFXPSL) as fFXPSL from HX_MRSCAP PM group by fPCH, fSCBM, fXHHJZ, fGXBH, fGG, fDW, fRQ order by fPCH asc, fSCBM asc, fXHHJZ asc, fGXBH asc, fGG asc, fRQ asc";
/**
                mssql += " WHERE 1=1 ";
               
                if(!"".equals(PCH)){
                        mssql += "and fPCH like '%"+PCH+"%' ";
                }               
               
                if(!"".equals(SCBM)){
                        mssql += "and fSCBM like '%"+SCBM+"%' ";
                }       
               
                if(!"".equals(JZ)){
                        mssql += "and fXHHJZ like '%"+JZ+"%' ";
                }       
               
                if(!"".equals(GX)){
                        mssql += "and fGXBH like '%"+GX+"%' ";
                }
*/               
                HashMap<String,String> sqlMap = new HashMap<String,String>();
                sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
                sqlMap.put(DatabaseProduct.MSSQL.name(),mssql);
                sqlMap.put(DatabaseProduct.SYBASE.name(),mssql);
                return SQL.select(sqlMap,null,"/HX/ERP/data");
               
        }
       
}

js代码如下:
var mainActivity = {};

mainActivity.trigger1Click = function(event){
       
        var PCH  = justep.xbl("data1").getValue('PCH');
        var SCBM = justep.xbl("data1").getValue('SCBM');
        var JZ   = justep.xbl("data1").getValue('JZ');
        var GX   = justep.xbl("data1").getValue('GX');
        var KSRQ = justep.xbl("data1").getValue('KSRQ');
        var JSRQ = justep.xbl("data1").getValue('JSRQ');
            //justep.Date.fromString(KSRQ,justep.Date.STANDART_FORMAT_SHOT);       
            //justep.Date.fromString(JSRQ,justep.Date.STANDART_FORMAT_SHOT);

        justep.xbl('ds1').setStringVar('PCH',PCH);
        justep.xbl('ds1').setStringVar('SCBM',SCBM);
        justep.xbl('ds1').setStringVar('JZ',JZ);
        justep.xbl('ds1').setStringVar('GX',GX);
        justep.xbl('ds1').setStringVar('KSRQ',KSRQ);
        justep.xbl('ds1').setStringVar('JSRQ',JSRQ);       
        justep.xbl('groupReport').refresh();               
};

mainActivity.dataModelReady = function(event){
//自动填充结束日期为当前日期
    var date = justep.System.datetime();
    var CD = justep.Date.toString(date, justep.Date.STANDART_FORMAT_SHOT);
    justep.xbl('data1').setValue('JSRQ', CD);
//自动填充开始日期为当前日期前7天
    var BD = justep.Date.decrease(date, 7, 'd');
    var BDS = justep.Date.toString(BD, justep.Date.STANDART_FORMAT_SHOT);
    justep.xbl('data1').setValue('KSRQ', BDS);       
};

运行结果提示:执行Action出错, wrong number of arguments

如果删除js中的:
        justep.xbl('ds1').setStringVar('KSRQ',KSRQ);
        justep.xbl('ds1').setStringVar('JSRQ',JSRQ);       
和修改ksqlQueryProcedure中的:
       public static Table query(String PCH,String SCBM,String JZ,String GX)
打开页面时可以显示出报表结果。但如果点击页面上的查询按钮(无论有没有填写筛选条件),提示:
argument type mismatch。

请问问题出在哪里呢?新手求指教,谢谢!

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-2-11 10:53:10 | 显示全部楼层
你看看action定义,参数KSRQ和JSRQ的类型是什么,是不是也是String?

评分

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

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

9

主题

395

帖子

1042

积分

金牌会员

Rank: 6Rank: 6

积分
1042
QQ
发表于 2014-2-11 10:54:48 | 显示全部楼层
参数个数不正确或者是参数的类型不匹配,检查参数,可调试一下

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

55

主题

242

帖子

790

积分

高级会员

Rank: 4

积分
790
QQ
 楼主| 发表于 2014-2-11 10:56:18 | 显示全部楼层
sue 发表于 2014-2-11 10:54
参数个数不正确或者是参数的类型不匹配,检查参数,可调试一下

请问参数个数在哪里设置呢?现在是4个参数时没问题,6个就出问题了。
回复 支持 反对

使用道具 举报

9

主题

395

帖子

1042

积分

金牌会员

Rank: 6Rank: 6

积分
1042
QQ
发表于 2014-2-11 11:02:32 | 显示全部楼层
lz_net 发表于 2014-2-11 10:56
请问参数个数在哪里设置呢?现在是4个参数时没问题,6个就出问题了。

看action定义
回复 支持 反对

使用道具 举报

55

主题

242

帖子

790

积分

高级会员

Rank: 4

积分
790
QQ
 楼主| 发表于 2014-2-11 11:04:22 | 显示全部楼层
yinlun 发表于 2014-2-11 10:53
你看看action定义,参数KSRQ和JSRQ的类型是什么,是不是也是String?

在action里的6个参数都设置成string了。但还是出错。
回复 支持 反对

使用道具 举报

55

主题

242

帖子

790

积分

高级会员

Rank: 4

积分
790
QQ
 楼主| 发表于 2014-2-11 11:07:24 | 显示全部楼层
sue 发表于 2014-2-11 11:02
看action定义
QQ截图20140211110554.jpg
这样有问题吗?
回复 支持 反对

使用道具 举报

2

主题

812

帖子

951

积分

高级会员

Rank: 4

积分
951
QQ
发表于 2014-2-11 11:10:10 | 显示全部楼层
查看报错信息详细定位在哪一行。
参考API,尝试使用reportData组件的以下方法。
public void setDateTimeVar( name, value)
设置查询模式中日期时间类型变量(格式:yyyy-MM-ddThh:mm:ssZ)
参数:
name [required]查询模式中变量名称
value [required]查询模式中变量值
public void setDateVar( name, value)
设置KSQL查询模式中日期类型变量(格式:yyyy-MM-dd)
参数:
name [required]KSQL查询模式中变量名称
value [required]KSQL查询模式中变量值


Action的参数使用SQLdate类型。打印出sql语句看看。
技术支持qq 1282807026。(远程支持专用)
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-2-11 11:17:06 | 显示全部楼层
lz_net 发表于 2014-2-11 11:04
在action里的6个参数都设置成string了。但还是出错。

variables这个参数是多余的,删除掉吧
QQ:179785966
回复 支持 反对

使用道具 举报

55

主题

242

帖子

790

积分

高级会员

Rank: 4

积分
790
QQ
 楼主| 发表于 2014-2-11 11:18:07 | 显示全部楼层
fengwei 发表于 2014-2-11 11:10
查看报错信息详细定位在哪一行。
参考API,尝试使用reportData组件的以下方法。
public void setDateTimeVa ...

谢谢,这迟些会用上。但日前这6个参数的筛选作用还未用上。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 00:12 , Processed in 0.101144 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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