Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Stringa riepilogativa di record a pie di report
martedì 14 marzo 2006 - 12.47
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
mar 14 mar 2006 - 12:47
come convertire una serie di record in una stringa da utilizzare in page footer in un campo note del report?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 14 mar 2006 - 19:37
ciao,
mi sa che quello che vuoi fare tu non è molto facile con "drag&drop" ovvero non ci sono funzioni o componenti gia di standard per farlo.
Pero' puoi lavorare con le varibili del report, ad esempio:
- nella sezione dettagli metti giu 1a formula (che sopprimerai per evitare di veder 1 valore che non ti serve" dove dichiari 1a variabile che ti mostra i campi che stamperai infondo:
shared stringvar xRiepilogo := shared stringvar xRiepilogo + "," + {miocampo};
xRiepilogo
cosi' lui ogni record elabora questa variabile e crea 1a string asempre piu lunga.Ovviamente tu farai i controlli che vuoi etc.. qeusto è 1 esempio senza senso anche perche quanto lunga diventa
e poi nel footer del report non la sopprimi e quindi hai la concatenazione dei valori dei record che vuoi, ovviamente puoi fare degli split etc...per presentarli meglio
cosi è 1po laborioso ma funziona
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
mer 15 mar 2006 - 09:14
bene...ci provo e ti fo sapere..
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
sab 6 mag 2006 - 16:46
ciao,
la soluzione che mi hai proposto va benissimo ..ho solu un piccolo problema:
come posso fare ad azzerare la variabile ad esempio al cambio di numero documenti in testata?
ora continua a sommaare stringhe all'infinito..
sempre grazie
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 6 mag 2006 - 19:37
ciao,
se ti basta azzerare la variabile puoi tranquillamente controllare se nel record precedente il campo "documento" è diverso da quello corrente (quindi cambio di numero documento)
cioe' controlli :
If Previuos({miodb.ndocumento}) <> {miodb.ndocumento} then
shared numbervar.....
e quindi diciamo che la "rigeneri"...
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
gio 11 mag 2006 - 12:21
ciao,
la soluzione non sembra funzinare:
la prima pagina (n. documenti1) non stampa piu nulla e le successive continuano a raggruppare i documenti senza interrompersial cambio di numero doc.
ti posto il codice...
shared stringvar x;
x:=replace ({MG_MOVMAGT.des_articolo_riga},"Da DDT ","");
shared stringvar y;
y:=replace (x," del ","");
shared stringvar z;
z:= Right(y,10);
shared numbervar w;
w:= Val((Replace (y,z,"")));
If Previous ({MG_MOVMAGT.des_num_doc}) <> {MG_MOVMAGT.des_num_doc} Then
shared stringvar xRiepilogo := shared stringvar xRiepilogo + IIF((Left ({MG_MOVMAGT.des_articolo_riga},2))="Da",CStr(w,"00000")+" "+z+ space(3),"");
xRiepilogo;
ti ringrazio sempre...
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 11 mag 2006 - 18:54
ciao,
per il problema della 1ma pagina puoi controllare anche se IsNull(previous({campo})) perche questo è 1a classica "scocciatura" edl fatto che nullo non viene controllato automaticamente...
Ed hai provato a mettere giu qualche campo formula nel report, con dentro i valori delle diverse variabili in modo ti funga da "console.Writeline" ? giusto per capire dove sbaglia...
è sempre 1piacere, non occorre che mi ringrazi
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
gio 11 mag 2006 - 19:17
ciao,
ho risolto il problema della prima pagina come mi hai consigliato.
resta purtroppo quello del mancato azzeramento della variabile al cambio di numero di documento....
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 11 mag 2006 - 20:00
ciao,
ma questa formula l'hai messa nei dettagli o nel campo raggruppamento? perche' solo cosi' lui elabora anche quando c'è l'effettivo cambio di valore, altrimenti se cambia in 1altra sezione lui elabora solo nel momento in cui viene visualizzata la formula...
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
ven 12 mag 2006 - 08:43
l'ho messa sia nel dettaglio che nel page footer...
devo forse creare due formule diverse?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 12 mag 2006 - 18:45
si se deve cambiare a 2da del valore del campo che cambia nella sezione dettagli., la parte relativa a quella variabile la devi aggiungere in 1altro campo formula, e poi metterlo nei dettagli, cosi viene elaborato ad ogni record e quindi anche nel momento del cambio valore da 1record all'altro (percio' resetta la variabile...)
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
ven 12 mag 2006 - 18:53
il numero di documento è nell'header del report..
non credo di aver compreso bene il tuo ultimo consiglio
semplificando la formula sulla base dei tuoi primi consigli:
shared stringvar xRiepilogo := shared stringvar xRiepilogo + "," + {miocampo};
xRiepilogo
If Previuos({miodb.ndocumento}) <> {miodb.ndocumento} then
va messa anche nei dettagli o solo nel footer?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 12 mag 2006 - 19:17
>il numero di documento è nell'header del report..
ok, allora nell'header metti l'asegnazione della varibile controllando il previous:
If Previuos({miodb.ndocumento}) <> {miodb.ndocumento} then
shared stringvar xRiepilogo := shared stringvar xRiepilogo + "," + {miocampo};
...
else
shared stringvar xRiepilogo := ""; dovevi azzerarla giusto? non ricordo bene il giro...
e poi nel footer del report la visualzzi insieme ad altri dati.
cmq il problema sta nel posto dove lui fa i confronti, ti suggerivo i dettagli perche non sapevo che variasse ogni pagina ma pensavo che all'unterno della pagina variasse di record in record...
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
sab 13 mag 2006 - 11:27
come la dichiaro nel footer?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 13 mag 2006 - 12:23
ciao,
intendevo dire che nell'header fai 1 formula dove conffronti con il previuos e dai il valore giusto alla variabile (azzerandola oppure no) senza visualizzare niente, ovvero 1a formula di soli calcoli all'interno.
Poi nel footer metti 1'ulteriore formula dove visualizzi il valore della variabile, insieme all'altro testo ovviamente se ti serve...
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
sab 13 mag 2006 - 14:58
ciao,
vediamo se ho capito:
header:
If Previuos({miodb.ndocumento}) <> {miodb.ndocumento} then
shared stringvar xRiepilogo := shared stringvar xRiepilogo + "," + {miocampo}
else
shared stringvar xRiepilogo := "";
footer:
shared stringvar xtotale := xRiepilogo
cosi?
ciao...
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 13 mag 2006 - 16:13
si è proprio quello che intendevo, se il campo varia nell'inizio della pagina il controllo va nell'header e poi la visualizzazione invece va a pie pagina quindi ti riprendi il valore della variabile, poi se devi aggiungerci del testo lo fai cmq nel footer dove lo visualizzi...
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
misterwolf
Profilo
| Newbie
21
messaggi | Data Invio:
sab 13 mag 2006 - 16:32
evviva...funziona..
if previous ({MG_MOVMAGT.des_num_doc}) <> {MG_MOVMAGT.des_num_doc} then
shared stringvar xRiepilogo := ""
else
shared stringvar xRiepilogo := IIF((Left ({MG_MOVMAGT.des_articolo_riga},6))="Da DDT",CStr(w,"00000")+" "+z+ space(3),"");
ti ringrazio per tutto..
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 13 mag 2006 - 19:33
bene! alla fine era questione di posizione header e footer della variabile allora?
se hai risolto accetta 1a risposta cosi' marchiamo il thread come risolto....
grazie
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
Torna su
Stanze Forum
Elenco Threads
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 !