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

QQ登录

只需一步,快速开始

楼主: lmk123

[结贴] Bex5中的离线功能

[复制链接]

86

主题

407

帖子

1138

积分

金牌会员

Rank: 6Rank: 6

积分
1138
QQ
 楼主| 发表于 2018-12-11 15:52:50 | 显示全部楼层
jishuang 发表于 2018-12-11 11:57
你要新增数据,或者对从biz层获取的数据进行编辑才可以保存啊

我将行设置为编辑状态可以保存,在websql中可以查到data.setRowState (row, "edit");
但是我在手机中测试就保存不了,两个有什么区别吗?
this.database = window.openDatabase("X5_DEMO_DB", null, null, -1);//可以查看Websql数据
this.database = window.sqlitePlugin.openDatabase({name: 'X5_DEMO_DB', location: 'default'});//手机端
回复 支持 反对

使用道具 举报

86

主题

407

帖子

1138

积分

金牌会员

Rank: 6Rank: 6

积分
1138
QQ
 楼主| 发表于 2018-12-12 10:14:54 | 显示全部楼层
lmk123 发表于 2018-12-11 15:52
我将行设置为编辑状态可以保存,在websql中可以查到data.setRowState (row, "edit");
但是我在手机中测试 ...

请问一下,我在websql中测试sqlite保存,我将row的状态设置成edit就可以保存了,在手机端测试每次保存都不成功,代码如下所示:
Model.prototype.mainDataCustomSave = function(event){debugger;
                // 标记当前保存是异步执行的
//                this.demoDB = DemoDB.getInstance();
//                this.demoDB.initData();
//                var flag = this.button999Click(event);
//                alert(flag);
//                if(flag){
//                        
//                }
//                else{
                event.async = true;

                var db = this.demoDB.getDatabase();
                var data = event.source;
                var row  = data.getCurrentRow();
                alert(row.val("workOrder"));
//                data.setRowState (row, data.STATE.EDIT);
//                data.setRowState (row, "edit");
                data.setRowState (row, "new");
                data.set("isDelete",0);
                data.isValid(false);
                SqliteUtil.saveData(db, data, "zh_workorder", null, function(res) {
                        // 异步执行模式下,保存成功后必须执行doSaveAfter
                        alert("保存成功"+res.rows.length);
                        data.doSaveAfter(true, event.options);
                        alert("success");
                }, function(msg) {
                        alert(msg);
                        data.doSaveAfter(false, event.options);
                });
              this.testQuery(event);
};
回复 支持 反对

使用道具 举报

86

主题

407

帖子

1138

积分

金牌会员

Rank: 6Rank: 6

积分
1138
QQ
 楼主| 发表于 2018-12-12 10:17:32 | 显示全部楼层
lmk123 发表于 2018-12-12 10:14
请问一下,我在websql中测试sqlite保存,我将row的状态设置成edit就可以保存了,在手机端测试每次保存都不 ...

//执行的时候每次res.rows.length的长度为0,也没有保存上,请问怎么解决呀       
Model.prototype.testQuery = function(event){debugger;       
                this.demoDB = DemoDB.getInstance();
                this.demoDB.initData();
                        // 标记当前刷新是异步执行的
                event.async = true;

                var db = this.demoDB.getDatabase();
                var data = event.source;

                var append = event.options && event.options.append; // 是否数据追加模式
//                var limit = event.limit; // 分页行数
//                var offset = event.offset; // 分页偏移
               
                var limit = 20;
                var offset = 0;
                var length = data.datas.latestValue.length;
//                if(0 < length){
//                 var  rowid = data.datas.latestValue[0].row.zh_workorder.value.latestValue;//当前行id
//                        //执行删除功能
//                if(null !==rowid || "" !==rowid || undefined !== rowid){
//                        var query = "DELETE FROM zh_workorder WHERE ZH_DefectList != 0";
//                       
//                        SqliteUtil.executeSql(db,query, [rowid], onSuccess, onError);
////                        SqliteUtil.executeSql(db,query, null, onSuccess, onError);
//                        function onSuccess(res) {
//                                alert("删除已成功");
//                        }function onError(msg) {
//                                alert("msg="+msg);
//                        }
//                         }
//                         
//                        }

                // 执行SQL查询
                SqliteUtil.executeSql(db, "SELECT * FROM zh_workorder LIMIT ? OFFSET ? ", [ limit, offset ], onSuccess, onError);
                function onSuccess(res) {debugger;
                        // 转换返回数据结果
                        var table = SqliteUtil.rowsToTable(res.rows);
                        alert("长度为="+res.rows.length);
                        if (offset == 0) {
                                // 如果偏移为零则表明加载第一页,需要在Table中提供总行数,用于分页计算
                                SqliteUtil.executeSql(db, "SELECT COUNT(*) cnt FROM zh_workorder ", [], function(res) {
                                        SqliteUtil.setTableTotal(table, res.rows.item(0).cnt);
//                                        doRefreshData();
                                });
                        } else {
//                                doRefreshData();
                        }
                        function doRefreshData() {
                                data.loadData(table, append);
                                // 异步执行模式下,加载数据后必须执行doRefreshAfter
                                data.doRefreshAfter(true, event.options);
                        }
                }
                function onError(msg) {
                        data.doRefreshAfter(false, event.options);
                }
        };
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2018-12-12 11:33:05 | 显示全部楼层
data的保存事件汇总加调试看看执行了吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

86

主题

407

帖子

1138

积分

金牌会员

Rank: 6Rank: 6

积分
1138
QQ
 楼主| 发表于 2019-1-4 08:45:00 | 显示全部楼层
jishuang 发表于 2018-12-12 11:33
data的保存事件汇总加调试看看执行了吗?

问题已经解决,谢谢您了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 16:33 , Processed in 0.050556 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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