ciao,
purtroppo a differenza di Crystal Report,il pacchetto SqlReporting non ha una funzionalita' gia integrata che ti permetta di fare stampe orizzontali, tipicamente usate per stampare etichette.
La cosa pero' è fattibile ugualmente, sfruttando alcune sue caratteristiche e combinandole insieme:
- Nella sezione "Body" del report è possibile mettere diversi elementi "ripetitori" (List/Table) che ripetono i dati verticalmente indipendentemente gli uni dagli altri
- Gli elementi che ripeti sono oscurabili tramite la proprieta' "Visibility.Hidden" dove è possibile usare delle formule per discriminarne a runtime il comportamento
- La funzione "RowNumber(...)" mi dice all'interno dei "ripetitori" che record del datasource sta visualizzando
- La funzione "mod" mi da il resto di un'operazione di divisione
Combinando insieme queste features è possibile fare delle stampe di etichette, perche' basta dire al primo ripetitore di visualizzare solo i record 1, 4, 7... il secondo il record 2, 5, 8... il terzo i record 3,6,9... e via cosi'. E questo lo raggiungi lavorando con il resto che ti torna il "mod" perche' matematicamente:
1 mod 3 = 1 4 mod 3 = 1 ....
2 mod 3 = 2 5 mod 3 = 2 ....
3 mod 3 = 0 6 mod 3 = 0 ....
Dove "3" è il numero di colonne che vuoi, e il primo valore è il numero di record che deve visualizzare.
Discriminando questi valori per le liste che ci sono nel Body hai una "finta" ripetizione orizzontale dei record.
Un esempio è sicuramente piu' chiaro:
Es 3 colonne:
- Metti 3 List (o 3 Table) nel body
- Le agganci tutte e 3 alla stessa datasource (proprieta' DataSourceName)
- I Componenti li nascondi (visibility-Hidden) secondo queste formule:
1a Lista => iif(RowNumber(Nothing) mod 3 = 1, false , true)
2a Lista => iif(RowNumber(Nothing) mod 3 = 2, false , true)
3a Lista => iif(RowNumber(Nothing) mod 3 = 0, false , true)
il "false e il true" sono invertiti perche' la proprieta' è "visibility-Hidden" e quindi va al girata.
Ti ho allegato un esempio da cui puoi partire.
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo