Immagini in report

venerdì 16 aprile 2004 - 16.45

mon Profilo | Newbie

Ciao ho creato un report .rpt con crystal report, e in fase di creazione ho indicato le tabelle e i campi di un database sql che devono essere associati al report. Il problema è che in un tabella (prodotto) ho un campo 'foto' che contiene, per ogni riga, il percorso dell'immagine corrispondente; quindi il report mi visualizza quel campo, cioè il percorso dell'immagine, invece dovrebbe cisualizzare l'immagine vera e propria. Come devo fare?Sto impazzendo da giorni, mi potete aiutare?Grazie mille

mon Profilo | Newbie

Nessuno mi sa dare 1 mano?Sono veramente disperata, credetemi. Per favore aiutatemi

Brainkiller Profilo | Guru

Ciao,
ho provato questa cosa non molto tempo fa. Ricordo che quando inserivi un controllo immagine dentro il report Crystal faceva partire un Wizard che ti chiedeva se volevi collegare l'immagine ad un campo di un database e ero riuscito a fare visualizzare le immagini.
Bisogna capire tu come hai salvato le immagini nel Database se hai semplicemente il path oppure le hai salvate proprio internamente come dati binari (BLOB). Io ce le avevo salvate come BLOB.

fammi sapere.

ciao
david

mon Profilo | Newbie

Io ho creto il campo nella tabella del database in sql di tipo testo, poichè ho provato a crearlo di tipo binary, ma nn ti consente di inserire niente.Tu come hai fatto ad inserire i valori per qual campo?Grazie

mon Profilo | Newbie

Brainkiller ci 6? Mi puoi aiutare x favore?Grazie

Brainkiller Profilo | Guru

Si scusa, ciao.
Certo manualmente non puoi inserire niente in un campo binary.
O usi strumenti da linea di comando come bcp.exe contenuto (contenuto in SQL Server) oppure puoi seguire le istruzioni contenute in questo documento Microsoft che ti spiega appunto come leggere e scrivere dati BLOB (binari praticamente) in un Database tramite ADO.NET:

http://support.microsoft.com/?id=308042

ciao
david

mon Profilo | Newbie

Grazie, sei stato veramente gentile! Io sto seguendo la seconda alternativa; ho usato prima il codice per salvare nella tabella del database l'immagine a partire dal suo path; ora sto cercando di usare il codice che legge l'immagine dalla tabella del database; nel codice che mi hai inviato, e che si riferusce a questo passo, viene letta l'immagine dal databse e viene salvata in un file; nel mio caso però, dopo che leggo l'immagine, come faccio ad associarla al report? In pratica cosa devo passare al report? Grazie della disponibilità.

mon Profilo | Newbie

Brainkiller ci 6?Mi puoi dare ancora 1 mano?Spero di nn disurbarti più.Grazie

Brainkiller Profilo | Guru

L'importante è che l'immagine sia salvata correttamente.
Poi nel Crystal Report, provi ad aggiungere un'immagine, lì dovrebbe partire uno Wizard automatico che ti chiede dove sta l'immagine se nel Database o su disco. Se tu specifichi la colonna del database in cui viene immagazzinata e poi lanci il Report auotmaticamente la dovresti vedere visualizzata.

ciao
david

mon Profilo | Newbie

Forse è proprio questo il problema: quando io aggiungo una immagine da file è vero che parte un wizard ma nn c'è assolutamente riferimento al database; infatti se inserisco una picture, si apre una pop-up per scegliere l'immagine dal disco; se inserisco un OLE Object ci sono 2 possibilità: Crea nuovo e Crea da file, ma nn c'è riferimento al database. Nn so come devo fare; molto gentilmente , potresti spiegarmi che devo fare?Scusa ancora e grazie tante.

Brainkiller Profilo | Guru

Sorry, ho sbagliato io mi ricordavo male.
Allora, se tu aggiungi un Report al tuo progetto, parte il Wizard che ti chiede che tipo di report vuoi. Seleziona un Report Standard, poi la composizione prosegue e ti chiede la connessione a DB, che tabelle vuoi includere, i campi ecc.
Se stai usando SQL Server usa come database il famoso Northwind e prendi la tabella Employees. Lì c'è un campo Photo che ha dentro dei dati binari che rappresentano la foto.
Una volta terminata l'autocomposizione, nella parte a sinistra durante l'editing del report, apri il ramo Database Fields e poi Employees, seleziona il campo Photo e trascinalo dentro al report vedrai apparirà automaticamente l'immagine. Lanci il report e verranno rappresentate anche le altre.

Ti allego al messaggio una screenshot significativa.

ciao

david

mon Profilo | Newbie

Grazie tante. Ho provato a creare un report a cui ho associato i campi della tabella Employees del database Northwind e il campo Photo è visualizzato correttamente. Ora vorrei capire una cosa: io ora provo a fare la stessa cosa con la tabella 'prodotto' del mio databse e trascino il campo 'campo_immagine' della tabella di tipo image: ma le immagini le devo salvare in quel campo da codice, come ho fatto col codice che mi hai inviato giorni fa in cui a partire dal percorso dell'immagine si ricavava l'immagine e veniva salvata nella colonna della tabella?Come mai allora questo nn viene fatto nella tabella 'Employees'?Cioè li ho il campo di tipo image, ma direttamente nella tabella, come tu mi hai detto, nn può avvenire l'inserimento dell'immagine; allora come è che l'immagine da quel campo viene prelevata e visualizzata direttamente nel report?Grazie veramente tante.

Brainkiller Profilo | Guru

