Newsgroup: it.comp.lang.visual-basic
Titolo: domanda su DataReport

salve.
per usare datareport in vb6 è necessario che la sorgente dati sia un 
database?
potrei usare come sorgente dati dei controlli label o picturebox 
presenti in un form?
se si può fare qualcuno mi spiegherebbe a grandi linee come collegare il 
datareport a queste sorgenti dati?
Ringrazio in anticipo

 database?
Se non ricordo male, non è "strettamente" necessario: la sorgente dati
deve essere costituita da un recordset, ma nulla vieta di costruirsene uno
"on the fly" senza che sia "raccolto" da un db.
Certo che bisogna vedere se il gioco vale la candela...
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Certo che bisogna vedere se il gioco vale la candela...
Esattamente come dice un riposato Melchiade.
Un recordset può essere creato e strutturato a runtime senza 
appoggiarsi a niente.
Poi lo si popola con ciò che si vuole, e lo si collega al recordset.
E' un escamotage che io utilizzo spesso quando devo stampare datareport 
disegnati completamente a runtime, cioè quando sposto e popolo 
manualmente label e immagini nel report. Allora, siccome il database 
non mi serve, creo un recordset con un campo e un record, e lo attacco 
al recordset (giusto perchè senza recordset il datareport non si apre 
proprio).
Ciao
Alberto
-- 
Ma noi no

 Poi lo si popola con ciò che si vuole, e lo si collega al recordset.
'al datareport'


 Esattamente come dice un riposato Melchiade.
Ma già pronto a ripartire, per altro :-)
Tu hai già impegni per la settimana prossima?
(Lo so, è una domanda cattiva)


 (Lo so, è una domanda cattiva)
*io* sono stato in barca il weekend scorso. Con moglie e figlie.
*io* sarò in barca il prossimo weekend, con moglie e figlie, oppure, se 
le 3 donne di casa si cavano dai coglioni e vanno in Liguria, vado in 
barca con amici e donnacce.
*tu*?
:-)


 Poi lo si popola con ciò che si vuole, e lo si collega al recordset.
salve Alberto, premettendo che sono un novizio, ho provato a fare come 
dice Lei; ho creato un recordset e l'ho associato al datareport ma 
ottengo il seguente errore:
"gli argomenti non sono di tipo valido,non sono compresi nell'intervallo 
consentito o sono in conflitto".
Di seguito il codice per creare il recordset e associarlo ad datareport.
ho impostado le proprietà datasource e datamember del datareport 
rispettivamente ad rs e campo.
secondo lei dov'è che sbaglio?
Distinti saluti
     Set rs = New ADODB.Recordset
     rs.Fields.Append "campo", adChar, 40, adFldIsNullable
     rs.Open
     rs.AddNew
     rs.Fields("campo") = "valore"
     rs.Update
     Set DataReport1.DataSource = rs
     rs.MoveFirst
     DataReport1.Show

 rispettivamente ad rs e campo.
Questo no.
Anche perchè, come puoi avere impostato la proprietà datasource a RS a 
designtime?
Elimina entrambe le impostazioni.
Al limite, 'campo' lo metterai nelle proprietà di un RptTextBox in 
sezione 1 del datareport.
Il resto del tuo codice è (quasi) perfetto:
    Dim RS As ADODB.Recordset
    Set RS = New ADODB.Recordset
    RS.Fields.Append "campo", adChar, 40, adFldIsNullable
    RS.Open
    RS.AddNew
    RS.Fields("campo") = "valore"
'    RS.Update
    Set DataReport1.DataSource = RS
'    RS.MoveFirst
    DataReport1.Show


 *tu*?
Io vado con Pietro a ricollaudare l'Aleph dopo che è stata in mano agli
sciamannati di Caprera. Da domenica a venerdì :-) x 10.000


 Da domenica a venerdì.
Cavolo.
Complimenti.
Hai un contratto di lavoro alla Beppe?


Albe V° ha scritto:
 > Elimina entrambe le impostazioni.
