dbgrid中的column分别是:产品名称,规格,型号,数量,我想录入数据。并且回车后焦点可以下移。(在dbgrid中焦点下移我已解决),但是我想实现另外一个功能就碰到问题:我想在名称中输入代码,产品名称,规格,型号自动跳到相应的格内,焦点移到数量里。
请各位前辈指教!不胜感激!
1、是怎样捕捉产品名称项的回车事件?
2、怎么样自动填进去?
3、焦点怎么样移到数量格内?
(注:有一张代码,名称,规格...表)
请各位前辈指教!不胜感激!
1、是怎样捕捉产品名称项的回车事件?
2、怎么样自动填进去?
3、焦点怎么样移到数量格内?
(注:有一张代码,名称,规格...表)
var
V: Variant;
C: string;
A: String;
begin
V := Table1.Lookup('代码',
[text]),
'名称,规格,型号');
if not (VarType(V) in [varNull]) then
begin
FieldByName('名称').asstring:=v[0];
FieldByName('规格').asstring:=v[1];
FieldByName('型号').asstring:=v[2];
end
////////////////////
if key=#13 then { 判断是按回车键}
begin
with tdbgrid(sender.activecontrol) do //可以用相应的DBGRID名称代替
if selectedindex=0 then //假设0是产品名称的列序号
selectedindex:=3;//假设3是数量的列序号
else
selectedindex:=selectedindex+1 //其他情况就是相当TAB
end;
////////////////////////////////
2.在DBGRID的ColExit内写事件;如下
/////////////////////////////////
if dbgrid1.selectedindex=0 then //名称
begin
dbgrid1.Fields[4].AsString:= ; //规格(值自己从相关的表取)
dbgrid1.Fields[5].AsString:= ;//型号
end;
////////////////////////////////////
3.问题1中已经解决这个问题。
onsettext是那个事件?
谢谢!
你参考下面的例子作一下修改
onsettext事件中
首先在table1 的 fieldEditor中选择中相应的字段
在object inspector中Events中
procedure TForm1.Button1Click(Sender: TObject);
var
V: Variant;
C: Integer;
A: String;
begin
V := Table1.Lookup('Company;State',
VarArrayOf(['Blue Sports', 'OR']),
'CustNo;Addr1');
if not (VarType(V) in [varNull]) then begin
C := V[0];
A := V[1];
ShowMessage(IntToStr(C) + #10 + A);
end
else
ShowMessage('Search unsuccessful!');