数据窗口里出现的问题求助!!

wumingxiaocao 2003-09-02 10:07:40
是这样的:
1、我建的数据窗口里有一项,我想让他里面的内容以下拉框的形式显示其中的内容,但是当下拉条里的项多于100项时,就出现错误了,我该怎么办?
2、我的这个数据窗口里有这么三项,科目、章节、知识点,这三者的关系不须多说。我把这三项都以下拉框的形式显示内容,但我发现这样知识点的下拉项太多,很不方便,而且还会出现上面的情况,我想能不能这么办,当我选完了科目后,窗口就自动检索,让章节里不满足条件的项自动隐藏,这样就会大大减少下拉框里的项目。不过我光有这想法,但由于我刚学pb,因而我还没法解决这个问题,望各位高手指教,谢谢!
...全文
25 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
klbt 2003-09-02
  • 打赏
  • 举报
回复
1、建议用下拉式数据窗口。
2、用Retrieve方式过滤数据。
bluerain1980 2003-09-02
  • 打赏
  • 举报
回复
up
dddw代替ddlb
thelazyman 2003-09-02
  • 打赏
  • 举报
回复
使用pb,就应该尽量使用数据窗口,以发挥其强大功能!,
如楼主所碰到的检索过虑问题,使用数据窗口是很方便的
hanps 2003-09-02
  • 打赏
  • 举报
回复
用dddw代替ddlb
在前面的itemchanged事件中 retrieve
jdsnhan 2003-09-02
  • 打赏
  • 举报
回复
同意: freeliu() 的,用dddw代替ddlb
然后根据你选择的内容再次检索以减少数据量。
gcg_cumt 2003-09-02
  • 打赏
  • 举报
回复
如果考虑易用性:

假如下拉数据窗口的数据,过滤后仍然较多,选择将是一件困难的事情。此时采用prain2003(好雨知时节)的方法就有效。如果不多, eastpond(东塘)和 freeliu()都说的正好啊。
freeliu 2003-09-02
  • 打赏
  • 举报
回复
第一个问题,可以用dddw代替ddlb.
第二个问题,在pb中有可供参考的例子。在数据窗类别中的过滤与排序。
prain2003 2003-09-02
  • 打赏
  • 举报
回复
不用下啦数据筐,用下啦数据框做翻译,用弹出窗口选择项目。(可以通过条件筛选)
用下拉框会出现pb中的一个景点问题。
eastpond 2003-09-02
  • 打赏
  • 举报
回复
1、不知道你说的错语是指什么。
2、可以定义三个子数据窗口
做三个子数据窗口,章节根据科目来检索,知识点根据科目,章节来检索
datawindowchild ldwc_科目,ldwc_章节,ldwc_知识点
在dw_1的construter事件中写如下代码:

dw_1.GetChild('科目',ldwc_科目)
ldwc_科目.setTransObject(sqlca)
dw_1.GetChild('章节',ldwc_章节)
ldwc_章节.setTransObject(sqlca)
dw_1.GetChild('知识点',ldwc_知识点)
ldwc_知识点.setTransObject(sqlca)

ldwc_科目.insertrow()
ldwc_章节.insertrow()
ldwc_知识点.insertrow()
dw_1.insertrow()

然后在dw_1的itemchanged事件中写:
choose dwo.name
case '科目'
case '章节'
case '知识点'
end choose


wumingxiaocao 2003-09-02
  • 打赏
  • 举报
回复
对了,我说的错误是指当ddlb里的内容超过100(包括100)项后,我运行就会说数据库有错误。然后我就看见原来ddlb里的项都消失了。
修改:我上面所说的下拉框其实都是ddlb,由于我刚学,所以没注意,叫错了,呵呵!
wumingxiaocao 2003-09-02
  • 打赏
  • 举报
回复
看到大家这么热情帮忙,我真的好感动,在此我再一次向大家表示感谢!!!
workhand 2003-09-02
  • 打赏
  • 举报
回复
知识点用下拉数据窗口,做retrieve参数,选择完科目后,根据科目对知识点retrieve,可以解决你的问题吧。
albert_qingdao 2003-09-02
  • 打赏
  • 举报
回复
同意 prain2003(好雨知时节) 的观点,无论是dddw还是ddlb都有一个经典问题(bug)
liujiaqiang 2003-09-02
  • 打赏
  • 举报
回复
可以定义三个子数据窗口
做三个子数据窗口,章节根据科目来检索,知识点根据科目,章节来检索
datawindowchild ldwc_科目,ldwc_章节,ldwc_知识点
在dw_1的construter事件中写如下代码:

dw_1.GetChild('科目',ldwc_科目)
ldwc_科目.setTransObject(sqlca)
dw_1.GetChild('章节',ldwc_章节)
ldwc_章节.setTransObject(sqlca)
dw_1.GetChild('知识点',ldwc_知识点)
ldwc_知识点.setTransObject(sqlca)

ldwc_科目.insertrow()
ldwc_章节.insertrow()
ldwc_知识点.insertrow()
dw_1.insertrow()

然后在dw_1的itemchanged事件中写:

string ls_condition
choose dwo.name
case '科目'
ls_condition = "章节中的某个字段 Like '%" + date + "'%"
ldwc_章节.setfilter(ls_condition)
ldwc_章节.filter()
case '章节'
ls_condition = "知识点中的某个字段 Like '%" + date + "'%"
ldwc_知识点.setfilter(ls_condition)
ldwc_知识点.filter()
case '知识点'
end choose

这样就可以实现你的愿望了.不过你还的在小结上做些修改.

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