天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 4178|回复: 17

下拉框绑定数据

[复制链接]
eton 发表于 2012-1-13 11:51:42 | 显示全部楼层 |阅读模式
本帖最后由 irene 于 2012-1-30 17:49 编辑

表A有两个字段,名称与类别,其中类别是是已定义好的了。
我现在的问题是在下拉框中绑定这个表的数据时无法只绑定其中某一个类别的内容,都是全表的内容一起读取出来。
另外一个问题就是绑定时是否可以按名称的字母先后来排序?
shary 发表于 2012-1-13 12:10:22 | 显示全部楼层
您好,关于您的第一个问题能否将您的脚本贴出来看下是否正确。
第二个问题您需要插入数据之前用sql语句进行排序。
 楼主| eton 发表于 2012-1-13 14:46:07 | 显示全部楼层
回复 2# shary


    var opts = createOptions();

var where = " and class = 'A'"; (这一句如果不加上 and 这个单词的话整个表单会出不来)

var dql = "$formname='Test_A'" + where;


var datas = queryByDQL(dql);

if (datas != null && datas.size() > 0) {

    for (var iter = datas.iterator(); iter.hasNext(); ) {

        var doc = iter.next();

        opts.add(doc.getItemValueAsString("Name"), doc.getItemValueAsString("Name"));

    }

}

opts;


另外第二个问题可否给个例子我呢???因为我不知道那个排序的功能要如何加到SQL里
shary 发表于 2012-1-13 15:09:32 | 显示全部楼层
您好,第一个问题我看您的脚本没有什么问题。请问Test_A是您要查询的表单名全称吗?Name是您表单的字段名吗?按照正常情况下拉框中只会显示Name字段的值的。
第二个问题刚刚仔细看了下您是想您的名字是中文但是想想根据他的第一个字母排序。目前平台没有这个功能。建议您一种处理方式。用一个数据字段去统计。其中两个字段:一个名称的中文。一个其对应的拼音。再用sql的方式查询并进行排序。
 楼主| eton 发表于 2012-1-13 15:15:36 | 显示全部楼层
本帖最后由 eton 于 2012-1-13 15:18 编辑

回复 4# shary


    第一个问题:读取的数据是没问题的,但是问题是我想读取出来的是类别为A的内容,但结果是不但A的内容出来了,类别B和C也跟着一起出来,那个class = 'A' 这个条件不起作用


第二个问题保存的资料是英文的,所以我才问能不能按字母的先后(比如:AA,AB ,DD 这样的顺序)加载到下拉框里。

第二个问题是因为我加数据时有可能不是按字母先后来加的,比如我加了AA BC  DD 然后又加了个AB,如果能实现的话就可以把AB放到AA 后面了
shary 发表于 2012-1-13 15:26:21 | 显示全部楼层
您好,请问您的class = 'A' 条件是什么意思。
第二个问题:请sql查询的时候加上order by  字段名。类似:var sql ="select * from tlk_a  order by 字段一";
 楼主| eton 发表于 2012-1-13 15:39:26 | 显示全部楼层
回复 6# shary


    表'Test_A' 里面有两个字段class 和 name 其中class在表单里是一个下拉框,选项有ABCD四项,然后我在这个表加了N条数据,分别属于这四项的,
然后在另一个表单里有4个下拉框,就是分别加载属于ABCD这四项的数据,但是这四个下拉框得到的数据都一样,就是表'Test_A'的全部数据。条件class='A'没有起到作用,

这样说你能明白我的意思吗???
shary 发表于 2012-1-13 16:15:58 | 显示全部楼层
您好,您的字段名别用这种关键字试一下。
 楼主| eton 发表于 2012-1-13 16:55:45 | 显示全部楼层
回复 8# shary


    var opts=createOptions();
var sql = "select *  from TLK_Test_A Where ITEM_BClass = 'A' order by ITEM_BName";
var datas = queryBySQL(sql);
for (var iter = datas.iterator(); iter.hasNext();) {
    var dept = iter.next();
   
    opts.add(doc.getItemValueAsString("ITEM_BName"),doc.getItemValueAsString("ITEM_BName"));
}

opts;


我改了字段名,不过现在连表单都出不来,请问是怎么回事呢???

我试写了DQL
var opts=createOptions();

var where = " and BClass = 'A' order by BName"; (如果这里不加上后面 order by BName 进行排序的话就可以拿到正确的数据了,但是如果加上去也是整个表单都出不来)

var dql = "$formname='Test_A" + where;


var datas  =queryByDQL(dql);

if(datas!=null && datas.size()>0){

   for(var iter = datas.iterator();iter.hasNext();){

        var doc = iter.next();

    opts.add(doc.getItemValueAsString("BName"),doc.getItemValueAsString("BName"));

   }

}

opts;
shary 发表于 2012-1-13 17:00:28 | 显示全部楼层
.这么纠结的。你用sql的方式吧。类似:
var sql="select * from tlk_a";
然后用println(sql);打印sql语句到数据库客户端看能否正常查询出数据

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 21:12

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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