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

QQ登录

只需一步,快速开始

查看: 10638|回复: 21

[结贴] 自定义动作如何做 资料那里找

[复制链接]

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
发表于 2014-10-9 14:13:16 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
网站上那个自定义动作的 视频下载  200多m,只有2分钟的视频
垃圾!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
眼见公司要求的时间已经到了,因为一个group by的问题耽误了1天多了
http://bbs.justep.com/forum.php?mod=viewthread&tid=54836 这个帖子看了,没看懂,还在看
求助是否有其他的资料,请指教

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2014-10-9 14:21:07 | 显示全部楼层
恳求帮助,实在没招了!!!!!!1
按照帖子的说明
1.生成一个acction
2.保存acction
3.点击生成代码
在代码中生成如下
import java.math.*;
import java.sql.*;
import java.util.*;
import org.dom4j.*;
import com.justep.system.data.*;

public class Caiwufenxi {

public static void queryBalanceSheet1Actionziji(String ksql,Map variables,String dataModel,String fnModel){
  
}

public static void queryBalanceSheet1Action1(String concept,String select,String from,String aggregate,String dataModel,String fnModel,String condition,List range,Boolean distinct,String idColumn,String filter,Integer limit,Integer offset,String columns,String orderBy,String aggregateColumns,Map variables){
  
}
}


这段代码和下面帖子里面 简单例子代码怎么结合到一起啊
http://bbs.justep.com/forum.php?mod=viewthread&tid=54836这个帖子中的代码
        public static Table queryER_WPXX1(String concept,String select,String from,String aggregate,String dataModel,
                        String fnModel,String condition,List range,Boolean distinct,String idColumn,String filter,Integer limit,
                        Integer offset,String columns,String orderBy,String aggregateColumns,Map<String, Object> variables){
                //将UI传过来的过滤条件放入ksql
                String where = "";
                if(filter != null && !"".equals(filter)){
                        where = " where " + filter;
                }
                String sql = " from ER_WPXX ER_WPXX " + where + " group by ER_WPXX.fWPMC";
                //计算出总记录数
                int cnt = 0;
                Table tCount = KSQL.select("select count(a.fWPMC) as cnt from (select ER_WPXX.fWPMC " + sql + ") a", variables, dataModel, null);
                Iterator<Row> it1 = tCount.iterator();
                if(it1.hasNext()){
                    Row r = it1.next();
                        cnt = r.getInt("cnt");
                }        
                //加上offset和limit实现分页
                Table table = KSQL.select("select ER_WPXX.fWPMC,sum(ER_WPXX.fGG) as fGG " + sql + " limit "+Integer.toString(offset)+","+Integer.toString(limit), variables, dataModel, null);
                //不需要设置主键
                //table.getProperties().put(Table.PROP_NAME_ROWID, "ER_WPXX");
                //设置总记录数
                table.getProperties().put(Table.PROP_DB_COUNT, cnt);
                return table;
        }



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35949
发表于 2014-10-9 14:41:22 | 显示全部楼层
把java中的返回类型void改为Table
然后在方法中参考下面的,把sql中表名、字段名改为自己的
把ksql中的概念名、关系名改为自己的
public static Table queryBalanceSheet1Action1(String concept,String select,String from,String aggregate,String dataModel,String fnModel,String condition,List range,Boolean distinct,String idColumn,String filter,Integer limit,Integer offset,String columns,String orderBy,String aggregateColumns,Map variables){
   //将UI传过来的过滤条件放入ksql
                String where = "";
                if(filter != null && !"".equals(filter)){
                        where = " where " + filter;
                }
                String sql = " from ER_WPXX ER_WPXX " + where + " group by ER_WPXX.fWPMC";
                //计算出总记录数
                int cnt = 0;
                Table tCount = KSQL.select("select count(a.fWPMC) as cnt from (select ER_WPXX.fWPMC " + sql + ") a", variables, dataModel, null);
                Iterator<Row> it1 = tCount.iterator();
                if(it1.hasNext()){
                    Row r = it1.next();
                        cnt = r.getInt("cnt");
                }        
                //加上offset和limit实现分页
                Table table = KSQL.select("select ER_WPXX.fWPMC,sum(ER_WPXX.fGG) as fGG " + sql + " limit "+Integer.toString(offset)+","+Integer.toString(limit), variables, dataModel, null);
                //不需要设置主键
                //table.getProperties().put(Table.PROP_NAME_ROWID, "ER_WPXX");
                //设置总记录数
                table.getProperties().put(Table.PROP_DB_COUNT, cnt);
                return table;
}
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2014-10-9 14:52:02 | 显示全部楼层
本帖最后由 wukongsky 于 2014-10-9 15:00 编辑
jishuang 发表于 2014-10-9 14:41
把java中的返回类型void改为Table
然后在方法中参考下面的,把sql中表名、字段名改为自己的
把ksql中的概念 ...


