如题。
开发工具:
场景:将数据以列表的格式展示,想根据某一列,对当前展示的所有数据进行升序/降序排列。
问题:1.是否可以定义全局变量,当点击按钮之后改变全局变量的值,然后修改SQL语句,点击第一次,是降序,点击第二次是升序,从而进行判断是升序还是降序;
            2.在1中,每次点击按钮都需要执行SQL语句,但因为数据都已经查询展示出来,那么,是否,有方法,可以直接对这些数据进行操作?
           3.其他方法;

解决方案 »

  1.   

    可通过什么方式来控制动态语句中 “DESC” 的有无呢?就是怎么来实现升序降序?
      

  2.   

    单选钮,复选框都可以,根据这两个的值确定拼布拼接 desc
      

  3.   

    方案1
    单击操作时设置块order_by属性,然后重新查询
    这种实现简单方案2
    块设置为非数据块,查询时使用游标循环向界面赋值
    重新排序时,使用冒泡排序,比较相邻两行,根据需要,互换两记录内容这种实现比较复杂,但是不需要频繁访问数据库方案3
    借助javabin存储数据,使用java代码对数据进行排序,然后将数据刷新到界面上,
    同方案2一样,需要使用非数据块,查询和刷新操作时,代码循环赋值初步就想到这几种,看看其他人还有没有其他思路
      

  4.   

    版主好!第一种方案依旧是需要执行SQL语句的;第二种方案实现方式和我现在手里的例子应该是大同小异,也是非数据块的方式,至于游标,本人刚接触,之后学习学习这个东东;第三种方案好高端很好奇,Java代码是可以写在Form Builder里面吗?以什么形式存在,脚本?jar包?
      

  5.   

    我自己采用了一种笨办法实现了上述需求。
    方案如下:采用两个button按钮,DESC_Button,ASC_Button,第二个按钮设置高度为0;当用户点击DESC_Button按钮时,在WHEN_BUTTON_PRESSED里面,设置自身ITEM高度为0,ASC_Button按钮的高度为正常值14;并且调用自己写的程序单元,拼接SQL语句,'ORDER BY COL_NAME DESC ',(因为我查询之前还有几个需要选择的变量,需要将这几个变量拼接到SQL条件中),执行SQL语句;ASC_Button中代码与此类似,反着来就行。
    优点:便于理解,一看就懂(太LOW了的方法);
    缺点:每次点击都需要执行SQL语句,(多次执行SQL的缺点百度一大堆),毕竟数据已经查出来了,只是需要整理一下展示的顺序,所以正常的操作应该是对已有的数据进行操作,而不是再去数据库里组织;
    本人初次接触,才疏学浅,非数据块的方式对我而言,太过复杂,自学(还没书,没好用的PDF)起来,根本看不懂
    还望有大神,能给些这方面的,好用的学习方式,诸如PDF,网站,帖子,之类的,授人以鱼不如授人以渔嘛~~~
    谢谢@ghx287524027   和 @bw555  两位大大,受益匪浅,谢谢!
      

  6.   

    哈哈,我也是这种方法
    其实最简单的还是版主说的 set_block_property()