"Nome sottoreport sconosciuto"... ma c'è!

mercoledì 10 febbraio 2010 - 23.54

Elena84 Profilo | Newbie

Buonasera a tutti!
Come ho cercato di riassumere nel titolo del thread, il mio problema è che in un report creato con CR8 ho inserito una serie di sottoreport, suddivisi più o meno nel seguente modo:
Dati1
Dati2
Indice1
Dati3
Dati4
Dati5
Indice2
etc.etc.

Per un totale di 21 sottoreport Dati e 9 sottoreport Indice.
Questo report poi lo utilizzo da un programma in VB6 e passo i parametri con 2 cicli for: con il primo do i parametri ai sottoreport Dati e con il secondo do i parametri ai sottoreport Indice e in entrambi i cicli, per passare al sottoreport successivo, utilizzo il codice "CR.subreporttochange= nomeReport" dove "nomeReport" è una variabile che cambia valore ad ogni giro del ciclo.

In entrambi i cicli, però, agli ultimi 2 sottoreport da errore "20466 nome sottoreport sconosciuto": ma il sottoreport esiste!!!

Cosa può essere? Che prove posso fare per capire qual'è il problema?
Grazie a tutti!

Elena

freeteo Profilo | Guru

Ciao,
l'unica cosa che mi viene da consigliarti è mettere un punto di debug appena caricato il report ed andare ad esplorare (SHIFT+F9 per andare in "watch") delle sezioni per sezione i vari reportobject per trovare i subreport e da li capire il nome.

Il lavoro è certosino, ma dovresti riuscire a capirne il nome...

Ciao.

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

Elena84 Profilo | Newbie

Ciao!
Grazie per la velocità :-)
Però l'errore me lo da prima che venga caricato il report, ossia prima dell'azione CR.action=1, in quanto prima eseguo un ciclo for per dare i parametri a tutti i sottoreport.
Ma dici che il problema è proprio il nome? Perchè ho provato anche a ricontrollare in crystal report pensando di aver mess degli spazi di troppo, ma il nome è proprio quello...

freeteo Profilo | Guru

Ciao,
scusa ma tu come lo carichi?
Io usavo un codice in vb6 e crystal 8.5 che era di questo tipo:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=7942
come vedi prima lo carico, nel senso che vado ad aprire il file, poi gli passo i dati (ed eventualmente setto proprietà,formule, parametri etc...) e poi lo visualizzo nel viewer suo...


Ciao.

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

Elena84 Profilo | Newbie

Ciao Matteo!
Ho visto il codice e ho capito cosa intendi. Ma io non utilizzo quel codice,bensi l'oggetto CrystalReport e il seguente codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

In entrambi i cicli,mi da l'errore sulla riga "CR.SubreportToChange = rsIndice.Fields("Codice").Value" per le ultime 2 voci del ciclo.

C'è un modo per poter vedere inomi degli oggetti anche utilizzando questo metodo?
Grazie mille!

freeteo Profilo | Guru

Ok, non ho mai usato questo tipo di codice per i report quindi faccio fatica ad aiutarti precisamente...però come ti dicevo, non puoi mettere un punto di debug e portare nella finestra "watch" il report? con SHIFT+F9 e poi lo apri e vai ad esplorare le sue proprietà..

Ciao.

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

Elena84 Profilo | Newbie

Ho provato, cercando una proprietà che corrispondesse al Reportobject che mi hai scritt tu, ma non ho trovato nulla di utile...
Ho provato anche ad eliminare e ricreare il sottoreport:niente da fare...
Non so più che prove fare...

freeteo Profilo | Guru

Ciao,
ma se fai debug, e poi selezioni la variabile "CR" e fai "SHIFT+F9" non si vedono le proprietà dell'oggetto?

Ciao.

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

Elena84 Profilo | Newbie

Ho provato e in effetti mi apre la finestra "Controlla" con l'elenco di tutte le proprietà dell'oggetto CR ma è lo stesso elenco che vedo scrivendo CR. nel menù a tendina che si apre. Non ho trovato nulla...

freeteo Profilo | Guru

