Anomalia CR.NET

mercoledì 25 gennaio 2006 - 11.57

giacomoD Profilo | Newbie

Ciao,
perchè in CR.NET (2003) quando si hanno dei sub-report (collegati e non) in un report, cambiando la location a run-time del report principale, nel report principale i dati sono corretti, mentre nei sub-report vengono visualizzati i dati della vecchia location (ovvero del db impostato a design time in Database Espert) ????????????

freeteo Profilo | Guru

ciao,
perche devi impostarlo anche nei sottoreport che sono di fatto sempre reportdocument...;-)
Poi lui si arrangia a linkare e tutto il resto. ma tu per ogni tabella devi settare le logoinfo oi dati come fai per il principale...

Matteo Raumer - .net addicted :-)
http://blogs.dotnethell.it/freeteo

giacomoD Profilo | Newbie

ciao,
il problema è che già io linko tutte le tabelle del sottoreport a runtime..
Ecco il codice di inizializzazione del report e del sottoreport:

Dim r As New reportPrinc
Dim subr As New sottoreport


Dim serverDati As String = ConfigurationSettings.AppSettings("serverDati")
Dim nomeDb As String = ConfigurationSettings.AppSettings("databaseSQLServer")

Dim crTableLogonInfos As New TableLogOnInfos
Dim crTableLogonInfo As New TableLogOnInfo
Dim crConnectionInfo As New ConnectionInfo

With crConnectionInfo
.ServerName = serverDati
.DatabaseName = nomeDb
.UserID = "xx"
.Password = "xxxxx"
End With

Dim t As Table
For Each t In r.Database.Tables
crTableLogonInfo.ConnectionInfo = crConnectionInfo
t.ApplyLogOnInfo(crTableLogonInfo)
t.Location = nomeDb & ".dbo." & t.Location.Substring(t.Location.LastIndexOf(".") + 1)
Next t
For Each t In subr.Database.Tables
crTableLogonInfo.ConnectionInfo = crConnectionInfo
t.ApplyLogOnInfo(crTableLogonInfo)
t.Location = nomeDb & ".dbo." & t.Location.Substring(t.Location.LastIndexOf(".") + 1)
Next t

Qualche consiglio??
ciao

Giacomo

freeteo Profilo | Guru

ciao,
il metodo è corretto...sembra quasi 1 baco...cmq hai messo il flag di "ignora dati salvati con il report"?
lo trovi sotto tastoDx->finestrra di progettazione->impostazioni predefinite->creazione report

cmq sembra proprio qulcosa di anomalo...mmmm...dovremmo provare con qualcos'altro, ad ogni modo ti capita su qualsiasi report, anche se ne fai qualcuno di prova?

grazie
ciao

Matteo Raumer - .net addicted :-)
http://blogs.dotnethell.it/freeteo

giacomoD Profilo | Newbie

ciao,
ho provato ad impostare il flag che mi hai indicato (sia sul report che sul sottoreport) ma niente da fare... :-(
Ho provato anche con altri sottoreport (sia collegati che non) ma il risultato è sempre lo stesso.
Per maggiore chiarezza schematizzo meglio il mio problema:

A design time ho la seguente impostazione:
report principale --> database1
sub-report --> database1

A run-time, tramite il codice che ho postato, vorrei ottenere la seguente impostazione:
report principale --> databaseX (il nome del db è configurabile in modo dinamico)
sub-report --> databaseX
Invece quello che ottengo è:
report principale --> databaseX <----------------CORRETTO
sub-report --> database1 <----------------PERCHE'?????????

ciao

Giacomo

giacomoD Profilo | Newbie

Ragazzi non sono ancora riuscito a risolvere il problema...

Qualche idea?

Giacomo

freeteo Profilo | Guru

caspita....sembra molto strano,
hai provato a debuggare? cioe' appena dopo aver impostato l'ultima proprieta' nel ciclo delle table del sottoreport se controlli nella tabella dall'immediata (o trascinando nella finestra watch) le logoininfo sono applicate?
perche se sono applicate dovresti vederele che non ci sia qualcosa che non va o è in sola lettura...
prova a controllare...

Matteo Raumer
MCAD.net - net addicted :-)
http://blogs.dotnethell.it/freeteo

giacomoD Profilo | Newbie

Grazie della risposta....
Si ho verificato, ma nel debug le impostazioni di logon sembrano tutte corrette, poi invece dopo l'ultima istruazione, al lancio del report, vengono visualizzate le informazioni sbagliate nel sottoreport.
Inoltre sono sicuro che il sottoreport non legge i dati dalla cache, perchè ho eliminato i dati dal db di sviluppo, e nel sottoreport adesso invece che visualizzare i dati obsoleti non visualizza nulla, quindi estrae ad ogni esecuzione i dati dal db, ma da quello sbagliato!
Insomma il sottoreport se ne frega delle impostazioni di run-time, ma usa quelle impostate a design-time.

E' possibile tutto questo??

Giacomo

freeteo Profilo | Guru

ciao,
mi sembra stranissima, alla fine tu hai fatto proprio quello che si deve fare, ti posto 1paio di link presi direttamente dalla kb ufficiale di BO:

http://support.businessobjects.com/library/kbase/articles/c2010275.asp
http://support.businessobjects.com/library/kbase/articles/c2011464.asp
http://support.businessobjects.com/library/kbase/articles/c2010371.asp

prova a controllare che non ci sia qualcosa nel tuo codice che ci è sfuggito...
ciao

Matteo Raumer
MCAD.net - net addicted :-)
http://blogs.dotnethell.it/freeteo

giacomoD Profilo | Newbie

Ciao freeteo,
mi hai aiutato a risolvere questo mio problema e dunque non finirò mai di ringraziarti.. Grazie!!!!!!!!

Riconosco anche di avere la colpa di essere divetato scemo per questa cosa e mi sono fatto sfuggire proporio l'articolo che tu mi hai segnalato (il 1°), e seguendolo alla lettera ho risolto il mio problema.

Per chiarire il problema e per aiutare chi si trova nella mia stessa situazione spiego brevemente la soluzione a parole, tanto il codice è su quell'articolo:

C'è una differenza sostanziale tra il mio codice (che non funzia) e quello dell'articolo: riguarda il fatto che io apro il report in modo "tipizzato" (ovvero creo un oggetto di tipo uguale alla classe creata col sottoreport), e poi assegno a questo oggeto le informazioni di logon, mentre nell'articolo non si crea questo oggetto tipizzato, bensì si scandiscono tutte le sezioni del report prncipale, e per ogni oggetto di tipo sottoreport trovato, si crea un oggetto di tipo generico, lo si valorizza con il sottoreport trovato ed a questo oggetto si assegnano le informazioni di logon.
Apparentemente, in linea puramente teorica i 2 metodi sembrano identici, ma sta di fatto che il 1° metodo non funziona, il 2° si, quindi ragazzi non impazzite e seguite le informazioni della KB se volete che i vostri report funzionino, anche se magari il metodo appare scomodo e non ottimale.

Grazie ancora freeteo
Ciao!!


Giacomo

freeteo Profilo | Guru

di niente, siamo qui per questo!
l'importante è che hai risolto...cmq usare 1 oggetto generico "ReportDocument" e poi caricare il file .rpt è sempre la cosa piu "agile" che io consiglio sempre ;-)

ciao

Matteo Raumer
MCAD.net - net addicted :-)
http://blogs.dotnethell.it/freeteo
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