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

QQ登录

只需一步,快速开始

楼主: fangyeer

[结贴] 请教一下,多表查询

[复制链接]

54

主题

367

帖子

892

积分

高级会员

Rank: 4

积分
892
QQ
 楼主| 发表于 2017-12-22 19:52:14 | 显示全部楼层
我觉得action里设置没有错,因为把SO_KHZL.fXM = :p改成SO_KHZL.fXM = 'yang1'页面是可以查到数据的,麻烦大神看看楼上为啥出错?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2017-12-25 09:12:38 | 显示全部楼层
直接改为值肯定可以啊
配置参数,有配置参数的设置,action具体怎么定义的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

54

主题

367

帖子

892

积分

高级会员

Rank: 4

积分
892
QQ
 楼主| 发表于 2017-12-25 09:33:39 来自手机 | 显示全部楼层
然后必须在action的“代码”如下
String ksql = "select SO_KHZL.*,SO_WPXQ.*from SO_KHZL SO_KHZL optional  join SO_WPXQ SO_WPXQ on SO_KHZL = SO_WPXQ.fZBID where SO_KHZL.fXM = :p";//需要查询数据的ksql
这就是我的,里面没有别的东西了!
forum.php(1).jpg
回复 支持 反对

使用道具 举报

54

主题

367

帖子

892

积分

高级会员

Rank: 4

积分
892
QQ
 楼主| 发表于 2017-12-25 09:36:46 来自手机 | 显示全部楼层
还要什么?
forum.php(2).jpg
回复

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2017-12-25 11:01:55 | 显示全部楼层
27楼我回复过,你这样的需要自己获取条件和参数拼接参考
  1.         public static Table queryRE_Test1(String concept, String select, String from, String aggregate, String dataModel, String fnModel, String condition, List range, Boolean distinct, String idColumn,
  2.                         String filter, Integer limit, Integer offset, String columns, String orderBy, String aggregateColumns, Map variables) {
  3.                 String ksql = "select RE_Test.* from RE_Test RE_Test";
  4.                 System.out.println(condition);
  5.                 if (Utils.isNotEmptyString(condition)) {
  6.                         ksql = ksql + " where " + condition;
  7.                 }
  8.                 System.out.println(ksql);
  9.                 Table table = KSQL.select(ksql, variables, "/reappear/reappear/data", null);
  10.                 return table;
  11.         }
复制代码


直接下java的ksql中设置:p,是需要aciton中有p这个参数才可以的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

54

主题

367

帖子

892

积分

高级会员

Rank: 4

积分
892
QQ
 楼主| 发表于 2017-12-26 23:38:06 | 显示全部楼层
非常感谢,前面的问题解决了,但是时间段的过滤怎么做呀?求指点 33.png

然后在statusData的onafterNew事件给默认值如下:
Model.prototype.statusDataAfterNew = function(event){
        for(var i=0;i<event.rows.length; i++){
event.rows.val("starttimee",date.decrease(biz.Util.getSystemDatetime(),5,"d"));
event.rows.val("endtime",date.decrease(biz.Util.getSystemDatetime(),0,"d"));
}
        };

在系统生成的页面是有默认值的,但是在我现在这个页面没有默认值,请问,我改怎么设置默认值,然后用时间段去过滤
回复 支持 反对

使用道具 举报

54

主题

367

帖子

892

积分

高级会员

Rank: 4

积分
892
QQ
 楼主| 发表于 2017-12-26 23:58:23 | 显示全部楼层
默认值解决了把autoload设成false,把autonew也设成true就对了,对于时间段的过滤,我以前是直接在button的点击事件中用如下代码var start=this.comp('start').val();
                var end=this.comp('end').val();
                if(start!==''&&end!==""){
                this.comp("mainData").setFilter("filter0","SO_KHZL.fSHSJ between '"+start+"' and '"+end+"'");
               
               
                }else{
                justep.Util.hint("时间不完整");
                }
        this.comp('mainData').refreshData();

但是,现在不行了,请问我该怎么做?
我的action定义如下:
public static Table cha5(String concept,String idColumn,String select,String from,String condition,List<DataPermission> range,String filter,Boolean distinct,Integer offset,Integer limit,String columns,String orderBy,String aggregate,String aggregateColumns,Map<String, Object> variables,String dataModel,String fnModel){
                 String ksql = "select SO_KHZL.*,SO_WPXQ.*from SO_KHZL SO_KHZL optional  join SO_WPXQ SO_WPXQ on SO_KHZL = SO_WPXQ.fZBID";//需要查询数据的ksql
                 System.out.println(condition);
                 if (Utils.isNotEmptyString(condition)) {
             ksql = ksql + " where " + condition;
     }
     System.out.println(ksql);
                 Table table = KSQL.select(ksql, variables, "/songhuorenwu/songhuo/data", null);//调用平台提供的API执行sql,并返回table
                return table;
请问我在哪里设置时间段过滤?????

回复 支持 反对

使用道具 举报

54

主题

367

帖子

892

积分

高级会员

Rank: 4

积分
892
QQ
 楼主| 发表于 2017-12-27 00:32:47 | 显示全部楼层
现在我设置where如下 22.png

action如下
public static Table cha5(String concept,String idColumn,String select,String from,String condition,List<DataPermission> range,String filter,Boolean distinct,Integer offset,Integer limit,String columns,String orderBy,String aggregate,String aggregateColumns,Map<String, Object> variables,String dataModel,String fnModel){
                 String ksql = "select SO_KHZL.*,SO_WPXQ.*from SO_KHZL SO_KHZL optional  join SO_WPXQ SO_WPXQ on SO_KHZL = SO_WPXQ.fZBID";//需要查询数据的ksql
                 System.out.println(condition);
                 if (Utils.isNotEmptyString(condition)) {
             ksql = ksql + " where " + condition;
     }
     System.out.println(ksql);
                 Table table = KSQL.select(ksql, variables, "/songhuorenwu/songhuo/data", null);//调用平台提供的API执行sql,并返回table
                return table;

在事件中设置如下:
Model.prototype.mainDataRefreshCreateParam = function(event){
var mapParam = new biz.Request.MapParam();
        mapParam.put("p","%"+this.comp("statusData").val("starttime")+"%");
         mapParam.put("a","SO_KHZL.fSHSJ between '"+this.comp("statusData").val("starttimee")+"' and '"+this.comp("statusData").val("endtime")+"'");
        event.param.setMap("variables",mapParam);
      
        };

现在不报错,时间段过滤没反应,请大神指点迷津?

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2017-12-27 09:01:26 | 显示全部楼层
跟condition一样啊,要自己在后端的ksql中拼接上filter参数的值才可以啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

54

主题

367

帖子

892

积分

高级会员

Rank: 4

积分
892
QQ
 楼主| 发表于 2017-12-27 11:16:33 来自手机 | 显示全部楼层
请指导一下具体怎么写,不会写啊!condition和filter怎么拼到一起?谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 23:43 , Processed in 0.058362 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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