如题!!

解决方案 »

  1.   

    给报表单独分配个DataSet,然后选出DBGRID或DBGRIDEH中选择的记录,就可以了啊。
      

  2.   

    DBGridEh的Options中不是有一个dgMutiselect属性嘛,将它设置为True,
    然后将用户所选择的行都打印出来,通过里面的一个BookMark来判断就行了
    下面有一段代码给你参考
    procedure TFormCustBrowse.TreeView1DragDrop(Sender, Source: TObject; X,
      Y: Integer);
    var
      Node: TTreeNode;
      AreaID: string;
      I: integer;
    begin
      inherited;
      Node := TreeView1.GetNodeAt(X, Y);
      if ((Node <> nil) and (Node.Level <> 0)) then
        if YesNoBox('确实要将选定的客户更改区域到《' + Node.Text + '》中吗') then
        begin
          AreaID := MidStr(Node.Text, 2, Pos(')', Node.Text) - Pos('(', Node.Text) -
            1);
          if Source = dgCust then
          begin
            dgCust.DataSource.DataSet.DisableControls;
            for I := 0 to dgCust.SelectedRows.Count - 1 do
              with dgCust.DataSource.DataSet do
              begin
                BookMark := dgCust.SelectedRows[I];
                Edit;
                FieldByName('AreaID').AsString := AreaID;
                Post;
              end;
            dgCust.DataSource.DataSet.EnableControls;
          end;
        end;
      DataSource1.DataSet.Active := False;
      DataSource1.DataSet.Active := True;
    end;
      

  3.   

    感谢雁南飞!!!
    我想用DBCHECKBOXEH实现打勾的行打印,而已打印过的为灰色,不能修改,可以实现吗?
    多谢帮忙!!!