请教DBGrid的问题,急!!!50分(不够再加)

lacy818 2003-10-17 09:47:21
请问怎么在DBGridr的第一列输入编号时自动把名称,规格,数量,单价显示出来,还是用其它控件,多谢帮忙!如下:
------------------------------------------
|编号 | 名称 | 规格 | 数量 | 单价 |
------------------------------------------
|001 | 主板 |Inter845 | 1 | 420 |
-----------------------------------------
| | | | | |
-----------------------------------------

...全文
72 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutian618 2003-12-17
  • 打赏
  • 举报
回复
在第一个字段的OnChange中写事件查出数据啊。

procedure TForm1.Query1Field1Change(Sender: TField);
var
tmp: string;
begin
tmp:=Sender.FieldByName('Field1').AsString;
//去查查询数据。。。
Query1.Edit;
Query1['带出字段1']:=QryTmp.FieldByName('aaa').AsString;
//...
end;
lacy818 2003-12-17
  • 打赏
  • 举报
回复
各位兄弟﹕大家有沒有更好的辦法呀﹗我現在正在做'采購定單'。好急﹗﹗﹗幫幫我﹗
lacy818 2003-12-16
  • 打赏
  • 举报
回复
各位兄弟﹕大家有沒有更好的辦法呀﹗我現在正在做'采購定單'。好急﹗﹗﹗幫幫我﹗
ujjcel 2003-10-23
  • 打赏
  • 举报
回复
怎么没人关心这个问题了,大家不妨说说有什么第三方控件可以实现这样的功能。
hongjg 2003-10-23
  • 打赏
  • 举报
回复
补充一下,用BeforePost我是指在存盘前给冗余字段赋值。
显示的时候还是用LookupField比较好,可以一输入就看到显示效果。说的有点乱,看你的理解了。
hongjg 2003-10-23
  • 打赏
  • 举报
回复
ujjcel() :在表格中定义好LookupField或者计算字段,不用任何设置DBGrid就可以实现了。

不过你如果使用的是冗余字段,而不用LookupField或者计算字段,那就要用自己的代码去实现赋值,用到的事件我想是在BeforePost吧。不提倡这种做法。
herofy 2003-10-21
  • 打赏
  • 举报
回复
在query中加入lookup型的字段,把他用编号和商品信息表连起来就行了
ujjcel 2003-10-21
  • 打赏
  • 举报
回复
我觉得大家的讲法没有切中要害,要是grid中有多行记录怎么办?比如获至100或者不定。
在VFP中和VB中可以实现的功能难道在D中就不能实现吗?
delphi_xizhousheng 2003-10-17
  • 打赏
  • 举报
回复
用SQL简单些吧
select 'fieldname' from table
union
(select fieldname from table)
mzyp2002 2003-10-17
  • 打赏
  • 举报
回复
编号,名称,规格,数量,单价建成一个对照表,设置成QRY1,
然后打开DBGrid后台数据集,右击,'new fields',在出现对话框中输入新建名称代码,不要忘了Field type选中Lookup,接着,在lookup definition设置与QRY1相对应;规格,数量,单价如此反复
hongjg 2003-10-17
  • 打赏
  • 举报
回复
可以考虑 jin_zai(进仔) 的方法用计算字段。
也可以用LookupField。使用字段编辑器,很方便的。
zcfzcf001 2003-10-17
  • 打赏
  • 举报
回复
也就是说,让你的Tedit和你的cell大小一样,镶嵌到dbgrid的第一列里,不就能输入
并且能写事件,并实现你所说的那样功能
zcfzcf001 2003-10-17
  • 打赏
  • 举报
回复
这样的功能我做过,大至的路子是这样的, 你在窗体上放一个Tedit,
然后在Dbgrid里的DBGrid1DrawDataCell重定位Tedit,并显示,
并让其有焦点,在Tedit里输入文本,当回车时处理数据
(可能你还要做些别的处理,才能使它的效里跟你说的一样,此法是可行的
我以前做进销存里就用过)
你按这个方法试试。
jin_zai 2003-10-17
  • 打赏
  • 举报
回复
4、dbgrid就直接引用query1上的字段bianhao和计算字段mingcheng,guige,shuliang,danjia
jin_zai 2003-10-17
  • 打赏
  • 举报
回复
通过计算字段
1、sql语句写成:select bianhao from 表名
2、在邦定的query1上增加计算字段mingcheng,guige,shuliang,danjia
3、在query1的OnCalcFields事件中再用另一个query2通过编号(query1bianhao.value)查询另外四个字段的值,分别符值到计算字段mingcheng,guige,shuliang,danjia中

ujjcel 2003-10-17
  • 打赏
  • 举报
回复
这个功能也是我想知道的,帮你up一下.
lacy818 2003-10-17
  • 打赏
  • 举报
回复
TO: zcfzcf001
如果我要按回车跳到下一行时那就不能实现了。可否有更好的办法!
lacy818 2003-10-17
  • 打赏
  • 举报
回复
非常感谢!

2,495

社区成员

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

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