CONCLUIR EXECUCAO E IR PARA O PROXIMO COMANDO

JONESPARIS 04/06/2010 15:31:29
#343899
Amigos, estou com um pequeno problema...
preciso executar um loop e inserir dados em uma tabela, após a inclusão, preciso abrir um relatório com os dados inseridos, até aí tudo bem, mas o problema é que ele deve estar chamando o relatório antes ou durante a inclusão o que faz com que apareça o relatório incompleto, se eu der um refresh no relatório quando ele surge na tela, naquele raiozinho amarelo, os dados aparecem...

como estou fazendo:


For i = 1 to 100
Data1.Recordset.AddNew
Data1.Recordset.Fields(1) = [Ô]valor qualquer[Ô]
Data1.UpdateRecord
Next

CrystalReport1.ReportFileName = [Ô]C:\Teste    este.rpt[Ô]
CrystalReport1.Action = 1

no exemplo acima não aparecem os 100 registros que solicitei, agora;

For i = 1 to 100
Data1.Recordset.AddNew
Data1.Recordset.Fields(1) = [Ô]valor qualquer[Ô]
Data1.UpdateRecord
Next
Msgbox [Ô]Relatório Gerado com Sucesso[Ô]
CrystalReport1.ReportFileName = [Ô]C:\Teste    este.rpt[Ô]
CrystalReport1.Action = 1
neste último exemplo, incluindo a Mensagem após o loop, ele fica certinho.... tentei usar o DoEvents, mas não resolveu.

Será que alguém pode me ajudar??

Obrigado por enquanto
LOOKSYSTEM 04/06/2010 16:05:23
#343902
Resposta escolhida
Ola... experimente executar um refresh no objeto Data

For i = 1 to 100
Data1.Recordset.AddNew
Data1.Recordset.Fields(1) = [Ô]valor qualquer[Ô]
Data1.UpdateRecord
Next

Data1.Refresh

CrystalReport1.ReportFileName = [Ô]C:\Teste    este.rpt[Ô]
CrystalReport1.Action = 1
FEDERHEN 04/06/2010 16:37:13
#343907
Isso acontece porque os dados ainda estão no buffer e não foram efetivados na tabela.
Eu costumo gravar com execute e neste caso tem que dar um (coneção).BeginTrans e (coneção).CommitTrans para forçar a atualização.
Tópico encerrado , respostas não são mais permitidas