VB6 & CR 8.5 - Stampa Fatture/DDT

giovedì 06 agosto 2009 - 13.45

antocasi Profilo | Newbie

ciao, ho un piccolo grande problema con la stampa delle mie fatture e DDT da VB6, cioè non so come fare a stampare più fatture in una unica volta.
Mi spiego meglio, io ho fatto il mio bel rpt delle fatture, poi da VB6 lo lancio utilizzando la proprietà RecordSelectionFormula per dire il numero di fattura.
E fin qui tutto bene
Il problema nasce quando io voglio stampare più di una fattura perchè se io passo nel RecordSelectionFormula più numeri di fattura mi esce sempre comunque una sola fattura con il dettaglio di tutte le altre anzichè stampare N fatture. E' come se mancasse un raggruppamento x numero di fattura ma non so come farlo in CR.

Non riesco a capire se è sbagliata la stringa SQL (ma non credo proprio), se è fatto male il report o se sbaglio da VB?
Di seguito il codice utilizzato in VB:
Private Sub CmdPrint_Click() Dim Conta As Integer Dim crAPP As New CRAXDRT.Application Dim Report As CRAXDRT.Report Dim tbl As CRAXDRT.DatabaseTable Dim StrPrn As String, QryPrn As DAO.Recordset MSFDDT.Col = 0 If MSFDDT.Text = "" Then Exit Sub If Val(TxtNumVoci.Text) = 0 Then Exit Sub If Not Messaggio("119") Then Exit Sub StrPrn = "SELECT * FROM STAMPA_DDT" Set QryPrn = DBDat.OpenRecordset(StrPrn, dbOpenDynaset) Set DatPrn.Recordset = QryPrn Set Report = crAPP.OpenReport(DBPath & "\Print\ddt.rpt") 'Imposta Database all'interno del report For Each tbl In Report.Database.Tables tbl.SetLogOnInfo "", "", "", DbPwd tbl.Location = DBPath & "\Dati\DATI.mdb" Next Report.RecordSelectionFormula = "{DDT.ID_DDT}=" & CInt(MSFDDT.Text) FrmCRViewer.CRViewer1.ReportSource = Report FrmCRViewer.CRViewer1.ViewReport FrmCRViewer.Show ' Vengono distrutti gli oggetti Set Report = Nothing Set crAPP = Nothing End Sub

Qualsiasi aiuto è gradito
Grazie

erongis Profilo | Junior Member

>Report.RecordSelectionFormula = "{DDT.ID_DDT}=" & CInt(MSFDDT.Text)

Qui mi semba che ti passi il codice del DDT, per cui, se è così, stampi sempre e solo un documento alla volta.

In ogni caso, mi sembra che il report non sia fatto bene. sicuramente hai messo i dati di testata del ddt nell'intestazione del report e invece devi fare un raggruppamento dati ed indicare l'intestazione del ddt.

In pratica, dovresti aggiungere un raggruppamento per {righeDiDettaglio.CodiceDDT} (sempre che la tavola ed il campo siano giusti) ed inserire nella sezione nuova di raggruppamento i dati di testata.

In ogni caso sarebbe bello vedere magari un PDF della stampa singola e di quella multidocumento errata. non so se si può, oltre alla struttura della base dati (suppongo ti abbia una tavola con i dati di testata del DDT ed una con i dati delle righe ddt).

freeteo Profilo | Guru

Ciao, perdona il ritardo nella risposta, agosto è mese dove andiamo in ferie anche noi

anche io penso che la RecordSelectionFormula non sia corretta, l'uguale filtra i dati tornando un solo numero di fattura da stampare, oppure come dice ergonis hai dimenticato/sbagliato i raggruppamenti.
L'unica cosa è che se il problema invece è nella formula, ti ricordo che puoi usare "IN" dentro alla sintassi Crystal, quindi fare qualcosa tipo:
{campo} in [1,3,4,5,6]
ed gli dai un range di valori...

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

antocasi Profilo | Newbie

traquilli è agosto anche per me

premesso che la selezione è al momento corretta, se ho ben capito io devo aggiungere un nuovo raggruppamento nel report e riportare in quella selezione tuitto quello che adesso io ho nella sezione di Testata del report o della pagina, poi ovviamente modifico la RecordSelection altrimenti ne stampa sempre solo una.
Ci Provo e vi faccio sapere.
Grazie

freeteo Profilo | Guru

>traquilli è agosto anche per me



>premesso che la selezione è al momento corretta, se ho ben capito
>io devo aggiungere un nuovo raggruppamento nel report e riportare
>in quella selezione tuitto quello che adesso io ho nella sezione
>di Testata del report o della pagina, poi ovviamente modifico
>la RecordSelection altrimenti ne stampa sempre solo una.
esatto


>Ci Provo e vi faccio sapere.
>Grazie
ok

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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5