Ritagliare immagini in CR

lunedì 09 marzo 2009 - 12.06

YoungWorker Profilo | Newbie

Ciao a tutti, ho un problema con le immagini: in un report ho bisogno che l' immagine inserita (come campo BLOB di una query) sia ritagliata anzichè ridimensionata; nella formattazione del grafico (tasto destro sull' immagine) ho visto che si può fare ma non ho trovato il modo di farlo con delle formule e quindi dinamicamente.
CR è Crystal report basic 2008
Grazie anticipatamente.

ps se vi mancano informazioni scusatemi ma sono nuovo e come si capisce dal nome sono un giovane lavoratore = non espertissimo...

ysdemarc Profilo | Expert

forse ci riesci così..

selezionando il campo Blob che hai inserito nel foglio di crystal report

cliccando "Format grafic" nella scheda "Picture" hai un frame "Crop From"

credo lo si faccia da li quello che hai bisogno..

fai una prova e facci sapere.

ciao
Vincenzo
Programmatore sbilenco

YoungWorker Profilo | Newbie

Ciao, come dicevo nella domanda ho visto che da li si può fare; il problema è che non riesco a farlo dinamicamente, mi spiego meglio: io ho immagini di diversa grandezza, ogni volta che ne viene caricata una dovrei controllare che la larghezza e l' altezza superino 2,5 cm; se è cosi le ritaglio. La finestra che si apre invece consente solo di ritagliare un immagine sempre di n X m senza controlli ne formule dinamiche. Hai qualche idea per farlo in questo modo?
ps se ti può aiutare con formule intendo quelle tipo "ometti se"..
grazie mille

ysdemarc Profilo | Expert

temo allora che non si possa fare...

l'unico modo che mi viene in mente al momento è di passare le immagini ad un subreport.

nella pagina principale dalle proprietà del subreport togli il segno di spunta in CanGrow e gli dai le dimensioni che vuoi..

in questo modo vedi solo quello e il resto dell'immagine è come se fosse tagliata
Vincenzo
Programmatore sbilenco

YoungWorker Profilo | Newbie

Si ci ho provato ma ho trovato difficoltà nel fatto che un sottoreport ha bisogno di un' altra origine dati.Io uso delle StoredProcedure in SQl2005 e quella agganciata al report ha bisogno di impostare dei parametri a mano, facendo riferimento alla stessa stored me li chiede 2 volte; potrei richiamare la stored del subreport da quella principale passandogli i parametri..proverò.. In ogni caso grazie mille per l' aiuto

ysdemarc Profilo | Expert

non propio...al DataSource puoi la stessa fonte dati..

o meglio ti popoli un datatable che passerai sia a quello principale che al subreport...

con un'unico accesso quindi al db...

Vincenzo
Programmatore sbilenco

YoungWorker Profilo | Newbie

..mi sembra di capire che tu gestisci anche l' interfaccia tra il software e Crystal perchè Datatable è un oggetto di .Net giusto? purtroppo non mi occupo di quella parte, io creo le Stored e le aggancio al report..se invece non è così mi potresti spiegare come fare perchè in Crystal non ho mai visto usare delle DataTable...Grazie

freeteo Profilo | Guru

Ciao,
se vuoi vedere come visualizzare un report passandogli un DataTable puoi scaricarti l'esempio che trovi qui:
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx
Sostanzialmente cmq si tratta di usare il metodo "SetDAtaSource" dopo che hai riempito una datatable leggendo da un database.

Per il problema di applicare quell'operazione di "crop" da codice non credo nemmeno io sia possibile, se non facendo qualcosa da codice, come ad esempio quello che viene mostrato qui per caricare l'immagine vera e propria:
http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx
dove viene passato l'array di byte dell'immagine letta da codice sul disco...facendo così potresti fare qualche operazione sull'immagine direttamente usando le classi del namespace System.Drawing del Framework.
Chiaramente se hai tanti dati da visualizzare vanno valutate le prestazioni...

Altrimenti potresti assoggettare l'operazione di crop ad una formula, e sempre da codice analizzare l'immagine girando sulle righe lette dal db ed impostare il valore della formula a seconda di quello che hai trovato...

Ciao.

Matteo Raumer
[MVP Visual C#]
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