首先说明下,我用的开发环境是PB9.0,oracle10G 数据库。

在平常的开发中,经常用到下拉选择框的录入形式,这样录入即简便快捷,保证不出错,而且可以将复杂的输入内容用较直观的方式代替,比如要输入某地的区号,很多人往往不知道,而我们在数据库里有地区和区号的字典表,这样,我们可以通过数据地区名称来代替输入,真正传参时传递区号。PB9.0也提供了这样的功能下拉列表,实现起来比较简单,但是不掌握基本做法,还是状况百出。这篇文章详细介绍下来列表的实现方法。

首先新建一个数据窗口,我们命名为d_table,创建方法不再赘述,包含一个字段bonusAmount,而我们希望此字段是通过下拉列表实现的,那么再新建一个dataWindow,作为bouns_amount下来列表的数据来源,命名为dddw_table,包含Bonus_amount和emp_id字段。如图:

接下来,将d_table数据窗口的header拉到最顶端,选中detail行的bonus_amount字段,在右边属性视图中选择edit选项卡,将style type 选择dropdownDW,勾选always show arrow和Autoretrieve,点击DataWindow后面的三点按钮,选择dddw_table,然后再Display Colume(显示选项)选择bonusAmount,Date Column(实际传参选项)选择emp_id如下图所示:

然后新建一个窗口w_mian,在窗口中穿件一个数据控件dw_1,跟d_table关联。W_main 的open事件中写:

dw_1.settransobject(sqlca)

dw_1.retrieve()

这样,打开窗口之后应该就可以点击下拉数据,实现数据输入。很多人写的教程到这里就结束了,我刚开始的时候也是按照别人写的步骤一步一步操作,但是没有达到我想要的结果。研究了一个下午,还有最重要的一步。要将d_table的bonusAmount字段的tab值设为不为零的其他值,不然下来三角没有启用,切记。如下图:

到此为止,大功告成。