Mi sono imbattuto oggi in un problema insidioso legato al DocumentReport di Crystal Report. Il behaviour evidente era che, a fronte di un cambiamento della base dati sottostante, il documento non veniva riaggiornato; anzi, tendeva a sovrapporre nel tempo le modifiche sui dati apportati al database, producendo risultati inaspettati e alquanto bizzarri (evito gli aggettivi volgari..)
Dopo lunghe meditazioni e prove, sono riuscito a colpevolizzare il Garbage Collector: CR infatti non scarica alcuni eventi dell'oggetto DocumentReport, lasciandolo perennemente attivo in memoria (e con lui tutte le sue risorse, tra cui guardacaso il database).
La soluzione viene da Hugo Batista, che in un suo post ha brillantemente descritto e condiviso una implementazione forzata del GC. Grazie Hugo!!!