Larghezza campi!!

mercoledì 26 aprile 2006 - 16.56

mila1 Profilo | Newbie

ciao a tutti!!
volevo sapere se in Crystal report c'è un modo per far auto-allargare i campi per non "tagliare" le informazioni in esso contenute. Mi spiego meglio, ho dei campi che contengono valori presi dal database, solo che questi valori possono avere lunghezze diverse. Io vorrei poter:
1 fissare la larghezza del campo e se il valore supera tale larghezza farlo andare a capo;
2 fare in modo che il campo si allarghi o si stringa a seconda della larghezza del valore.

Si puo fare???

Grazie mille!!!!

freeteo Profilo | Guru

ciao,
>1 fissare la larghezza del campo e se il valore supera tale larghezza farlo andare a capo;
tastoDX sopra al campo->formatta oggetto->generale->flegga "Can Grow" (puo aumentare)
a caposi arrangia lui basta lascia di default il resto

>2 fare in modo che il campo si allarghi o si stringa a seconda della larghezza del valore.
mmm non so se ho capito bene cmq lo puoi fare solo via codice accendo via oggetto ReportDocument e settando le proprieta' dell'oggetto recuperato tramite:

ReportDocument mioreport= new ReportDocument();
mioreport.Load(MapPath("mioreport.rpt"));
mioreport.ReportDefinition.ReportObjects["miocampo"].Height = x;
...
1po piu complesso ma fattibile, anche se non ho capito a cosa ti dovrebbe servire, o è 1alternbativa alla 1a ipotesi ?


ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

mila1 Profilo | Newbie

si era una specie di alternativa alla prima ipotesi
ho un'altra domanda da fare in conseguenza...
si può decidere la posizione di un campo in base ad un altro?
nel senso metti che ho due campi:
nome
via
permetto al campo nome di andare a capo perchè puo avere lunghezza variabile, io vorrei che il valore di tale campo non si sovrapponesse al valore di via ma che via fosse "attaccata" al campo sopra in modo che andrebbe a capo:

michelan
gelo
via rossi

e non

michelan
gelo e via rossi sovrapposto...


spero di essermi spiegata :P

grazie ancora!!

freeteo Profilo | Guru

ciao,
ho capito allora il tuo è 1problema classico
Ovvero devi usare 2sezioni, fai tastoDx sopra ad alla sezione dove hai il 1o campo e scegli "add section below" (aggiungi sezione sotto) e li dentro metti il campo che deve stare sotto.

Cosi facendo il 2o campo va sotto a 2a di quanto aumenta il campo sopra, senza problemi di sovrapposizione...
Fai qualche prova in questa direzione...

ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

mila1 Profilo | Newbie

ciao!
ho adottato il metodo delle sezioni come mi hai detto tu,solo che in alcuni casi avrei bisogno di non "spostare" tutta la parte di report che sta sotto il campo che va a capo, non esiste un modo per "incollare" un oggetto sotto un altro?
grazie mille!!

freeteo Profilo | Guru

ciao,
se non puoi usare le sezioni, allora l'unica cosa da fare è usare 1 oggetto di testo con dentro la concatenazione dei campi del db che ti interessano.
Percio' prova ad:
- selzioni il 1mo campo e fai tastoDX->copia
- aggiungere 1oggetto di testo normale
- tastoDx sopra a quest'ultimo-> Edit text Object
- Puoi entrare diciamo e fare incolla (dovreti vedere che ti scrive il campo tra parentesi graffe)
- copi dentro anche il 2do e ci fai 1 [invio] dentro in modo da farlo andare sotto

O cosi come ti ho spiegato o tramite formulafield, dove scrivi il codice che fa la concatenazione separata da vbcrlf ad esempio...


ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

mila1 Profilo | Newbie

Ciao ho provato cosi mi andrebbe meglio però ho l'esigenza di controllare che uno dei campi concatenati possa andare a capo per non più di due righe, si può fare?
Inoltre c'è un modo per decidere l'interlinea tra due righe con questa soluzione?
ti spiego avrei bisogno di avere alcune righe una dopo l'altra e una un po piu staccata però meno staccata di una linea intera...
si puo fare in qualche modo?purtroppo sto facendo dei report che devono essere recisi al millimetro come da specifiche...
grazie ancora...

freeteo Profilo | Guru

>controllare che uno dei campi concatenati possa andare a capo per non più di due righe, si può fare?
a design time, fai: tasto dx sopra al campo->format object->tab common e flegga il "can grow".
Appena lo flegghi si abilita 1a textbox sotto che ti dice quante righe massimo? metti il valore 2

>Inoltre c'è un modo per decidere l'interlinea tra due righe con questa soluzione?
a design time, fai: tasto dx sopra al campo->format object->tab paragraph e setta il valore di "line spacing" a "Exacts" e metti i points di distacco tra le righe che vuoi

>grazie ancora...
di niente è 1piacere!


ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

mila1 Profilo | Newbie

In riferimento al problema sopracitato:

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

La situazione è che all'interno di un campo testo ho "copiato" piu campi di database come mi avevi suggerito nella risposta precedente: campoA
campoB
campoC
solo che il valore del campo A può andare a capo per massimo 2 righe e il campoB deve avere un interlinea particolare dal campoA....si puo fare? Si può fare?
Altrimenti l'ideale per me è che ci fosse un modo per "incollare" la posizione di un campo sotto a un altro...
Grazie ancora!

freeteo Profilo | Guru

ciao,
il metodo di usare i campi trascinandoli dentro ad 1oggetto testo e poi giocare con la formattazione dei singoli campi e quella del campo testo contenitore, mi sembra la strada piu giusta...
Pero' se non ti va bene, forse quello che devi fare tu non riesci a farlo...devi provare, al momento non saprei darti altri suggerimenti
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5