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;
然后将用户所选择的行都打印出来,通过里面的一个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;
我想用DBCHECKBOXEH实现打勾的行打印,而已打印过的为灰色,不能修改,可以实现吗?
多谢帮忙!!!