Non ho capito molto di quello che hai detto comunque, il database Northwind è incluso sempre in SQL Server e in access è un Database d'esempio. Lì le immagini sono già state inserite precedentemente. Se tu vuoi fare la stessa cosa devi caricare all'interno del campo image in una tua tabella le tue fotografie o immagini. Per fare questa operazione devi usare il codice presente nel documento che ti ho indicato precedentemente.
Una volta inserite, fai le operazioni che ti ho suggerito nel messaggio di ieri sera e vedrai che appariranno anche le tue immagini.

ciao
david

mon Profilo | Newbie

Grazie tante!!!Finalmente ho risolto tutto grazie a te, mentre ormai avevo perso le speranze.Scusa ancora x tutto il tempo che ti ho fatto perdere, ma continuo a ringraziarti. Ciao

Brainkiller Profilo | Guru

Figurati...di niente.

ciao
david

mon Profilo | Newbie

Scusa ti posso chiedere 1 cosac che nn riguarda le immagini?Nel report associo un campo di testo che contiene un campo di una tabella; questo contiene una lunga descrizione: come è che, anche se l'oggetto field del report è molto grande, sono è visualizzata solo la parte iniziale della lunga descrizione?Grazie ancora.

Brainkiller Profilo | Guru

Di che tipo è la colonna del database ? Quanto è lungo il testo in caratteri ? Forse la Label nel Report supporta una dimensione con un limite, fai tasto destro proprietà sulla label e verifica se ci sono opzioni particolari relative alla lunghezza del testo rappresentato.

ciao
david

mon Profilo | Newbie

Il campo nella tabella è di tipo varchar di lunghezza 500. Ho cercato tra le proprietà dell'oggetto field nel report, ma nn mi sembra di aver visto alcuna proprietà che si riferisce alla lunghezza del testo da inserire.Tu sai qualcosa?

mon Profilo | Newbie

Brainkiller ci sei? Spero che nn ti disurberò +. Grazie.

Brainkiller Profilo | Guru

Se non rispondo o non avevo tempo o non sapevo la soluzione e la stavo cercando.
Ora sono riuscito a liberarmi e a fare delle prove.
Allora, se tu nel report fai tasto destro sulla label dove appare il tuo testo e selezioni dal menù la voce "Format.." troverai un'opzione chiamata "Can Grow" e una textbox in cui puoi inserire il numero massimo di linee.
In questo modo quando lanci il report vedrai che verranno riportate tot righe della tua colonna.

ciao
david

mon Profilo | Newbie

Grazie. Ho fatto come tu mi hai detto, ma c'è un problema: vengono visualizzate solo 2 righe e mezzo: eppure se indico come num max di righe in CanGrow 1 oppure 2, viene esattamente visualizzata 1 riga oppure 2 righe; se invece inserisco 3 o più di 3 righe, ne vengono visualizzate sempre 2 e mezzo: sai il motivo?Grazie ancora.

Brainkiller Profilo | Guru

Forse è tutto ciò che è contenuto nella colonna.
Prova a mettere 30 righe.

ciao
david

mon Profilo | Newbie

No, nella colonna della tabella è contenuta una descrizione molto più lunga. Ho provato a mettere 30, ma ne vengono visualizzate sempre 2 e mezzo.Nn so proprio cosa fare.

mon Profilo | Newbie

Brainkiller nn puoi più aiutarmi?io mi sono bloccata e nn so come andare avanti.

Brainkiller Profilo | Guru

Ciao,
non saprei che altro suggerirti. Non è che magari ci sono caratteri particolari tipo ritorni a capo \r o \n nella colonna dati ?
Funziona così per tutti i record ?
Perchè non provi a crearti un record di prova dove inserisci man mano del testo e fai contemporaneamente le prove su Crystal per vedere se si vede sempre tutto e se non si vede almeno capisci quale è la causa, non so, dei caratteri particolari, oppure un numero eccessivo di caratteri.
Prova a fare un po' di troubleshooting tu e vedi se ne cavi qualcosa.

ciao
david

mon Profilo | Newbie

Ciao, ho provato a modificare man mano il contenuto del campo 'descrizione', cambiando i caratteri, ma il risultato è sempre lo stesso. Mi sembra che visualizza il contenuto sempre fino ad un certo punto (un dato numero di posizioni della frase, inclusi le lettere e gli spazi vuoti), eppure nel report ciò nn è stato stabilito da nessuna parte. nn so che fare!!!!!!!!!!!!

mon Profilo | Newbie

Ho capito perchè, per ogni campo, viene visualizzata solo la parte iniziale del contenuto relativo, anche se nn capisco il perché : se faccio col tasto destro sul nome del campo che ho incluso nel report, e clicco su 'Browse Field Data....', compare una finestra con i contenuti di tutte le righe della tabella relativamente al campo considerato; inoltre sempre in quella finestra in alto c'è scritto 'Type: String, Length:50'. Da dove ddriva la lunghezza pari a 50? io nn l'ho impostata da nessuna parte.Tu sai il motivo?
Grazie.

Brainkiller Profilo | Guru

Purtroppo no.
Cosa utilizzi per estrarre i dati ? Una query semplice o una Stored Procedure ?
Sicuro che il campo sia un varchar 500 e non 50 ?

ciao
david

mon Profilo | Newbie

Ciao, uso 1 stored procedure, e il campo della tabella nel database è di sicuro di tipo varchar(500).

tuttologo Profilo | Newbie

sarebbe interessante specificare come utilizzare un "XSD" per report creaty "al volo" nel senso con tabelle riempite solo per l'occasione senza usare db collegati. In vs.net ci sono esempi esaurienti rimarrebbe da specificare che tipo di dati utilizzare nell'xsd per il campo immagine e magari un piccolo esempio.

Andrea Scurci - spamkiller@tuttologo.net
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