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

QQ登录

只需一步,快速开始

楼主: wangxiaoyu

[结贴] 报表获取ID信息

[复制链接]

65

主题

296

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2014-6-27 10:33:43 | 显示全部楼层
暗夜的忧伤 发表于 2014-6-27 09:45
报表参数过滤不是data过滤
1、自定义action,例如:使用ksqlaction情况 ,参数这样写,select * from 表 wh ...

通过你的方法,可以接收到ID了,但是还是出现了全部数据,并没有只显示根据ID的那条数据。。。。求解,是不是哪里我写错了,我在ksql中这样写的
select ProjectBills.*,ProjectInfo.*
    from ProjectBills ProjectBills
     optional  join ProjectInfo ProjectInfo on ProjectBills.projectID = ProjectInfo
    where ProjectInfo.changjianFabao = '承建'
回复 支持 反对

使用道具 举报

39

主题

1379

帖子

2464

积分

金牌会员

Rank: 6Rank: 6

积分
2464
发表于 2014-6-27 10:37:27 | 显示全部楼层
wangxiaoyu 发表于 2014-6-27 10:33
通过你的方法,可以接收到ID了,但是还是出现了全部数据,并没有只显示根据ID的那条数据。。。。求解,是 ...

js中怎么传的参数?主表从表都这样处理了吗
回复 支持 反对

使用道具 举报

65

主题

296

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2014-6-27 10:41:35 | 显示全部楼层
zf_fz 发表于 2014-6-27 09:27
你都传过去ID 了,ID是唯一的,怎么可能有多条数据呢?

我想问一下哈,我将ID传过去了,如何接收这个传过来的ID呢?
回复 支持 反对

使用道具 举报

65

主题

296

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2014-6-27 10:44:13 | 显示全部楼层
暗夜的忧伤 发表于 2014-6-27 09:45
报表参数过滤不是data过滤
1、自定义action,例如:使用ksqlaction情况 ,参数这样写,select * from 表 wh ...

根据你说的我试了一试,但是还是不好使。
关于select *  from 表 where id=:id 我没像你那样写的我是这样写的,
我这是主从表,不知道,如何改成你的那种写法
select ProjectBills.*,ProjectInfo.*
    from ProjectBills ProjectBills
     optional  join ProjectInfo ProjectInfo on ProjectBills.projectID = ProjectInfo
    where ProjectInfo.changjianFabao = '承建'
回复 支持 反对

使用道具 举报

12

主题

109

帖子

787

积分

高级会员

Rank: 4

积分
787
QQ
发表于 2014-6-27 10:49:56 | 显示全部楼层
wangxiaoyu 发表于 2014-6-27 10:41
我想问一下哈,我将ID传过去了,如何接收这个传过来的ID呢?


先在js中得到传过来的fid,然后设置报表参数,到action里实现ksql语句查询,返回单条报表数据
var reportData = justep.xbl('ds1');//报表数据
                reportData.setStringVar('fID', fid);//设置参数
                justep.xbl("chart").refresh();

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

65

主题

296

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2014-6-27 10:58:55 | 显示全部楼层
whao410 发表于 2014-6-27 10:49
先在js中得到传过来的fid,然后设置报表参数,到action里实现ksql语句查询,返回单条报表数据
var report ...

我就这按照你这样写的
if (event.data && event.data.id) {
                var data = justep.xbl('ds1');
                justep.xbl('ds1').setStringVar("ProjectBillsID", event.data.id);
                justep.xbl('gridReport').refresh();
        }
回复 支持 反对

使用道具 举报

12

主题

109

帖子

787

积分

高级会员

Rank: 4