>Ho provato e in effetti mi apre la finestra "Controlla" con l'elenco
>di tutte le proprietà dell'oggetto CR ma è lo stesso elenco che
>vedo scrivendo CR. nel menù a tendina che si apre. Non ho trovato
>nulla...
a questo punto purtroppo non riesco ad aiutarti oltre... se nemmeno in debug riesci a vedere di cosa è composto il report facciamo veramente fatica a capire che nome di sottoreport si aspetta...o vai per tentativi o vedi se puoi usare qualche altro codice magari facendo dei test su un progetto di prova...

Ciao.

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

Elena84 Profilo | Newbie

Intanto grazie mille per la disponibilità
Inoltre prima ho fatto una prova veloce per capire se il problema sono QUEI sottoreport in particolare o se è perchè sono gli ultimi e quindi c'è un problema di indice: il risultato è che il problema sono proprio QUEI sottoreport in particolare perchè ho provato ad invertirne l'ordine ma sempre su quelli da il problema.
Quindi ora ho pensato di fare una prova e cambiare completamente nome... appena ho un secondo, provo... e speriamo di arrivare a qualcosa!

Elena84 Profilo | Newbie

Buonasera!
Incredibile ma.... HO RISOLTO!
Poichè nel report di stampa avevo inserito delle sezioni vuote per lasciare dello spazio tra una sezione con sottoreport e l'altra, ho pensato (non chiedetemi perchè) di provare ad eliminarne alcune e, dopo aver fatto ciò, il problema non si è più presentato!!!!Sono un po' allibita.... però ho risolto

Ora, scusa l'off topic, nel senso che non riguarda più questo problema, però volevo chiederti un'informazione: questa stampa (come anche un altra che ho fatto sempre con molti dati e sottoreport) è molto lenta a caricarsi, ci impiega qualche minuto... Dipende dal codice con cui richiamo queste stampe o dalla mole di dati e basta? Eventualmente il tipo di codice che mi hai postato prima, potrebbe essere più rapido?

Grazie mille!
Buona serata!

Elena

freeteo Profilo | Guru

>ho pensato (non chiedetemi perchè) di provare ad eliminarne alcune
>e, dopo aver fatto ciò, il problema non si è più presentato!!!!Sono
>un po' allibita.... però ho risolto
ok, probabilmente va per indice e non per nome...


>è molto lenta a caricarsi, ci impiega qualche minuto... Dipende
>dal codice con cui richiamo queste stampe o dalla mole di dati e basta?
dipende da entrambi, solo che a mio avviso il problema che ho riscontrato è più visibile in maniera proporzionale al numero di sottoreport, perchè essendo ognuno di questi un reportdocument, è abbastanza pesante (quasi come se avessi aperto n report).
Piuttosto ti consiglierei di usare qualche left join a livello di dati caricati e nel report usare i raggruppamenti (raggruppi per i campi comuni, alle join in modo da evitare valori duplicati) in questo modo magari riesci a risparmiare qualche sottoreport...


>Eventualmente il tipo di codice che mi hai postato prima,
>potrebbe essere più rapido?
non credo, diciamo che il problema secondo me è avere tanti sottoreport piuttosto che il caricamento di dati, chiaramente anche quello influisce ma secondo me non in maniera così drammatica...almeno dipende da quanti dati (sia come numero di record e sia come campi memo, ntext, blob etc...)

Ciao.

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

Elena84 Profilo | Newbie

>>è molto lenta a caricarsi, ci impiega qualche minuto... Dipende
>>dal codice con cui richiamo queste stampe o dalla mole di dati e basta?
>dipende da entrambi, solo che a mio avviso il problema che ho
>riscontrato è più visibile in maniera proporzionale al numero
>di sottoreport, perchè essendo ognuno di questi un reportdocument,
>è abbastanza pesante (quasi come se avessi aperto n report).
>Piuttosto ti consiglierei di usare qualche left join a livello
>di dati caricati e nel report usare i raggruppamenti (raggruppi
>per i campi comuni, alle join in modo da evitare valori duplicati)
>in questo modo magari riesci a risparmiare qualche sottoreport...

Purtroppo, il cliente mi ha richiesto una stampa particolare e non riesco a farla creare in automatico a crystal report tramite raggruppamenti o join sul database... l'unica soluzione che ho trovato è stata usare i sottoreport....
Farò delle prove, però...
Ti ringrazio!
Ciao!

Elena
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5