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

QQ登录

只需一步,快速开始

查看: 2397|回复: 7

[处理中3] 关于baasData新增保存的问题

[复制链接]

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
发表于 2017-5-18 18:01:23 | 显示全部楼层 |阅读模式
本帖最后由 jjsun 于 2017-5-18 19:20 编辑

Webx5版本3.6
使用baasData显示和编辑数据,问题:
1.新增时,想让data中的某些字段有缺省值,通过data.onBeforeNew事件设置,但未生效,什么原因?onBeforeNew事件不是用于新增缺省值设置吗?代码如下
        Model.prototype.mainDataBeforeNew = function(event){
                var options = {
                defaultValues : [{
                                              'id':UUID.createUUID(),
                                              'status':'0',
                                              'addDate':justep.Date.toString(new Date(),'yyyy-MM-dd hh:mm:ss'),
                                              'uId':'8022',
                                              'uName':'测试'
                                         }]
                };
                event.option = options;
        };

onAfterNew事件中进行缺省值设置,也不生效。


2.如何自定义baasData的保存action?保存时需要增加一些逻辑判断,需要修改缺省的保存逻辑,如何实现?


3.baasData新增时有多个字段在前端页面时值为空,在后台的保存逻辑中进行赋值。保存成功后,这些字段的值如何回传到前端(可能是多个字段)?不能通过data.refresh方式,因为只需要回传该新增行的多个字段的值即可,新增输入在一个单独页面中。


4.baasData对应的保存action中有一些逻辑判断,如果不符合约定,将不能保存。这种不能保存的原因或者保存失败的错误提示信息,如何返回前端显示?
5.baasServer中自定义action中,如何获取数据库连接池及进行数据库的读写操作?提供个案例参考。可以使用类似BIZserver中的ksql等?






发表于 2017-5-19 10:09:41 | 显示全部楼层
1.
  1.         Model.prototype.orderDataBeforeNew = function(event){
  2.               var   defaultValues = [{
  3.                                               'fID':'123',
  4.                                               'fContent':'测试'
  5.                                          }]
  6.              event.option.defaultValues = defaultValues;
  7.         };
复制代码

本地测试!这样写就可以了!

2. 建议调试看一下平台的代码:http://docs.wex5.com/debug-baas-platform-in-the-code/
   找到保存逻辑的实现!然后 拷贝 参考它的代码实现,自定义action 中,获取前端传过来的 table对象,对table解析 是否是新增状态,然后添加你的逻辑就行了!

3. 那你能不能这样,先调用后端action ,获取这几个字段的值,然后再执行新增数据操作,newData 的时候将值传递进来!!  保存的时候再将值 真正的  新增到数据库中!

4.data组件的规则中设置!data上右键编辑规则,可以设置各种规则,比如只读,必填能!关于符不符合输入规范,可以设置约束规则,如果判断复杂,约束规则中绑定一个自定义js方法!将当前行传递进去,,计算后return true 或 false 即可!

约束规则提示里面写提示信息

5.你是指  自定义sql语句吗??参考:http://docs.wex5.com/wex5-server-question-list-2012/
Connection conn = context.getConnection(库名);

http://docs.wex5.com/wex5-server-question-list-2017/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-5-19 10:44:09 | 显示全部楼层
liangyongfei 发表于 2017-5-19 10:09
1.
本地测试!这样写就可以了!

第4个问题,通过规则的方式显示错误提示,不能完全满足需求,还是希望在后台的保存动作中处理。如果想在后台保存逻辑中返回错误时,前端如何提示?

回复 支持 反对

使用道具 举报

发表于 2017-5-19 11:41:57 | 显示全部楼层
jjsun 发表于 2017-5-19 10:44
第4个问题,通过规则的方式显示错误提示,不能完全满足需求,还是希望在后台的保存动作中处理。如果想在 ...

后台抛出runtime 异常就可以了
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-5-19 18:13:39 | 显示全部楼层
本帖最后由 jjsun 于 2017-5-22 09:35 编辑
liangyongfei 发表于 2017-5-19 11:41
后台抛出runtime 异常就可以了

baasData定义了一些规则,如非空等,使用系统缺省的保存,当不满足规则时,保存时会提示,如xx不能为空等。现在使用自定义保存,即接管data.onCustomSave事件,当不满足规则时,如何弹出提示信息?现在是浏览器控制台中显示规则错误,但页面上没有提示
回复 支持 反对

使用道具 举报

发表于 2017-5-22 09:39:16 | 显示全部楼层
jjsun 发表于 2017-5-19 18:13
baasData定义了一些规则,如非空等,使用系统缺省的保存,当不满足规则时,保存时会提示,如xx不能为空等 ...

默认的错误弹出框,你没修改过代码吧
http://doc.wex5.com/wex5-ui-question-list-0002/
http://docs.wex5.com/wex5-ui-question-list-2033/

如果后台抛出异常,这两个地方应该就可以弹出的错误提示信息!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-5-22 09:44:21 | 显示全部楼层
liangyongfei 发表于 2017-5-22 09:39
默认的错误弹出框,你没修改过代码吧
http://doc.wex5.com/wex5-ui-question-list-0002/
http://docs.wex ...

没有修改任何代码,仅仅是增加data.oncustomSave事件,接管保存逻辑。不是要更改错误提示框类型,而是在oncustemSave事件中调用baas.sendRequest访问后台自定义saveAction保存数据。因为是自定义的saveaction,所以通过sendRequest 访问了。在这种情况下,没有弹出 规则校验失败的提示框?
回复 支持 反对

使用道具 举报

发表于 2017-5-22 13:19:45 | 显示全部楼层
jjsun 发表于 2017-5-22 09:44
没有修改任何代码,仅仅是增加data.oncustomSave事件,接管保存逻辑。不是要更改错误提示框类型,而是在o ...

可以自己写代码弹出
  1. //判断是否违反约束并抛出错误异常
  2. var data = this.comp('data');
  3. var isValid = data.isValid();
  4. if(!isValid){
  5.     throw new Error (data.getInvalidInfo());
  6. }
复制代码


只要throw new Error ('错误信息');  就能弹出错误提示框的!本地测试没问题!
如果你的版本不能弹出,建议重新解压最新版本试试吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-10 17:58 , Processed in 0.067843 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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