问题如标题?在对dbgrid中的数据进行修改后如果触发其它的事件,
也就是说,修改了dbgrid中的某栏的数据后,如何去修改与该栏的数据有关系的数据栏!

解决方案 »

  1.   

    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      begin
        if form1.DBGrid1.SelectedField.FieldName='year' then
        begin
          i:=form1.DBGrid1.SelectedRows.Count;
          form1.dbgrid1.datasource.dataset.edit;
          form1.dbgrid1.datasource.dataset.fieldvalue['salary']:=form1.dbgrid1.datasource.dataset.fieldvalue['year']*2;
          form1.dbgrid1.datasource.dataset.post;
        end;
      end;
    end;
      

  2.   

    在i:=form1.DBGrid1.SelectedRows.Count;后加一句
    form1.dbgrid1.datasource.dataset.recno:=i;
      

  3.   

    procedure TForm2.HuoWDBGridKeyPress(Sender: TObject; var Key: Char);
    var
      c:integer;
     begin
      if huowtable.IsEmpty then
       begin
         huowtable.First;
         huowtable.FieldByName('code').Value:=0;
       end;
      with TDBGrid(Activecontrol)do
        begin
          HuoWtable.Edit;
          if key=#13then
             begin
            //end;//end of With   begin
               if selectedindex<(fieldcount-1) then selectedindex:=selectedindex+1
               else
                 begin
                    //showmessage('n');
                    if not ((huowtable.fieldbyname('code').value=null)or(huowtable.FieldByName('hname').value=null))then Huowtable.Post
                    else if huowtable.fieldbyname('code').value=null then showmessage('代码未输入!')
                    else if huowtable.FieldByName('hname').value=null then showmessage('品名未输入!');
                    if not Huowtable.Eof then
                       begin
                         Huowtable.next;
                         selectedindex:=1;
                      end;
                   if Huowtable.Eof then
                        begin
                          if not ((huowtable.FieldByName('code').value=null)or(huowtable.FieldByName('hname').value=null))then
                            begin
                              c:=huowtable.fieldbyname('code').Value;
                              HuoWtable.Append;
                              huowtable.FieldByName('code').Value:=c+1;
                              selectedindex:=1;
                            end
                           else if huowtable.fieldbyname('code').value=null then showmessage('代码未输入!')
                           else if huowtable.FieldByName('hname').value=null then showmessage('品名未输入!');
                        end;//end of if
               end;//end of else
         end;//end of if Key
      end;// end of begin
     end;