Home Page

stevenqin    2017-05-17 16:03:49

如何把数据库的值传给外面的变量

我做一个系统,里面需要从数据库取一个值传道外面作判断.
已开始用app.output给外面一个grid 然后想取grid下面的一个array中的一个项目
发现怎么也取不到里面的值
求教

#1  stevenqin    2017-05-17 17:29:39

简单的解释
A表有个A项目 
外部有特殊逻辑要取得这个值做判断
不过这个值不在画面上显示
用wb.request来调用app.output, app.run  后面的值取得都失败了

#2  stevenqin    2017-05-18 09:38:20

请给一个数据库值做为参数传出来,外面作为使用的例子。
我们现在把他传到外面的grid里面
我们就是模仿request-multi-grid.xwl
里面可以把值传到外面同名的grid
就是
1)
var companyData = app.output('select * from WB_COMPANY', null, true),
  employeeData = app.output('select * from WB_EMPLOYEE', null, true);
app.send({
  text: 'abc',
  num: 123,
  date: new Date(),
  company: companyData,
  employee: employeeData
});
先把值放到company 里面
2)
Wb.request({
  url: 'm?xwl=examples/controls/grid/data-source/get-multi-data',
  success: function(resp) {
    var data = Wb.decode(resp.responseText);
    Wb.setValue(app.viewport1, data);
  }
});
外面调用设定到对应的company的object
但是我怎么去取company下面某个项目的某一行的值呢

#3  stevenqin    2017-05-18 09:42:52

我们用下面的方法根本不可行
Wb.request({
  url: 'm?xwl=examples/controls/grid/data-source/get-multi-data',
  success: function(resp) {
    var data = Wb.decode(resp.responseText);
    Wb.setValue(app.viewport1, data);
  }
});
alert(app.company.getValue());  //alert语句显示的是没有内容

#4  Neptune    2017-05-18 11:47:40

先添加store,
使用app.store.load();
可以在store中进行数据处理

#5  Lazuzu    2017-05-18 20:50:30

var data=Wb.decode(resp.responseText);
data不就是一个JSON了吗?
data.company.rows[0]是第1行
data.company.rows[0].field是第1行的某个字段值
把Cs.log(data)输出到控制台看一下data结构就清楚了

#6  stevenqin    2017-05-19 09:35:23

谢谢指教
我们现在高明白关键是success里面的都是异步的
所以我们有很多不能这么做

#7  Zhao WJ    2017-05-22 07:43:07

同步可以使用async:true,web里面你要做同步?你想过你的用户体验吗?