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
Accorpare dati campi di righe dettaglio
lunedì 15 febbraio 2010 - 16.47
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Duka
Profilo
| Newbie
7
messaggi | Data Invio:
lun 15 feb 2010 - 16:47
Ciao,
mi vengono passati dei dati da un file xml, da gestire come righe dettagli.
nella fattispecie ho ad esempio due colonne: Fase; Descrizione_fase.
Descrizione_fase non utilizza tutto lo spazio orizzontale, perchè i dati ricevuti per ogni riga sono fissi (20 caratteri) e vanno a capo sul sistema sorgente che ha una schermata di dimensioni minori.
quindi il report diventa ad esempio:
Fase Descrizione_fase
10 12345678901234567890
......12345678901ecc. ecc.
20 12345678901234567890
......123456ecc. ecc.
ciò che vorrei fare è una condizione per cui sino al variare di Fase, Descrizione_fase è l'unione di tutte le righe del dettaglio, in modo che il report risulti:
Fase Descrizione_fase
10 123456789012345678901234567890n..
20 12345678901234567890123456n..
logico che raggiunto un dato limite per il dettaglio di Descrizione_fase, o aumento il campo visibile o i dati saranno troncati.
In attesa di qualche suggerimento, vi ringrazio per l'attenzione.
SHEA
Profilo
| Newbie
11
messaggi | Data Invio:
mar 16 feb 2010 - 17:38
Ciao,
perchè non provi a risolvere il problema alla fonte, alla creazione del file XML, mettendo un solo record per FASE e tanti campi descrizione.
In questo modo, potresti utilizzare il comando di String del Crystal per i campi descrizione!
SHEA
Duka
Profilo
| Newbie
7
messaggi | Data Invio:
mer 17 feb 2010 - 16:01
Ciao SHEA,
potresti spiegrmi meglio cosa intendi con la tua proposta?
nel file xml, immagina che hai un campo Fase=10, seguito n volte dal campo Descrizione_fase (quante sono le righe occorrenti a descrivere fase 10). Poi la fase cambia e passa a 20, a sua volta seguita da dal campo Descrizione_fase (quante sono le righe occorrenti a descrivere fase 20). Così di seguito finchè non sono state passate tutte le fasi.
Il problema è che il campo descrizione fase alla fonte è solo di 20caratteri, mentre l'ampiezza orizzontale disponibile sul foglio di crystal è ad esempio di 40 caratteri.
Quello che cercavo era una formula per creare un campo che contenesse il concatenamento di due o più campi Descrizione_fase, finchè non varia il campo Fase. In tal modo mi propongo di ottenere un solo campo che contenga tutte le righe di Descrizione _fase, per ogni singola Fase, da formattare a piacimento.
Ho cercato su Crystal XI la funzione String cui hai accennato, ma non ho capito come potrebbe "fondere" le varie righe del dettaglio.
Per fare un esempio numerico, si può facilmente usare una formula perchè conti le righe dettaglio mentre sono usate dal report, e le sommi in una variabile (x=x+1 per ogni riga dettaglio usata).
Es. 2 righe:
X=0
X=0+1 x(prima riga)
X=1+1 x(seconda riga)
X finale = 2
Io mi chiedo se c'è un modo per fare la stessa cosa con le stringhe di testo, restituendo una stringa finale che sia il concatenamento di tutte quelle lette, fino a quando non cambia il valore del campo Fase.
Es. 2 righe:
X=''
X='stringa1' x(prima riga)
X='stinga1'&'stringa2' x(seconda riga)
X finale = 'stinga1'&'stringa2'
Bel rompicapo...
SHEA
Profilo
| Newbie
11
messaggi | Data Invio:
mer 17 feb 2010 - 16:34
Ciao Duka,
non ho ben capito come è composto il tuo file xml, ma ti spiego come proverei io.
Innanzitutto, quanti campi descrizione ci possono essere per fase?
Facciamo 20, che per 20 caratteri fanno 4000,direi un buon margine.
Il mio record quindi è creato da 1 campo FASE e 20 campi DESCRIZIONE (pieni o vuoti).
Nel Report Crystal creo 10 nuovi campi formula concatenando:
nel primo descr1+descr2
nel second descr3+descr4
e via dicendo..
a questo punto ho 10 campifom_descr (da 1 a 10).
Creo 10 righe dettaglio con FASE e DESCR1 nella prima e per le altre 9 solo il campoform corrispondente (nella second la seconda descrizione nella tersa la terza e via di seguito).
A questo punto metto la condizione su tutte le righe, di stamparle solo se il campoform corrispondente è diverso (<>) da space (" ").
Forse è un lavoro di certosino, ma io l'ho fatto per delle diciture nel piede che variavano da cliente a cliente (per dei documenti bolla),e tutto è andato.
L'unica cosa, è che in anticipo devi calcolare un limite per queste diciture (descrizioni fase), olrte il quale il gioco non funziona più!
Spero di essere stato più chiaro e soprattutto di aiuto!
Ciao.
SHEA.
Duka
Profilo
| Newbie
7
messaggi | Data Invio:
mer 17 feb 2010 - 17:44
Tutto chiaro, ma nel mio file xml non è possibile avere i record numerati. Non hai la possibilità di avere desc1, desc2, ... sino a desc20.
Solo n righe record descrizione_fase (per ogni fase, finchè il campo fase non cambia).
Il programma sorgente cioè crea l'xml comportandosi sui record del db, come la sezione dettagli di crystal. Per ogni campo fase_db, restituisce un file xml contenente una riga Fase per la fase_db e n righe Descrizione_fase, quanti sono le righe dei campi e Descrizione_fase_db.
Ecco il motivo per cui non avendo sin dall'inizio record differenti (numerati), ma solo ricorsivi, cerco un metodo che riesca a concatenarli con una formula ricorsiva.
Non so se sono stato spiegato
...
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 !