清晨有雨 发表于 2006-5-13 15:49:54

PB中有关ddlb和datastore的小问题

<div class="f14 B wr">版本:pb8</div><div class="wr"><span class="gray"></span>&nbsp;</div><div class="wr f14">我想用三个ddlb控件来实现大中小分类的选定: <br/>用户实际使用时,在ddlb_1中,从11,12,...,20选定一个(大类编号) <br/>比如12 <br/>然后点击ddlb_2时,需要显示1211,1212,1213,...1299,然后从中选一个(中类编号) <br/>比如选择1211 <br/>... <br/>最后得到分类代码(比如说121156),再对其进行操作 <br/><br/>现在我在ddlb_1的constructor事件中建立了datastore--ldt_1,实现了点击ddlb_1,列出相应的编号 <br/>但处理ddlb_2时遇到了困难:我在ddlb_2中建了datastore--ldt_2,constructor事件的代码如下: <br/>string tmp_a <br/><br/>tmp_a=Left(ddlb_1.text,2) <br/>//messagebox("",tmp_a) <br/>Datastore ldt_2 <br/>ldt_2 = Create Datastore <br/>ldt_2.Dataobject = "d_category_b" <br/>ldt_2.SetTransObject(SQLCA) <br/>ldt_2.Retrieve(tmp_a) <br/>Long ll_row,ll_total <br/>ll_Total = ldt_2.RowCount() <br/>If ll_Total&lt;=0 Then <br/>Destroy(ldt_2) <br/>Return <br/>End If <br/>For ll_Row = 1 To ll_Total <br/>This.AddItem(ldt_2.GetItemString(ll_row,1)+" "+ldt_2.GetItemString(ll_row,2)) <br/>End For <br/>Destroy(ldt_2) <br/><br/>但点击ddlb_1选择某编号后,点击ddlb_2无法列出预想的中类编号. <br/>我试着把tmp_a=Left(ddlb_1.text,2)改成tmp_a='12',或者把ldt_2.Retrieve(tmp_a)改成ldt_2.Retrieve('12'),都可以在ddlb_2下列出 <br/><br/>又尝试加了句messagebox("",tmp_a),结果是运行即弹出对话框(无提示) <br/><br/>请高手指点问题出在哪里呢? <br/>谢谢!</div>

delstat 发表于 2006-5-19 15:05:53

For ll_Row = 1 To ll_Total <br/>This.AddItem(ldt_2.GetItemString(ll_row,1)+" "+ldt_2.GetItemString(ll_row,2)) <br/>End For <br/><br/>中,ldt_2的 datawindow有两列,两列分别对应什么?<br/>因为你是在constructor事件里写的,你在写第二个ddlb的时候,第一个ddlb肯定没有选择吧。<br/>没有选择,它哪里来的值?<br/><br/>建议在第一个ddlb的constructor事件里加上给自己赋值的语句试试。

delstat 发表于 2006-5-19 15:05:53

For ll_Row = 1 To ll_Total <br/>This.AddItem(ldt_2.GetItemString(ll_row,1)+" "+ldt_2.GetItemString(ll_row,2)) <br/>End For <br/><br/>中,ldt_2的 datawindow有两列,两列分别对应什么?<br/>因为你是在constructor事件里写的,你在写第二个ddlb的时候,第一个ddlb肯定没有选择吧。<br/>没有选择,它哪里来的值?<br/><br/>建议在第一个ddlb的constructor事件里加上给自己赋值的语句试试。

delstat 发表于 2006-5-19 15:05:53

<p>不小心多点了几次。<br/><br/>也可以将代码初始化放在selectionchanged事件里</p>
[此贴子已经被作者于2006-5-19 15:09:02编辑过]

bluery 发表于 2006-5-23 10:09:46

<p>谢谢,后来我试了试放到selectionchanged中,就可以了</p><p>然后有调试了好几次,弄得乱七八糟的,功能倒是实现了,估计效率很低...呵呵</p><p>看来得重新系统的学习一下~</p>

阿辉 发表于 2006-5-24 17:15:19

<p>建议你不要用三个ddlb做</p><p>有两个建议:</p><p>1、用一个数据窗口里放三个下拉子数据窗口解决。下拉子数据窗口的好处是可以很方便的设置显示值、代码值,并且很方便地得到代码值。</p><p>2、用一个弹出窗口加一个树型列表框和一个数据存储做。</p>
页: [1]
查看完整版本: PB中有关ddlb和datastore的小问题

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com