这段代码里面到时有了 gorup by 了
但是求和的代码在哪里啊
是不是得在  
String sql = " from ER_WPXX ER_WPXX " + where + " group by ER_WPXX.fWPMC";
这个代码面自己添加啊

还是在acction的 设计界面的  select 属性里面添加啊

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35949
发表于 2014-10-9 15:17:00 | 显示全部楼层
你的不用这么麻烦,这个是重写queryAction,如果只是自定义action参考《X5.2.7快速开发指南.pdf》第4章4.5.2小节


sql中在什么地方写sum是取决与自己的具体需求的,where条件后group by 然后进行sum就可以,这个是sql标准的/BIZ/demo/report/logic/code/dsrc/ChartProcedure.java中就有
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2014-10-9 15:25:42 | 显示全部楼层
本帖最后由 wukongsky 于 2014-10-9 15:26 编辑
jishuang 发表于 2014-10-9 15:17
你的不用这么麻烦,这个是重写queryAction,如果只是自定义action参考《X5.2.7快速开发指南.pdf》第4章4.5. ...


我想  实现汇总 select  sum(字段a)  from  表b    group  by   字段c       我应该怎么做啊
参考快速指南没看到怎么做汇总


回复 支持 反对

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2014-10-9 15:49:33 | 显示全部楼层
本帖最后由 wukongsky 于 2014-10-9 16:06 编辑

在acction新建acction
1.添加动作
2.点击 生成按钮
3.保存
4.点击代买  修改了例子的代码
import java.math.*;
import java.sql.*;
import java.util.*;
import org.dom4j.*;
import com.justep.system.data.*;
public class Caiwufenxi {
public static Table newAction_0(String concept,String select,String from,String aggregate,String dataModel,String fnModel,String condition,List range,Boolean distinct,String idColumn,String filter,Integer limit,Integer offset,String columns,String orderBy,String aggregateColumns,Map variables){
    String where = "";
        if(filter != null && !"".equals(filter)){
                where = " where " + filter;
        }
        String sql = " select count(BalanceSheet.CalculateAmount)from BalanceSheet BalanceSheet " + where + " group by BalanceSheet.YearMonth";
        //计算出总记录数
        int cnt = 0;
        Table tCount = KSQL.select("select count(a.CalculateAmount) as cnt from (select BalanceSheet.CalculateAmount " + sql + ") a", variables, dataModel, null);
        Iterator<Row> it1 = tCount.iterator();
        if(it1.hasNext()){
            Row r = it1.next();
                cnt = r.getInt("cnt");
        }        
        //加上offset和limit实现分页
        Table table = KSQL.select("select BalanceSheet.CalculateAmount,sum(BalanceSheet.CalculateAmount) as fGG " + sql + " limit "+Integer.toString(offset)+","+Integer.toString(limit), variables, dataModel, null);
        //不需要设置主键
        //table.getProperties().put(Table.PROP_NAME_ROWID, "ER_WPXX");
        //设置总记录数
        table.getProperties().put(Table.PROP_DB_COUNT, cnt);
        return table;
}
}

控制台报错

