Newsgroup: it.comp.lang.visual-basic
Titolo: Data report e stampa fattura

Premesso che sono un neofita di vb6 e spero perciň mi perdoniate eventuali
castronerie.
Il problema....
Devo stampare una fattura.Stň provando ad usare il datareport con il
dataenviroment e tutto funziona se genero un command per l'intestazione
O(???) per le righe ma come faccio a stamparle entrambe?
Mi spiego meglio se il command cerca le informazioni del cliente le
stampa.Se cerca le righe di fattura le stampa ma come faccio a passare al
datareport due command tra loro non correlati? oppure come posso controllare
dei campi sul datareport per passargli le informazioni sul cliente?
--------------------------------
Inviato via 
http://usenet.libero.it

 entrambe?
dovresti usare il provider msDataShape.
Copio e incollo il codice contenuto in un mio post di qualche tempo fa.
Considera che il codice stesso è di _molto_ tempo fa, quindi non ricordo
_esattamente_ come funziona.
<codice>
Private Sub DataReport_Initialize()
Dim rs As ADODB.Recordset
Dim sSql As String
Dim Nuova As ADODB.Connection
Dim sConn As String
Dim nrs As ADODB.Recordset
sSql = "SHAPE {select * from clu} as Prova1 append({SELECT [Tabella ol].[Data
OL], [Tabella ol].[n° ol], [Tabella ol].[N da trasf], [Tabella ol].cliente,
[tabella ol].codclu from [tabella ol] where stampato = 0} relate [cod clu] to
[codclu]) AS PROVA"
sConn = "Provider=MSDataShape.1;Data Provider=Microsoft.Jet.OLEDB.4.0;"
sConn = sConn & "Data Source=" & sPathDatabase
sConn = sConn & ";Persist Security Info=False"
Set Nuova = New ADODB.Connection
Nuova.Provider = "MSDataShape"
Nuova.Open sConn
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = Nuova
rs.Source = sSql
rs.Open
sSql = Printer.ScaleWidth
Set DataReport1.DataSource = rs
Set nrs = rs("prova").Value
DataReport1.Sections("section1").Controls("textbox1").DataMember = "PROVA"
DataReport1.Sections("section1").Controls("textbox1").DataField = "n da trasf"
DataReport1.Sections("section1").Controls("textbox2").DataMember = "PROVA"
DataReport1.Sections("section1").Controls("textbox3").DataMember = "PROVA"
DataReport1.Sections("section1").Controls("textbox4").DataMember = "PROVA"
End Sub
</codice>
La cosa che mi aveva fatto dannare era l'impostazione del datamember dei
controlli, nel senso che ci ho messo un po' a capire che si faceva così.
hth
--
Salutoni
Sergio

 dovresti usare il provider msDataShape.
OK.
Funziona.
Perň proviamo a vedere le cose in modo diverso.
I dati che servono a Vittorio sono i classici dati di testata
(denominazione,indirizzo, P.Iva, numero fattura), quindi informazioni
STATICHE per ogni fattura.
Io generalmente opero cosě:
Nel datareport, inserisco nella sezione di testata delle label posizionate
come mi serve, e nella sezione di dettaglio i textbox da collegare ai campi.
A runtime, estraggo le info relative alla testata del documento
(recordset.Open).
Metto le informazioni che mi servono nelle Label
(label.Caption=recordset.fields.item("campo").Value)
Ottengo il recordset dei dettagli del documento (Recordset.Open)
Collego la sezione centrale del datareport al recordset (Set
Datareport.Datasource=Recordset)
Collego i textbox ai campi del recordset.
Stampo.
Ciao
Alberto
--
E non so se avrň gli amici a farmi il coro,
o se avrň soltanto volti sconosciuti,
canterň le mie canzoni a tutti loro
e alla fine della strada
potrň dire che i miei giorni li ho vissuti...

 STATICHE per ogni fattura.
sì, è che l'op parlava di un command per ciascuno dei due elementi, e quindi ho
immediatamente pensato ad un master/detail.
Per la fattura, in cui di fatto il "master" è solo uno, il discorso è
effettivamente diverso.
--
Salutoni
Sergio