DBGrid控件,如果一次选中多条记录,那么怎样才能判断出在查出的所有结果中,哪些是被选中的,哪些是没被先中的呢?然后将选中的那些记录导出到Memo中或者是导出成为文本文件。小弟主要想请大虾家帮我解决如何判断哪些记录是被选中的,哪些是没有被选中的!问题解决,马上结贴!!小弟在此谢过了!!

解决方案 »

  1.   

    你直接dbgrid.datasource.dataset的数据集就只是你选中的数据了
      

  2.   

    var
      i: Integer;
      Book: TBookStr;
    begin
      Book := DBGrid.DataSource.DataSet.Book;
      try
        for i := 0 to DBGrid.SelectedRows.Count - 1  do
        begin
          DBGrid.DataSource.DataSet.Book := DBGrid.SelectedRows[i];
          ShowMessage(DBGrid.DataSource.DataSet.Fields[0].AsString);
        end;
      finally
        DBGrid.DataSource.DataSet.Book := Book;
      end;
      

  3.   

    你做一个计算字段,字段类型应该是checkbox的,你让客户将所需要的字段check了,然后再对这个数据集中被check的记录进行排序就ok了
      

  4.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
      i : Integer;
    begin
      with DBGrid1.DataSource.DataSet do
      begin
        First;
        for i := 0 to DBGrid1.SelectedRows.Count - 1 do
        begin
          GotoBook(pointer(DBGrid1.SelectedRows.items[i]));
          Memo1.Lines.Add(FieldByName('aa').AsString);
        end;
      end;
    end;
      

  5.   

    按钮单击事件:
    var
      I: Integer;
      S: string;
    begin
      S := '';
      for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin
        DBGrid1.DataSource.DataSet.Book := DBGrid1.SelectedRows[I];
       S := Format('%s or list_id= %s',
          [S, QuotedStr(DBGrid1.DataSource.DataSet.FieldByName('list_id').AsString)]);
      end;
      Delete(S, 1, Length(' or '));
      DBGrid1.DataSource.DataSet.Filtered := False;
      DBGrid1.DataSource.DataSet.Filter := S;  DBGrid1.DataSource.DataSet.Filtered := True;试试如果不行,再说.
      

  6.   

    1.dbgrid 的dgmultiselect设为true
    2.  
    var
       BookList:TBookList;         
       Book:TBookStr;
       i:integer;
    begin
       Book:=dataset.Book;
       for I := 0 to BookList.Count - 1 do begin
          dataset.Book := BookList[I];
                          .
                          .
                          .
          导出处理...
       end;
       dateset.Book := Book;
    end