1.dbgrid 每隔几行向表中保存一次,比如,我dbgrid中有三条记录,我要在第二行,换行时,
把前两条记录,保存到一个表中,表中在保存以前是空的,
2.dbgrid 单元格换格时,触发一个存储过程或者sql语句,来校验这个字段,
实现效果比如,dbgrid中有个shl(数量)字段,shl后有一个dj(单价) 字段
当输完shl后,如果校验成功,光标便转入dj字段中,否则停在该字段,
3,dbgrid 光标跳入指定字段,实现效果:dbgrid 中有 spmch(商品名称),shpgg(商品规格),shpcd(产地),shl(数量),dj(单价)实现 效果,:光标从spmch中跳入shl中,如果输入数量正确,直接跳转到第二行,开始第二行,数据录入--------------------------------------------------------------------
以上这三个问题是在 实际操作过程中最常用到的功能 ,请各们高手帮忙解决,提供一下思路,,小
小弟分数有限,还请各位大可包涵,如问题回答的好,另有分数相送
把前两条记录,保存到一个表中,表中在保存以前是空的,
2.dbgrid 单元格换格时,触发一个存储过程或者sql语句,来校验这个字段,
实现效果比如,dbgrid中有个shl(数量)字段,shl后有一个dj(单价) 字段
当输完shl后,如果校验成功,光标便转入dj字段中,否则停在该字段,
3,dbgrid 光标跳入指定字段,实现效果:dbgrid 中有 spmch(商品名称),shpgg(商品规格),shpcd(产地),shl(数量),dj(单价)实现 效果,:光标从spmch中跳入shl中,如果输入数量正确,直接跳转到第二行,开始第二行,数据录入--------------------------------------------------------------------
以上这三个问题是在 实际操作过程中最常用到的功能 ,请各们高手帮忙解决,提供一下思路,,小
小弟分数有限,还请各位大可包涵,如问题回答的好,另有分数相送
如 dbgrid 有数据库字段
shl (数量),dj(单价) ,je(金额)
不论,shl这个字段处于什么位置,
如,dj,shl ,je
或者
dj ,je ,shl
我想通过,shl 这个字段名来得到,他在dbgrid所处的列号(处在第几列)
procedure TForm1.DBGrid2CellClick(Column: TColumn);
var
i,j:Integer;
begin
self.vg_fieldname:=Column.FieldName;
self.vg_fieldindex:=column.index;
self.vg_row:=self.dbgrid2.datasource.dataset.recno;
end;procedure TForm1.DBGrid2KeyPress(Sender: TObject; var Key: Char);
var
i,j,m,n:Integer;
begin
if key=#9 then//tab键换行
begin
if self.vg_filedindex=dbgrid2.columns.count-1 then//最后一列
begin
for i:=1 to self.vg_row do
begin
//将此表中记录写入另一张表中
end;
end;
end;
end;
procedure TForm1.DBGrid2KeyDown(Sender: TObject; var Key: Char); begin
if key=9 then//tab键换行
begin
if ... then//字段输入值检验错误
key:=0;
end;
end;
Shift: TShiftState);
begin
if Key=9 then
begin
if self.DBGrid2.SelectedIndex=1 then
self.DBGrid2.SelectedIndex:=3
end;
end;你把这三个组合一下就能实现你要的效果