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

QQ登录

只需一步,快速开始

查看: 13471|回复: 25

[结贴] 如何把(对话框——列表多选)选择后的值传到数据库中

[复制链接]

41

主题

303

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
发表于 2017-2-14 14:36:32 | 显示全部楼层 |阅读模式
版本: BeX5V3.3 小版本号:
数据库: MySQL 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 8 浏览器:
本帖最后由 lwcompany 于 2017-2-14 14:49 编辑

本人利用系统自带的对话框-》列表多选-》选择值后点击确定,想传到数据库一张表(jtskdw_power)中存储,并想把把第一个主页 选中的值也想存到同一张表中(jtskdw_power),但后台还是无法得到这个数,问题已一个多月了,自已还没解决请大家帮助一下好吗,急!!!
后台jtzjrbb.java
}
/* dwtree\mainActivity.w
  * 更新收款单位权限表
  *  @param fDWBH 单位编号
  * @param fDWMC  单位名称
  * @param fYHBH  用户编号
  * @param fYHMC  用户名称
  * @param fQY    是否启用
  *
  * 返回 值     无
  */

public static void updataSkdwPower(String fDWBH,String fDWMC,String fYHBH,String fYHMC,String fQY){
  System.out.println("111111111111");
  System.out.println(fDWMC);
  if((fDWMC!=null )&&(!fDWMC.equals(""))){
   String fullDCondition = fDWMC +"/%";
   String rang ="select jstkdwspower from GU_JTSKDWS_POWER jstkdwspower where jstkdwspower.fDWMC like '" + fullDCondition+"'";
   //去旧(重复)标记
   String delSql = "delete from GU_JTSKDWS_POWER jstkdwspower where jstkdwspower.fDWMC  in ("+rang+")";
   KSQL.executeUpdate(delSql, null, jtzjrbbModel, null);
   // 插入新标记
   String insertSql ="insert into GU_JTSKDWS_POWER jstkdwspower(jstkdwspower.fDWBH,jstkdwspower.fDWMC,jstkdwspower.fYHBH,jstkdwspower.fYHMC)"+
   "(select jstkdwspower.* from GU_JTSKDWS_POWER jstkdwspower where jstkdwspower.fDWMC  in ("+rang+"))";
   Map<String, Object> param = new HashMap<String, Object>();
   KSQL.executeUpdate(insertSql, param, jtzjrbbModel, null);
  }


41

主题

303

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
 楼主| 发表于 2017-2-14 14:50:37 | 显示全部楼层
前台主表
1-4管理员设置按钮,打开窗口,传收款单位 var options = {"fYHBH" :fYHBH,"fYHMC" :fYHMC
        Model.prototype.managerSetClick = function(event){
    debugger;
      var  fdwbh = this.comp('treeData').getCurrentRow().val("fDWBH");
       var fdwmc = this.comp('treeData').getCurrentRow().val("fDWMC");
       /*if(sname='收款单位名称'){
          alert('请选择一个有效收款单位');
          back;
        }*/
      var fYHBH,fYHMC;
      var dlg = this.comp("dlgManagerSet");
        var options = {
           "fDWBH" :fdwbh,
           "fDWMC" :fdwmc
        };
       dlg.open({
            data : options
        });
      
        debugger;
        };
回复 支持 反对

使用道具 举报

41

主题

303

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
 楼主| 发表于 2017-2-14 14:51:18 | 显示全部楼层
本帖最后由 lwcompany 于 2017-2-14 14:52 编辑

前台打开对话框

Model.prototype.windowReceiverReceive = function(event){
  debugger;
  var rows = event.data;
  
    if(event.data){
    if(event.data.selected){
     this.setSelected(event.data.selected);
    }
   }
  
  debugger;
};
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-2-14 15:21:53 | 显示全部楼层
定义了action,那么就应该在弹出框的返回事件中获取到返回的值调用action,把选择的值传给action啊
你的代码中就没看到获取弹出框的返回值然后调用action的

获取返回值可以在windowDialog的onReceive事件中处理
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

41

主题

303

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
 楼主| 发表于 2017-2-14 19:57:59 | 显示全部楼层
本帖最后由 lwcompany 于 2017-2-14 20:00 编辑

都定义了
//2-1接收选择管理员设置信息,然后传到后台
Model.prototype.dlgManagerSetReceive = function(event){
       debugger;
       var fskdwspower= this.comp("skdwspowerbizData");//收款单位权限,对应栏目管理员dmanager(oa_km_fdmanager;)
       var rows = event.data;
       //得到选中的信息
      
       var response;//后加
       var params = new biz.Request.ActionParam();//后加
       for(var i in rows){
            var fcode = rows.val('sCode');
            var fsname = rows.val('sName');
           var fdwmc = rows.val('fDWMC');
          var fdwbh = rows.val('fDWBH');
            
            fskdwspower.setValue("fYHBH", fcode );
            fskdwspower.setValue("fYHMC", fsname);
            fskdwspower.setValue("fDWMC", fdwmc );
            fskdwspower.setValue("fYHMC", fdwbh);
            //后加
         
            biz.Request.sendBizRequest({
     "context" : this.getContext(),
     "action" : "updataSkdwPower",
     "parameters" : params,
     "callback" : function(callbackData) {
      callbackData.ignoreError = false;
      if (callbackData.state) {
       response = callbackData.response;
      }
    }
   });
       }
    //   var sname = event.data.sName;
     //  var scode = event.data.sCode;
       debugger;
};
            //调用1-2当前收款单位信息
            Model.prototype.grid2RowClick = function(event){
          this.displayCurrentTreeInfo();
        };
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-2-15 09:38:08 | 显示全部楼层
  var params = new biz.Request.ActionParam();//后加你只是定义了action参数并没有给相关的参数赋值啊
参考/UI2/demo/actions/process/invokeAction/mainActivity.w中调用动作——传参中的案例
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

41

主题

303

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
 楼主| 发表于 2017-2-15 23:01:04 | 显示全部楼层
本帖最后由 lwcompany 于 2017-2-15 23:09 编辑

加上了   又修改了
     debugger;
       var fskdwspower= this.comp("skdwspowerbizData");//收款单位权限,对应栏目管理员dmanager(oa_km_fdmanager;)
       var rows = event.data;
       //得到选中的信息
      
       var response;//后加
       var params = new biz.Request.ActionParam();//后加
       for(var i in rows){
            var fcode = rows.val('sCode');
            var fsname = rows.val('sName');
          // var fdwmc = rows.val('fDWMC');
         // var fdwbh = rows.val('fDWBH');
          var  fdwbh = this.comp('treeData').getCurrentRow().val("fDWBH");
             var fdwmc = this.comp('treeData').getCurrentRow().val("fDWMC");
            
            params.setString("fYHMC", fsname);
            params.setString("fYHBH", fcode );
            params.setString("fDWBH", fdwbh);
            params.setString("fDWMC", fdwmc );
            
            fskdwspower.setValue("fYHMC", fsname);
            fskdwspower.setValue("fYHBH", fcode );
            fskdwspower.setValue("fDWBH", fdwbh);
            fskdwspower.setValue("fDWMC", fdwmc );
            
            //后加
         
            biz.Request.sendBizRequest({
     "context" : this.getContext(),
     "action" : "updataSkdwPower",
     "parameters" : params,
     "callback" : function(callbackData) {
      callbackData.ignoreError = false;
      if (callbackData.state) {
       response = callbackData.response;
      }
        }
     });
       }
    //   var sname = event.data.sName;
     //  var scode = event.data.sCode;
       debugger;


回复 支持 反对

使用道具 举报

41

主题

303

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
 楼主| 发表于 2017-2-15 23:10:02 | 显示全部楼层
提示出错
111111111111
永大电梯
2017-02-15 23:04:41 excute stream action, params:{"accept":"application/json","action":"updataSkdwPower","actionFlag":"__action_0__","activity":"mainActivity","contentType":"json","executeContext":"","executor":"","parameters":{"fDWBH":"01001","fDWMC":"永大电梯","fYHBH":"lv","fYHMC":"lv"},"process":"/guojinerp/jtzjrbb/process/zjrbb/jcxx/dwtree/dwtreeProcess"}
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        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.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:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        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:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: delete from GU_JTSKDWS_POWER jstkdwspower where jstkdwspower.fDWMC  in (select jstkdwspower from GU_JTSKDWS_POWER jstkdwspower where jstkdwspower.fDWMC like '永大电梯/%')
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlDelete(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlExecuteUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at Jtzjrbb.updataSkdwPower(Jtzjrbb.java:224)
        ... 27 more
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150039; 提示: 执行sql: DELETE FROM GU_JTSKDWS_POWER  WHERE GU_JTSKDWS_POWER.FDWMC IN (SELECT  GU_JTSKDWS_POWER.fID FROM GU_JTSKDWS_POWER GU_JTSKDWS_POWER  WHERE GU_JTSKDWS_POWER.FDWMC LIKE ?), binds: [永大电梯/%]出错
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.ksql.KSQLUtils.execSqlUpdate(Unknown Source)
        ... 33 more
Caused by: java.sql.SQLException: You can't specify target table 'GU_JTSKDWS_POWER' for update in FROM clause
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2545)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1901)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2113)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2049)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2034)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        ... 34 more
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-2-16 10:24:11 | 显示全部楼层
Caused by: java.sql.SQLException: You can't specify target table 'GU_JTSKDWS_POWER' for update in FROM clause

