Apresenta-se como matriz é uma tabela e me dá problemas Grid

07/02/2003

0

Ae!! Td blz com vc´s?
Seguinte, to com um problema no multiselect do DBGrid, fiz o seguinte
pra poder setar os registros escolhidos [e em seguida gravá-los]:

procedure TForm1.Button1Click(Sender: TObject);
var
contador: Integer;
i:integer;
valor:integer;
begin
valor:=0;
With Dbgrid1 do
Begin
for contador:= 0 to Pred(SelectedRows.Count) do
Begin
Datasource1.Dataset.Bookmark:= SelectedRows[contador];
end;
end;
for i:=0 to contador do
begin
Table2.Insert;
Table2Opcao1.AsString:=DataSource1.DataSet.Fields[valor].AsString;
Table2.Post;
valor:=valor+1;
end;
end;

Ótimo não? Se não fosse o seguinte os registros que ele grava são os
valores da colunas da última linha. Detalhe o número de colunas depende
do número de linhas escolhidas.
O que eu preciso é que grave tudo.

Olha um teste de mesa:

Escolho as linha 1, 2, 4 da seguinte matriz:

1 2 3 4 5
6 7 8 9 10
11 12 13 14
15 16 17 18
19 20 21 22

E vou passar pra proxima, ficando assim:

1 2 3 4 5
6 7 8 9 10
15 16 17 18

Porém, no que eu fiz sai assim:

15 16 17


Skaarj

Skaarj

Responder

Posts

07/02/2003

Carnette

dá uma olhada neste exemplo

var
contador: Integer;
begin
With Dbgrid1 do
Begin
for contador:= 0 to Pred(SelectedRows.Count) do
Begin
Datasource.Dataset.Bookmark:= SelectedRows[contador]; // posiciona nos registros selecionados do DBGrid
end;
end;


Responder

07/02/2003

Skaarj

Aham, isso eu fiz, tá ali no código.. O problema é mostrar o que tá no BOOKMARK do dataset q deverá ser gravado em uma nova tabela..


Responder

07/02/2003

Carnette

Tudo bem meu amigo...

Mas, o insert da outra tabela tem que estar dentro deste loop...

é por isto que voce só grava o último registro...dãããããããã~~a :lol:


Responder

07/02/2003

Skaarj

Ql seria a vantagem d usar um MultiSelect se for pra pegar apenas o ultimo escolhido?
Ou me explica, pq ele guarda em linha ao inves d coluna?
Sabe, ler as dicas do LoydSoft é uma coisa, fazer funcionar é outra.. :wink:


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar