Newsgroup: it.comp.lang.visual-basic
Titolo: [?] DataReport e DataEnvironment

Ciao a tutti,
sto cercando di studiare il nuovo modello di accesso ai dati di VB e ho
qualche domanda per chi ne sa più di me:
DataReport
1) Ma devo per forza associargli un database? E se volessi fare un report
con dati miei?
2) Ma il datasource deve per forza essere un DataEnvironment?
DataView (Finestra di visualizzazione dati)
1) Ho visto che con questa si riesce a visualizzare la struttura di una
tabella e maneggiarla come se si fosse all'interno di SQL, ma se volessi
anche salvare le query che faccio da qui direttamente nel DB?
2) E se volessi modificare la struttura di un DB dall'interno di VB senza
dover ricorrere a SQL o MSDE?
Grazie.


--
----------------------------------------------------------
Luca Passaro
e-mail : 
super...@panservice.it
ICQ : 63481017
Piove sul giusto e piove sull'ingiusto
ma sul giusto piove di più
perché l'ingiusto gli ruba l'ombrello
-----------------------------------------------------------

 al quale gli avevo associato un recordset del dataenvironment.
Questo interessa molto anche a me! In effetti vorrei costruire un recordset che
sia accessibile dal datareport, ma tutti i miei tentativi sono (per ora)
falliti!
Il punto č che uso il dataenvironment per la connessione al database, mentre il
recordset č creato sul momento quando si tratta di ottenere l'informazione,
tramite una definizione del tipo
dim rsCiao as Recordset
set rsCiao = new Recordset
e aperto con
rsCiao.Open "SELECT * FROM Tabella"
Il punto adesso č: come faccio a collegare il DataReport a 'sto cavolo di
recordset???
Grazie per l'aiuto!
Norman

al quale gli avevo associato un recordset del dataenvironment.
Io intendevo... non so', metti che volessi solo stampare della carta
intestata, quindi solo con dati fissi senza nessun collegamento a DB.
Si può fare?
Grazie.

 Si può fare?
Si, si può fare.
Scusa la risposta tardiva ma sono un po' indietro con la lettura del
Newsgroup...
Immaginiamo che tu voglia fare stampare una fattura con un'intestazione
(fissa) tipo carta intestata ed il nome del cliente (variabile per ogni
fattura). Ovviamente sulla fattura vera e propria ci andrebbero tante altre
cose, ma se l'esempio è semplice è più comprensibile.
In sostanza devi creare un report con un campo fisso (l'intestazione) ed un
campo variabile (il nome del cliente di quella fattura lì) su ogni pagina.
L'esempio seguente lo fa, creando un recordset ADO interamente da codice,
senza alcun collegamento ad un database esistente:
------------ ESEMPIO ------------
Anzitutto crea un Datareport (DataReport1) con una etichetta
nell'intestazione pagina (Label1) ed una RptTextBox (TextBox1) nella sezione
Dettaglio.
Le sezioni del report, nella finestra a Design Time del DataReport1,
dovrebbero essere numerate nel modo seguente:
-Intestazione report (Section4)
-Intestazione pagina (Section2)
-Dettaglio (Section1)
-Piè di pagina pagina (Section3)
-Piè di pagina report (Section5).
Nella proprietà DataField di TextBox1 scrivi: NomeCliente; nella proprietà
ForcePageBreak della sezione Dettaglio scegli 2-rptBreakPageAfter.
Infine usa il codice sottostante per creare il recordset e lanciare il
report.
Dim rsPerStampa As ADODB.Recordset
Set rsPerStampa = New ADODB.Recordset
'Appendo al recordset che verrà usato nel report i campi che mi servono
rsPerStampa.Fields.Append "NomeCliente", adChar, 50, adFldUpdatable
'In maniera analoga potrei appendere altri campi
'rsPerStampa.Fields.Append "PartitaIva", adChar, 11, adFldUpdatable
'rsPerStampa.Fields.Append "DataFattura", adDate, adFldUpdatable
'Ecc. ecc.
'Apro il recordset creato a mano
'Il tipo di cursore DEVE essere Static
rsPerStampa.CursorType = adOpenStatic
rsPerStampa.LockType = adLockOptimistic
rsPerStampa.Open
'Adesso il mio recordset è uguale a qualunque altro Recordset ADO
'Posso aggiungerci dei Record
With rsPerStampa
    .AddNew
    !NomeCliente = "ACME S.p.A."
    .Update
    .AddNew
    !NomeCliente = "P.d.P. S.r.l."
    .Update
End With
'Riempio la Label dell'intestazione pagina (Section2)
DataReport1.Sections(2).Controls(1).Caption = "Studio associato De Paperis"
'Imposto la fonte dati del DataReport1
Set DataReport1.DataSource = rsPerStampa
'Et voilà! :-)
DataReport1.Show
------------ FINE ESEMPIO ------------
Spero sia tutto sufficientemente chiaro, se no riposta sul newsgroup.
Ciao,
   <--< Nik >-->