fatto
 > Al limite, 'campo' lo metterai nelle proprietà di un RptTextBox in
 > sezione 1 del datareport.
facendolo a design time o a runtime?
io ho provato a farlo a design time ma quando viene mostrato il report
ottengo l'errore:
"impossibile trovare datafield rs.campo"
un'informazione: in un recordset posso copiare il contenuto di una
picture box riempito a runtime da visualizzare sul report?
Grazie mille per la pazienza...
La ringrazio ancora

 Grazie mille per la pazienza...
Ti consiglio comunque di fare prima qualche prova semplice e di 
cercarti codice di esempio su google, perchè ho l'impressione che ti 
stia avventurando a tentoni in una cosa non banale.


 andrebbe passato byref, ma non puoi fare passaggi byref a designtime.
ho scritto proprio campo nel DataField della RptTextBox, ma non capisco 
perchè mi da quell'errore.
Devo forse settare a runtime il campo datamember della RpttextBox 
associandolo al recordset?
grazie di tutto

 sulla form.
Uhmm...
Vorrei cercare di capire cosa intendi esattamente con questa frase, perchè
mi sembrava che non fosse possibile inserire immagini "personalizzate" nel
dettaglio del record. Per intenderci, se stampi un listino prezzi non
riesci a mettere l'immagine del "prodotto" in parte alla descrizione dello
stesso.


 Hai un contratto di lavoro alla Beppe?
No. Sto solo molto antipatico ai colleghi, per cui se chiedo ferie me le
danno con gioia.


 associandolo al recordset?
ho risolto cancellando la proprietà DataMember della RptTextBox a cui 
avevo erroneamente assegnato rs.
ora vedrò se riuscirò a visualizzare le immagini sul report, speriamo 
bene...
grazie

 stesso.
O io o te, qualcuno ha frainteso.
L'OP chiedeva di poter copiare il contenuto di *una* picturebox, per 
cui ho pensato ad una cosa tipo il marchio della carta intestata, cioè 
una immagine 'statica', non di dettaglio.
L'OP, però, chiedeva di mettere tale immagine in un 'recordset'. Ho 
pensato ad un errore di digitazione. Se invece intendeva proprio una 
cosa tipo un Blob, posso dire che a quanto mi risulta, e come dice il 
buon Melchiade, non si può mettere nel dettaglio.


 ora vedrò se riuscirò a visualizzare le immagini sul report, speriamo bene...
Una immagine per datareport, non una immagine per record.


 buon Melchiade, non si può mettere nel dettaglio.
scusatemi per non essere stato abbastanza chiaro, comunque nel report 
voglio inserire un codice a barre che ho disegnato (ovviamente a 
runtime) in una picture box e voglio che sia stampato sul mio Report.
Si può fare con il datareport? devo prima "passare il contenuto" della 
picture box al recordset?
purtroppo ho notato che i controlli RptImage non hanno una proprietà 
DataField...

 DataField...
Appunto.


 runtime) in una picture box e voglio che sia stampato sul mio Report.
Come ti ha specificato Alberto, non è possibile. Potresti aggirare il
problema utilizzando dei textbox, e un apposito font creato apposta per
rappresentare i codici a barre, ma è una cosa che non ho mai provato a
fare, ne ho solo sentito parlare sul ng, quindi non posso fornirti
ulteriori dettagli.
Prova a guardare qui:
http://tinyurl.com/8uc44


 No, trasferisci direttamente il contenuto della picturebox nel rptimage.
mi scusi Alberto, ma non riesco ad effettuare questa assegnazione.
se ho un controllo Image1 di tipo RptImage come copio il contenuto della 
picturebox? l'assegnazione va fatta dal datareport o dal form che 
contiene la picturebox?
intellisense non mi mostra le proprietà di Image1 nè di 
Datareport1.image1, come faccio a cambiare le proprietà del controllo 
image1?
grazie

Webm@N ci ha detto :

Navigare negli object model deve essere familiare, se si utilizza un 
ambiente Object Oriented:
Set 
DataReport1.Sections.Item("Section1").Controls.Item("Image1").Picture = 
Picture1.Image