2014-10-09 16:03:31 开始-WINDOW生成中间文件: /UI/juecefenxi/caiwufenxi/process/fuzhan/mainActivity.w
2014-10-09 16:03:31 结束-WINDOW生成中间文件: /UI/juecefenxi/caiwufenxi/process/fuzhan/mainActivity.w
2014-10-09 16:03:31 开始-中间文件生成缓存文件: /UI/juecefenxi/caiwufenxi/process/fuzhan/mainActivity.w
2014-10-09 16:03:31 结束-中间文件生成缓存文件: /UI/juecefenxi/caiwufenxi/process/fuzhan/mainActivity.w
2014-10-09 16:03:33 action:<?xml version="1.0" encoding="UTF-8"?>
<action direct-execute="true" process="/juecefenxi/caiwufenxi/process/fuzhan/fuzhanProcess" activity="mainActivity" action-flag="__action_0__" executor="" execute-context="" name="newAction_0"><parameters xmlns:xbiz="
http://www.justep.com/xbiz#"></parameters></action>
java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at com.justep.system.action.Engine.invokeActions(Native Method)
at com.justep.system.action.Engine.invokeActions(Unknown Source)
at com.justep.business.server.BusinessServer.doAction(Unknown Source)
at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
at com.justep.business.server.BusinessServer.excute(Unknown Source)
at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
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)
[ERROR] 2014-10-09 16:03:33,173 com.justep.report.controller.DataController - 报表数据获取失败
执行Action出错, wrong number of arguments
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: 执行Action出错, wrong number of arguments
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
控制台报错


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35949
发表于 2014-10-9 16:13:32 | 显示全部楼层
5楼已经说了,你的报表action的java代码不用这么复杂
public static Table newAction_0(String dept){
   String sql = "select  sum(字段a)  from  表b    group  by   字段";
   HashMap<String,String> sqlMap = new HashMap<String,String>();
   sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
   return SQL.select(sqlMap,null,"/demo/report/data");
}

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2014-10-9 16:24:16 | 显示全部楼层
jishuang 发表于 2014-10-9 16:13
5楼已经说了,你的报表action的java代码不用这么复杂
public static Table newAction_0(String dept){
   S ...

我的代码
import java.math.*;
import java.sql.*;
import java.util.*;
import org.dom4j.*;
import com.justep.system.data.*;

public class Caiwufenxi {
        public static Table newAction_0(String dept){
                   String sql = "select  count(BalanceSheet.CalculateAmount)  from  BalanceSheet.CalculateAmount    group  by   BalanceSheet.YearMonth";
                   HashMap<String,String> sqlMap = new HashMap<String,String>();
                   sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
                   return SQL.select(sqlMap,null,"/juecefenxi/caiwufenxi/data");
                }

        }


报错
2014-10-09 16:21:46 开始-WINDOW生成中间文件: /UI/juecefenxi/caiwufenxi/process/fuzhan/mainActivity.w
2014-10-09 16:21:46 结束-WINDOW生成中间文件: /UI/juecefenxi/caiwufenxi/process/fuzhan/mainActivity.w
2014-10-09 16:21:46 开始-中间文件生成缓存文件: /UI/juecefenxi/caiwufenxi/process/fuzhan/mainActivity.w
2014-10-09 16:21:46 结束-中间文件生成缓存文件: /UI/juecefenxi/caiwufenxi/process/fuzhan/mainActivity.w
2014-10-09 16:21:47 action:<?xml version="1.0" encoding="UTF-8"?>
<action direct-execute="true" process="/juecefenxi/caiwufenxi/process/fuzhan/fuzhanProcess" activity="mainActivity" action-flag="__action_0__" executor="" execute-context="" name="newAction_0"><parameters xmlns:xbiz="http://www.justep.com/xbiz#"></parameters></action>
com.justep.exception.BusinessException: 编码: JUSTEP151044; 提示: 编译模块"/juecefenxi/caiwufenxi/logic/code"中的类"Caiwufenxi"出错
C:\X5.2.7-ent-small\model\BIZ\juecefenxi\caiwufenxi\logic\code\dsrc\Caiwufenxi.java:11: 找不到符号
符号: 变量 mssql
位置: 类 Caiwufenxi
                   sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
                                                  ^
1 错误

        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.model.impl.ModelImpl$DynamicClassManager.compile(Unknown Source)
        at com.justep.model.impl.ModelImpl$DynamicClassManager.getDynamicClass(Unknown Source)
        at com.justep.model.impl.ModelImpl$DynamicClassManager.getDynamicMethod(Unknown Source)
        at com.justep.model.impl.ModelImpl.getModelMethod(Unknown Source)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        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)
[ERROR] 2014-10-09 16:21:47,893 com.justep.report.controller.DataController - 报表数据获取失败
编译模块"/juecefenxi/caiwufenxi/logic/code"中的类"Caiwufenxi"出错
C:\X5.2.7-ent-small\model\BIZ\juecefenxi\caiwufenxi\logic\code\dsrc\Caiwufenxi.java:11: 找不到符号
符号: 变量 mssql
位置: 类 Caiwufenxi
                   sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
                                                  ^
1 错误

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: 编译模块"/juecefenxi/caiwufenxi/logic/code"中的类"Caiwufenxi"出错
C:\X5.2.7-ent-small\model\BIZ\juecefenxi\caiwufenxi\logic\code\dsrc\Caiwufenxi.java:11: 找不到符号
符号: 变量 mssql
位置: 类 Caiwufenxi
                   sqlMap.put(SQL.DEFAULT_DB_NAME,mssql);
                                                  ^
1 错误

        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




回复 支持 反对

使用道具 举报

146

主题

589

帖子

1642

积分

金牌会员

Rank: 6Rank: 6

积分
1642
QQ
 楼主| 发表于 2014-10-9 16:37:51 | 显示全部楼层
jishuang 发表于 2014-10-9 16:13
5楼已经说了,你的报表action的java代码不用这么复杂
public static Table newAction_0(String dept){
   S ...

另外我还需要在js中利用filter 传递参数,
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 13:52 , Processed in 0.070320 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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