Allineamento verticale campi

mercoledì 04 novembre 2009 - 16.14

zactime Profilo | Newbie

CR 2008.

Avendo nella sezione Dettaglio un campo descrittivo su più righe e un campo prezzo come è possibile allineare il prezzo all'ultima riga del campo descrittivo?

Facendo un pò di ricerche ho avuto conferma che dall'IDE di Crystal non è possibile impostare l'allineamento verticale di un campo. Come si può ovviare alla cosa?

Ho trovato solo soluzioni artificiose, che potrebbero anche andare bene se riuscissi a realizzarle. Sapendo il numero di righe che compongono il campo descrittivo si potrebbe fare precedere, in una formula, il prezzo da tanti chr(10) quante sono le righe del campo descrittivo (ovviamente -1, il prezzo stesso).
Il problema è capire di quante righe è composto il campo descrittivo. Come si fa?
In alternativa sarebbe utile sapere l'altezza del campo descrittivo. Avendola, il numero di righe di cui è composto lo si potrebbe dedurre. Ma anche qui come si ottiene il valore?
Idem con l'altezza della sezione dettagli per quel record. Anche qui come si potrebbe ottenere il valore.

Ringrazio anticipatamente chiunque mi potrà aiutare.

Oscar

freeteo Profilo | Guru

Ciao, perdona il ritardo nella risposta.
A quanto ne so io non è possibile allineare in basso i vari oggetti del report, potresti provare a spostarli da codice ma non credo sia fattibile ugualmente perchè hai cmq accesso agli elementi ma non in "esecuzione" piuttosto hai accesso al "designer" diciamo.
Intendo un codice tipo:
ReportDocument report = new ReportDocument(); report.Load("....\\report.rpt"); report.ReportDefinition.ReportObjects["city2"]...

Quindi penso proprio che non sia possibile farlo


Ciao.

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

zactime Profilo | Newbie

Ciao Matteo.
Innanzitutto grazie per la risposta.

Lo immaginavo, infatti è anni che mi porto dietro questa cosa e vedo che nonostante cambino le versioni non ne vogliono sapere di modificare lo stato delle cose.

Che tu sappia non è neanche possibile capire di quante righe è composto un campo, oppure la sua altezza o infine l'altezza dell'intera sezione Dettagli? In una formula intendo. Non da NET.
Esistono delle funzioni che restituiscono queste informazioni? Io ho cercato ma non ho trovato nulla.

Grazie.

Oscar

freeteo Profilo | Guru

>Ciao Matteo.
>Innanzitutto grazie per la risposta.
di niente figurati, siamo qui per questo.


>Lo immaginavo, infatti è anni che mi porto dietro questa cosa
>e vedo che nonostante cambino le versioni non ne vogliono sapere
>di modificare lo stato delle cose.
si questo probabilmente non lo ritengono una cosa importante, o magari non hanno ricevuto feedback a riguardo...



>Che tu sappia non è neanche possibile capire di quante righe
>è composto un campo, oppure la sua altezza o infine l'altezza
>dell'intera sezione Dettagli? In una formula intendo. Non da NET.
diciamo che l'unica cosa che mi viene in mente è che potresti usare una "shared numbervar" dentro ad una formula per contare e poi usarla per fare un ciclo che aggiunga un "\r\n" (acapo) tante volte quante sono state messe in quella formula.
Io proverei con un campo formula, dentro al quale splitti per "\r\n" il campo testo di cui vuoi contare le righe, e poi l'ubound di questo lo metti nella variabile.Dopodichè fai un ulteriore campo formula per il campo che vuoi allineare in basso, e dentro alla formula fai un for per aggiungerci davanti una serie di "acapo".
Una cosa di questo genere...


Ciao.

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

zactime Profilo | Newbie

>diciamo che l'unica cosa che mi viene in mente è che potresti
>usare una "shared numbervar" dentro ad una formula per contare
>e poi usarla per fare un ciclo che aggiunga un "\r\n" (acapo)
>tante volte quante sono state messe in quella formula.
>Io proverei con un campo formula, dentro al quale splitti per
>"\r\n" il campo testo di cui vuoi contare le righe, e poi l'ubound
>di questo lo metti nella variabile.Dopodichè fai un ulteriore
>campo formula per il campo che vuoi allineare in basso, e dentro
>alla formula fai un for per aggiungerci davanti una serie di
>"acapo".
Il punto però è con che criterio splittare. Usando un carattere tipo il Courier, a larghezza fissa, si potrebbe contare il numero di caratteri e a seconda della larghezza del campo descrittivo impostare un ritorno a capo ogni N caratteri. Il problema è che difficilmente userò quello come tipo di carattere di conseguenza questo "giochino" decade.
Quali altri criteri usare? Bah!

Grazie ancora.
Oscar

freeteo Profilo | Guru

>Il punto però è con che criterio splittare. Usando un carattere
>tipo il Courier, a larghezza fissa, si potrebbe contare il numero
>di caratteri e a seconda della larghezza del campo descrittivo
>impostare un ritorno a capo ogni N caratteri.
si io pensavo avessi degli "acapo" e non che il campo andasse a crescere in base al contenuto solamente.
Chiaramente la cosa allora si complica ancora di più, non saprei come aiutarti...

Se fossi su web potresti giocare con gli stili css ma su windows è più problematico...

Ciao.

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

zactime Profilo | Newbie

Immaginavo.

Grazie comunque dell'aiuto!

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