请问怎么在DBGridr的第一列输入编号时自动把名称,规格,数量,单价显示出来,还是用其它控件,多谢帮忙!如下:
------------------------------------------
|编号 | 名称 | 规格 | 数量 | 单价 |
------------------------------------------
|001 | 主板 |Inter845 | 1 | 420 |
-----------------------------------------
| | | | | |
-----------------------------------------
------------------------------------------
|编号 | 名称 | 规格 | 数量 | 单价 |
------------------------------------------
|001 | 主板 |Inter845 | 1 | 420 |
-----------------------------------------
| | | | | |
-----------------------------------------
1、sql语句写成:select bianhao from 表名
2、在邦定的query1上增加计算字段mingcheng,guige,shuliang,danjia
3、在query1的OnCalcFields事件中再用另一个query2通过编号(query1bianhao.value)查询另外四个字段的值,分别符值到计算字段mingcheng,guige,shuliang,danjia中
然后在Dbgrid里的DBGrid1DrawDataCell重定位Tedit,并显示,
并让其有焦点,在Tedit里输入文本,当回车时处理数据
(可能你还要做些别的处理,才能使它的效里跟你说的一样,此法是可行的
我以前做进销存里就用过)
你按这个方法试试。
并且能写事件,并实现你所说的那样功能
也可以用LookupField。使用字段编辑器,很方便的。
然后打开DBGrid后台数据集,右击,'new fields',在出现对话框中输入新建名称代码,不要忘了Field type选中Lookup,接着,在lookup definition设置与QRY1相对应;规格,数量,单价如此反复
select 'fieldname' from table
union
(select fieldname from table)
如果我要按回车跳到下一行时那就不能实现了。可否有更好的办法!
在VFP中和VB中可以实现的功能难道在D中就不能实现吗?
显示的时候还是用LookupField比较好,可以一输入就看到显示效果。说的有点乱,看你的理解了。
var
tmp: string;
begin
tmp:=Sender.FieldByName('Field1').AsString;
//去查查询数据
Query1.Edit;
Query1['带出字段1']:=QryTmp.FieldByName('aaa').AsString;
//...
end;