积分
787
QQ
发表于 2014-6-27 11:05:29 | 显示全部楼层
wangxiaoyu 发表于 2014-6-27 10:58
我就这按照你这样写的
if (event.data && event.data.id) {
                var data = justep.xbl('ds1');

event.data.id确定有数据?还有action里得到这个projectBillsId了?那接下来就是你ksql的问题了
回复 支持 反对

使用道具 举报

65

主题

296

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2014-6-27 11:14:13 | 显示全部楼层
whao410 发表于 2014-6-27 11:05
event.data.id确定有数据?还有action里得到这个projectBillsId了?那接下来就是你ksql的问题了 ...

event.data.id这里有数据了,但是action中没有获取到这个id,在action中如何才能获取到呢?这里代码我不会 操作。。。。给点代码提示。。谢谢。。。。。
回复 支持 反对

使用道具 举报

12

主题

109

帖子

787

积分

高级会员

Rank: 4

积分
787
QQ
发表于 2014-6-27 11:21:04 | 显示全部楼层
本帖最后由 whao410 于 2014-6-27 11:22 编辑
wangxiaoyu 发表于 2014-6-27 11:14
event.data.id这里有数据了,但是action中没有获取到这个id,在action中如何才能获取到呢?这里代码我不 ...


ds1的source不是引用了一个action么?给action定义一个形参嘛,reportData.setStringVar('projectBillsID', id);直接就给action传参了啊,在action就可以得到你js传过去的值了
回复 支持 反对

使用道具 举报

39

主题

1379

帖子

2464

积分

金牌会员

Rank: 6Rank: 6

积分
2464
发表于 2014-6-27 11:35:31 | 显示全部楼层
wangxiaoyu 发表于 2014-6-27 11:14
event.data.id这里有数据了,但是action中没有获取到这个id,在action中如何才能获取到呢?这里代码我不 ...

action:
public static Table parameterFilterQuery(String name, String id){
               
                String oracle = "SELECT RPRODUCTID , RPRODUCTNAME , (SELECT RCATEGORYNAME FROM DEMO_REPORTPRODUCTCATEGORY WHERE DEMO_REPORTPRODUCTCATEGORY.RCATEGORYID = DEMO_REPORTPRODUCTS.RCATEGORYID) AS RCATEGORYNAME , (SELECT RCOMPANYNAME FROM DEMO_REPORTSUPPLIERS WHERE DEMO_REPORTSUPPLIERS.RSUPPLIERID = DEMO_REPORTPRODUCTS.RSUPPLIERID)AS RCOMPANYNAME,RQUANTITYPERUNIT,RUNITPRICE,RUNITSINSTOCK FROM DEMO_REPORTPRODUCTS";
                String mssql = "SELECT RPRODUCTID , RPRODUCTNAME , (SELECT RCATEGORYNAME FROM DEMO_REPORTPRODUCTCATEGORY WHERE DEMO_REPORTPRODUCTCATEGORY.RCATEGORYID = DEMO_REPORTPRODUCTS.RCATEGORYID) AS RCATEGORYNAME , (SELECT RCOMPANYNAME FROM DEMO_REPORTSUPPLIERS WHERE DEMO_REPORTSUPPLIERS.RSUPPLIERID = DEMO_REPORTPRODUCTS.RSUPPLIERID)AS RCOMPANYNAME,RQUANTITYPERUNIT,RUNITPRICE,RUNITSINSTOCK FROM DEMO_REPORTPRODUCTS";
               
                oracle += " WHERE 1=1 ";
                mssql += " WHERE 1=1 ";
               
                if(!"".equals(name)){
                        oracle += "and RPRODUCTNAME like '%"+name+"%' ";
                        mssql += "and RPRODUCTNAME like '%"+name+"%' ";
                }
                if(!"".equals(id)){
                        oracle += String.format("and RPRODUCTID = '%s' ", id);
                        mssql += String.format("and RPRODUCTID = '%s' ", id);
                }
               
                HashMap<String,String> sqlMap = new HashMap<String,String>();
                sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
                sqlMap.put(DatabaseProduct.ORACLE.name(),oracle);
                sqlMap.put(DatabaseProduct.MSSQL.name(),mssql);
                sqlMap.put(DatabaseProduct.KINGBASE.name(),oracle);
                sqlMap.put(DatabaseProduct.SYBASE.name(),mssql);
                sqlMap.put(DatabaseProduct.DB2.name(),oracle);
                return SQL.select(sqlMap,null,"/demo/report/data");
        }


传参:
parameterFilterReport.gridModelLoad = function(event){
       
        var ProductName = document.getElementById('ProductName').value;
        var productId = document.getElementById('productId').value;

        justep.xbl('f1').setStringVar('name',ProductName);
        justep.xbl('f1').setStringVar('id',productId);
       
        justep.xbl('grid').refresh();       
};
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 04:52 , Processed in 0.094102 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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