For i:=1 To count_id Do

martedì 15 dicembre 2009 - 14.28

aemme Profilo | Junior Member

Vorrei scrivere in una select tutti i valori di una colonna (attachment) per un determinato altro valore ch_doc_id, per tante volte quanti sono gli attachment.

Ho provato ad utilizzare la funzione For ma non sono riuscito.

For i:=1 to Count_id Do pcms_item_data.lib_filename

devo inserire una stringa?

freeteo Profilo | Guru

Ciao, perdona il ritardo nella risposta.
Non ho capito bene cosa vuoi fare, il "for" lo scrivi dentro al report, o stai pensando di farlo via stringa Sql?

Qual'è la struttura che vuoi avere? ti interessa concatenare tutti i valori di un set di dati? Se è questo che vorresti fare, puoi farlo usando una formula che metti nella sezione dettagli, e gli dici di leggere quel valore accodandolo ad una "variabile".
Alla fine dei dettagli (e solo alla fine perchè il report lavora "verticalmente" elaborando via via i valori dei campi rispetto al record corrente) avrai la stringa che contiene tutto parcheggiata su quella variabile.
Tradotto in step:
1) aggiungi il campo formula:
shared stringvar miaStringa := {campo}
2) lo metti nella sezione dettagli
3) nel report footer (o qualche altra sezione che sia successiva a quella dettagli) gli metti un altro campo formula:
shared stringvar miaStringa

Tutto questo se stai parlando di Crystal, altrimenti devi lavorare con le Expression se stai parlando di Sql Reporting, ma il concetto è analogo...

Ciao.

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

aemme Profilo | Junior Member


Buon anno,

grazie per la risposta.

Quello che vorrei fare è utilizzare questa select in crystal report...:

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

...e far si che tutti i valori di PCMS_ITEM_DATA.LIB_FILENAME per uno stesso PCMS_CHDOC_DATA.CH_DOC_ID siano contenuti nella stessa colonna.

Cioè se:
PCMS_CHDOC_DATA.CH_DOC_ID PCMS_ITEM_DATA.LIB_FILENAME 1 a.txt 2 b.txt 2 c.txt 3 a.pdf 3 b.pdf 3 d.doc 4
diventi:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Per questo motivo stavo pensando di utilizzare un ciclo for, ma se esiste un altro modo, magari più comodo e facile ben venga...

Grazie,

aemme Profilo | Junior Member

Ho provato, comunque, a fare come suggerisci, cioè di aggiungere una Variabile Shared nel "Formula" del campo ma non me la fa salvare.

Mi dice che la si deve usare quando si stampano dei valori.

??

freeteo Profilo | Guru

Ciao,
per fare quello che dici, devi usare il "layout su più colonne" della sezione dettagli a mio avviso.
Prova così:
1) raggruppa per il campo che ha i valori numerici
2) tasto Dx sui dettagli->esperto sezione->flag su "formatta con colonne multiple" uno degli ultimi in basso
3) appena fleggato ti compare una tab "layout" in cui dai una larghezza alla colonna (tipo 5cm) e imposti "direzione stampa=per righe"

il report a questo punto ripete i dati in maniera orizzontale e quindi dentro al gruppo i campi vengono messi in orizzontale...

Ciao.

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

aemme Profilo | Junior Member

Non sono riuscito anche perchè nella select originaria ci sono Colonne provenienti da diverse Views e io vorrei che stampasse in orizzontale solo quella colonna. (LIB_FILENAME)

La select da cui ha origine il report è questa

SELECT PCMS_CHDOC_DATA.CH_UID, PCMS_CHDOC_DATA.CH_DOC_ID, PCMS_CHDOC_DATA.STATUS, PCMS_CHDOC_DATA.TOOL, PCMS_CHDOC_RELATED_ITEMS.FROM_CH_UID, PCMS_CHDOC_RELATED_ITEMS.TO_ITEM_UID, PCMS_ITEM_DATA.ITEM_UID, PCMS_ITEM_DATA.LIB_FILENAME, PCMS_ITEM_DATA.DESCRIPTION FROM PCMS_CHDOC_DATA LEFT JOIN PCMS_CHDOC_RELATED_ITEMS ON PCMS_CHDOC_DATA.CH_UID = PCMS_CHDOC_RELATED_ITEMS.FROM_CH_UID LEFT JOIN PCMS_ITEM_DATA ON PCMS_CHDOC_RELATED_ITEMS.TO_ITEM_UID = PCMS_ITEM_DATA.ITEM_UID WHERE PCMS_CHDOC_DATA.STATUS 'CLOSED' AND PCMS_CHDOC_DATA.TOOL = 'ICD'

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