当前位置: 代码迷 >> PB >> 菜鸟的PB有关问题,数值区间
  详细解决方案

菜鸟的PB有关问题,数值区间

热度:98   发布时间:2016-04-29 10:19:03.0
初学者的PB问题,数值区间
条件:
 1、有个数据窗口dw_1,其中有money字段(金额,包括整数和小数)
 2、有sle_1,sle_2,两个可编辑文本框,一个搜索按钮(搜索sle_1.text<='money'<=sle_2.text的信息)
 3、有一个按金额排序按钮(使得数据窗口中数据按金额由小到大排序)
问题:
 1、money字段在数据库中设计时,该选择什么格式?(我现在money是varchar 30)(SQL SERVER2000)
 2、搜索按钮怎么写代码?
  我现在的搜索按钮代码是:
  string ls_money
  ls_money='string(money)>="'+string(sle_1.text)+'" and string(money)<="'+string(sle_2.text)+'"'
  dw_1.settransobject(sqlca) 
  dw_1.setfilter(ls_money) 
  dw_1.filter() 
  dw_1.retrieve() 
 3、排序按钮怎么写代码?
  我现在的按金额排序按钮代码是:
  if ddlb_1.text='按金额' then
  dw_1.setsort("money")
  dw_1.sort()
  end if
现在主要问题是,不管是搜索还是排序,其结果只认数值的第一位数,不认数值的实际大小。
请告知解决方法,在下新手。 


------解决方案--------------------
为什么要把money 定义为varchar ? sql2000不是有个money 类型 ?
------解决方案--------------------
1.money型
2.用editmask,不用单行编辑文本框,
DW源中加两参数 where money between :m1 and :m2
dw_1.retrieve(dec(em_1.text),dec(em_2.text))

3.那是字符排序,改在money型就行了!
------解决方案--------------------
1、money在SQL中就可以直接用哪个money。PB中和他对应的可以用 dec。

2、3问题就是因为你用了varchar的缘故,改成money就好了。
------解决方案--------------------

string ls_money 
ls_money="money>="+string(em_1.text)+" and money <="+string(em_2.text)
dw_1.settransobject(sqlca) 
dw_1.retrieve() 
dw_1.setfilter(ls_money) 
dw_1.filter() 

------解决方案--------------------
什么字段对应着什么属性很重要哦!我也初学pb;
能一起学习吗?
qq:763936887

------解决方案--------------------
string ls_money 
ls_money="money>="+dec(em_1.text)+" and money <="+dec(em_2.text) 
dw_1.settransobject(sqlca) 
dw_1.retrieve() 
dw_1.setfilter(ls_money) 
dw_1.filter()
------解决方案--------------------
上面好象写错了。。。

string ls_money 
ls_money="money>="+em_1.text+" and money <="+em_2.text" 
dw_1.settransobject(sqlca) 
dw_1.retrieve() 
dw_1.setfilter(ls_money) 
dw_1.filter()

这样应该可以了.em_1.text虽可以控制输入值只能是数字,可获取它的值时就string的了
------解决方案--------------------
呵呵,那就结贴吧!
  相关解决方案