hur.cn - 华软网

 热门搜索

用datawindow做组合查询的条件输入,可以吗?

  作者:未知    来源:网络    更新时间:2019/7/30
我想在pb中做组合查询,有好多条件输入框,有text的,有dropdownlistbox的,还能够有checkbox。当这些个框不为空,即表示有条件设定,然后组合这些条件形成sql的where clause。

问:这么多条件设置框(组件),用datawindow最合适,况且另有下拉框(要从子数据窗口中去数据库中的数据),我这个设想可行吗?详细怎么操作?
------华软网友回答------
我现在设计这个datawindow没问题,用freeform形式的。可是我怎么输入条件?是否是也要新增一条空白记录呢?其实这个DW只是用于设置查询条件,与数据库无关,不需要显示数据库的数据,每次查询前还能够清空条件。哪位大哥帮助写整个实现的代码,关头点就能够,谢谢......
------华软网友回复------
给个邮箱来,发个实例给你
------华软网友回复------
xiakai_yh@yahoo.com.cn
顶了.
------华软网友回复------
chencang@163.com 谢谢遇见
------华软网友回复------
PFC 就有这样的例子
------华软网友回复------
To:血仍未冷,那里有PFC的demo啊?能给我发一份吗?chencang@163.com
------华软网友回复------
用外部数据源 增加子数据窗口

constructor:
this.insertrow(0)

datawindowchild ld_child
this.getchild(列名',ld_child)
ld_child.settransobject( sqlca)
ld_child.retrieve( )
ld_child.insertrow(0)
------华软网友回复------
这是个很基础的技巧,下面是不运用数据窗口条件输入的方法,就是放控件:(下面的例子假定数据窗口没有where语句)
string ls_text, ls_sql


ls_sql = " WHERE ( '1' = '1' ) "

ls_text = trim(sle_1.text)
IF Len(ls_text) = 0 THEN ls_text = '默许值'
ls_sql += "AND ( 字段 = '" + ls_text + "' )"

ls_text = trim( ddlb_1.text )
IF Len(ls_text) = 0 THEN ls_text = '默许值'
ls_sql += "AND ( 字段 = '" + ls_text + "' )"

......
---------------------------------------------
最后这个ls_sql就是获得的查询条件了,然后再运用getsqlselect和setsqlselect函数设置数据窗口的数据源
运用数据窗口来条件输入的方法类似,就是先要insertrow(0),然后ls_text取数据窗口字段的值

   

------华软网友回复------
就运用DW,名:dw_query

在窗口open事件里写:
//清空条件设置数据窗口dw_query的内容
long ll_row

dw_query.settransobject(sqlca)
dw_query.retrieve( )

ll_row = dw_query.insertrow(0)
dw_query.scrolltorow(ll_row)
dw_query.setfocus( )

查询按钮click事件:
//条件输入DW的当前行号
int li_currRow

//查询语句条件子串
string ls_sqlString

//获得当前行号
li_currRow = dw_query.getrow( )

//让dw_query条件收集DW accept 编辑控件的内容
dw_query.accepttext( )

//定义一些变量,猎取各个控件中输入的条件,例如:
ls_empno = dw_query.object.empno[li_currRow]

//然后判定条件不为空(“”或null)的就增加到ls_sqlString中
------华软网友回复------
学习      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。