DBGRID中如何这样做?(100分)

  • 主题发起人 主题发起人 Jack1
  • 开始时间 开始时间
J

Jack1

Unregistered / Unconfirmed
GUEST, unregistred user!
我接着上一个关于DBGRID的问题。我的思路是这样,我想在做一个系统,当我
查询出数据时,将数据放入DBGRID。进入DBGRID的产品编码单元后输入产品编码的部分数值,双点会出现以输入字符开头的那些产品的编码的列表框。所以
我认为需要定义选择的单元的坐标,找出输入的内容,然后动态地建立PICKLIST用于选择,不知这样如何?
 
当前的field可以由selectedfield得到.不需要定义选择的单元的坐标.


 
不需要动态地建立PICKLIST用于选择,建立一个PICKLIST,把他移到正选择的
单元上(top.left),根据列的不同改变PICKLIST的内容即可。
vb中"可编辑"的flexgrid就是这么干的,但他用的是edit控件+flexgrid
 
那请告诉我怎么样取到单元格里的内容?
 
方法一:

假设dbgrid和yourttable控件连接。
用dbcombobox可否,dbgrid.SelectedIndex表示当前列,
在cellenter中移动combobox,然后把focus放在combobox上
用户在combobox上有输入时,
在combobox的dbclick写下面
的东西:
1)tquery取产品编码,tquery.sql为:select 产品编码
from yourtable where left(产品编码,2)=left(combobox.text,2)....,
2)把记录集值写入combobox的items中。
在combobox的onchange写下面
的东西:
1)用bookmark填好当前位置
2)把combobox的值写入dbgrid.selectedfield中,
3)refresh
4)返回bookmark

.....好象太麻繁,但vb中就是这样作的

方法二:
把一个dbgrid和一个dblistbox并排放在form上
两个高度相同,在dbgrid的ondbclick中同样
根据dbgrid.SelectedIndex和selectedfield
当前value改写连接dblistbox的query的sql
然后把dblistbox的所选值用winapi的wm_char
一个一个送回dbgrid.


方法三:
在深度历险中好象已有类似的控件

 
其实用infopower的TwwDbgrid完全可以实现这个问题
 
ExpressQuantumGrid,酷
Delphi地下城下载
 
接受答案了.
 
后退
顶部