这个是mysql数据库的标准错误信息,可以到网上查找具体的原因

https://zhidao.baidu.com/questio ... 0in%20FROM%20clause
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

41

主题

303

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
 楼主| 发表于 2017-2-18 15:12:23 | 显示全部楼层
本帖最后由 lwcompany 于 2017-2-20 08:48 编辑
jishuang 发表于 2017-2-16 10:24
Caused by: java.sql.SQLException: You can't specify target table 'GU_JTSKDWS_POWER' for update in FR ...

可以插入最后一条数据,但我想插入多条数据无法插入,愁人呀
前台代码
debugger;
       var fskdwspower= this.comp("skdwspowerbizData");//收款单位权限,对应栏目管理员dmanager(oa_km_fdmanager;)
       var rows = event.data;
       //得到选中的信息
      
       var response;//后加
       var params = new biz.Request.ActionParam();//后加
       for(var i in rows){
            var fcode = rows.val('sCode');
            var fsname = rows.val('sName');
          var  fdwbh = this.comp('treeData').getCurrentRow().val("fDWBH");
             var fdwmc = this.comp('treeData').getCurrentRow().val("fDWMC");
            
            params.setString("fYHMC", fsname);
            params.setString("fYHBH", fcode );
            params.setString("fDWBH", fdwbh);
            params.setString("fDWMC", fdwmc );
            
            fskdwspower.setValue("fYHMC", fsname);
            fskdwspower.setValue("fYHBH", fcode );
            fskdwspower.setValue("fDWBH", fdwbh);
            fskdwspower.setValue("fDWMC", fdwmc );
         
            biz.Request.sendBizRequest({
     "context" : this.getContext(),
     "action" : "updataSkdwPower",
     "parameters" : params,
     "callback" : function(callbackData) {
      callbackData.ignoreError = false;
      if (callbackData.state) {
       response = callbackData.response;
      }
        }
     });
       }
       debugger;

后台只插入了一条数据

后台只插入了一条数据
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 18:01 , Processed in 0.091300 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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