Report non mostra dati corretti se non premo refresh

domenica 13 giugno 2010 - 01.23

grisu70 Profilo | Newbie

Ciao a tutti,
ho questo problema con CR di visual basic 2008.
Ho un form con l'oggetto crreport.
Lancio un report che si basa su una tabella che carico prima di lanciare il form con il report.
la prima volta che lo eseguo i dati vengono visualizzati correttamente.
chiudo il form ( e faccio form.close e form.dispose)
ricarico la tabella con altri dati dati
eseguo il report e il report mi presenta gli stessi dati precedenti.. solo dopo circa 5 secondi e se faccio refresh di crreport, i dati vengono aggiornati nel report.

Che sbaglio ?
Grz

DomA Profilo | Expert

Ciao,
la prima volta che lanci il report i dati sono esatti?
Passi i dati al report da codice?
Se posti il codice si può capire il problema.
Domenico

freeteo Profilo | Guru

Ciao,
prova a controllare se nelle impostazioni del report c'è il flag su "Discard saved Data when load report", nel menù "Crystal Report->Design->Default Settings->Reporting".
O se usi il designer di Crystal stesso, nel menù File->Save Data With Report...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

grisu70 Profilo | Newbie

Grazie ad entrambi per la risposta.

Sotto vi posto il codice eseguito prima di lanciare il report.
Prima di lanciare il report, compilo uno tabella di appggio.
Il report si basa su questa tabella di appoggio e su quella correlata e quindi non ha nessuna selectin formula.
La prima volta che lancio il report i dati sono sempre corretti.
Le volte successive se inserisco una sleep di 3 secondi il report viene visualizzato corretto, senza di quella il report mostra i dati vecchi.
Penso a questo pundo che sia un problema di aggiornamento di database (anche se e' la prima vota che mi capita)
Utilizzo i metodi DAO (ne vengo da vb6 ed e' l'unico metodo che conosco per ora per gestire i database)

Grazie
Fabrizio

Private Sub BtOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtOk.Click
Dim CbData As MyItemData
If CkListaSoci.CheckedItems.Count = 0 Then
MsgBox("Selezionare almeno 1 socio", MsgBoxStyle.Critical)
Exit Sub
End If
' Svuoto la tabella di appoggio
TbStampa = Dbdati.OpenRecordset("Appoggiostampa", dao.RecordsetTypeEnum.dbOpenTable, dao.RecordsetOptionEnum.dbSeeChanges)
If TbStampa.RecordCount <> 0 Then
TbStampa.MoveLast()
TbStampa.MoveFirst()
Do Until TbStampa.EOF
TbStampa.Delete()
TbStampa.MoveNext()
Loop
End If
' Carico la tabella di appoggio
For Each indexChecked In CkListaSoci.CheckedIndices
CbData = CkListaSoci.Items.Item(indexChecked)
TbStampa.AddNew()
TbStampa("Socio").Value = CbData.ItemData
TbStampa.Update()
Next
TbStampa.Close()

Me.Cursor = Cursors.WaitCursor
' se manca sleep i dati non sono caricati corretti fino a che non faccio refresh 2 volte sul report
System.Threading.Thread.Sleep(3000)
Me.Cursor = Cursors.Default

EseguoStampa = 1
Me.Close()
Me.Dispose()
End Sub
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5