Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Salto pagina.
mercoledì 20 marzo 2013 - 00.18
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
.NET 3.5
|
Windows 7
|
Windows XP
|
Visual Studio 2008
|
SQL Server 2008 R2
|
Crystal Reports XI
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
mer 20 mar 2013 - 00:18
Ciao a tutti.
Al codice seguente non riesco a fargli fare il salto pagina. Considerando che per le causale e gli articoli il numero di record può variare.
E' possibile un aiuto a risolvere il problema?. Grazie anticipatamente per l'eventuale risposta.
Ciao, Peppino.
Static causale As String
Static ix As Integer
Static i As Integer
For i = i To i + NumeroRighePerPagina ' numero riga per pagina impostato a 30.
If i < bds1.Count Then
causale = CStr(dst1.Tables("Causale").Rows(i).Item(0))
e.Graphics.DrawString(causale, Font3, Brushes.Green, X + 10, Y)
Y += 25 'incremento della variabile per stampare la riga successiva.
cmd = New SqlCommand()
cmd.Connection = SqlHelper.ConnessioneDatabase
cmd.CommandText = "SELECT Cliente, Causale, Articolo, Um, SUM(Quantità) AS QuantitàP, SUM(Importo) AS ImportoP FROM UsciteDettaglio WHERE Cliente=@cliente and Causale=@causale GROUP By Cliente, Causale, Articolo, Um Order By Articolo"
cmd.Parameters.Add(New SqlParameter("@cliente", SqlDbType.VarChar))
cmd.Parameters("@cliente").Value = cliente
cmd.Parameters.Add(New SqlParameter("@causale", SqlDbType.VarChar))
cmd.Parameters("@causale").Value = causale
adp = New SqlDataAdapter(cmd)
dst = New DataSet
adp.Fill(dst, "Articolo")
adp.Fill(dst, "Um")
adp.Fill(dst, "Quantità")
adp.Fill(dst, "Importo")
bds = New BindingSource()
bds.DataSource = dst
bds.DataMember = "Articolo"
bds.DataMember = "Um"
bds.DataMember = "Quantità"
bds.DataMember = "Importo"
adp.Dispose()
cmd.Dispose()
cmd.Connection.Close()
ix = 0
importo1 = 0
importoUm1 = 0
For ix = ix To ix + NumeroRighePerPagina
If ix < bds.Count Then
articolo = CStr(dst.Tables("Articolo").Rows(ix).Item(2))
um = CStr(dst.Tables("Um").Rows(ix).Item(3))
quantità = CDec(dst.Tables("Quantità").Rows(ix).Item(4))
importo = CDec(dst.Tables("Importo").Rows(ix).Item(5))
prezzo = importo / quantità
importoUm = importo / CDec(TxtQuantità.Text)
importo1 += importo
importoUm1 += importoUm
importo2 += importo
importoUm2 += importoUm
e.Graphics.DrawString(articolo, Font6, Brushes.Black, X + 25, Y)
e.Graphics.DrawString(um, Font6, Brushes.Black, X + 290, Y)
e.Graphics.DrawString(Formatta(CStr(quantità), TipoFor.Migliaia_con_decimali), Font6, Brushes.Black, X + 340, Y)
e.Graphics.DrawString(Formatta(CStr(prezzo), TipoFor.Valuta), Font6, Brushes.Black, X + 400, Y)
e.Graphics.DrawString(Formatta(CStr(importo), TipoFor.Valuta), Font6, Brushes.Black, X + 520, Y)
e.Graphics.DrawString(Formatta(CStr(importoUm), TipoFor.Valuta), Font6, Brushes.Black, X + 660, Y)
Y += 25 'incremento della variabile per stampare la riga successiva.
e.HasMorePages = True 'Permetto di stampare la pagina successiva
Else
e.HasMorePages = False
End If
Next
e.Graphics.DrawString(Formatta(CStr(importo1), TipoFor.Valuta), Font3, Brushes.Red, X + 515, Y)
e.Graphics.DrawString(Formatta(CStr(importoUm1), TipoFor.Valuta), Font3, Brushes.Red, X + 655, Y)
Y += 25
End If
Next
e.Graphics.DrawString(Formatta(CStr(importo2), TipoFor.Valuta), Font3, Brushes.Blue, X + 515, Y)
e.Graphics.DrawString(Formatta(CStr(importoUm2), TipoFor.Valuta), Font3, Brushes.Blue, X + 655, Y)
Pagina += 1 'incremento numero della pagina.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 23 apr 2013 - 19:39
Ciao Peppino,
e pensare di usare un motore di reportistica?
Secondo me ti viene più semplice visto che fai una query e poi vai ad impaginare dei dati...
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
mer 24 apr 2013 - 12:58
Ciao a tutti, ciao Matteo
Grazie per la risposta, non ci speravo più, ma come si dice 'meglio tardi che mai'.
Il problema purtroppo è quello di essere ancora un principiante, anche se pratico la programmazione da qualche anno, ma lo faccio saltuariamente(non è il mio lavoro primario) e quindi quando riprendo non dico che ricomincio da zero ma quasi, ecco perché sono a chiedere aiuto su argomenti che magari a Vs. avviso sono elementari. Comunque non voglio prolungarmi, il fatto è che una volta ho provato con altri sistemi ma senza successo. Con PrintDocument mi era sembrato che la cosa fosse più semplice almeno fino a che ho incontrato questa difficoltà in cui sto a chiedere aiuto. Quindi chiedo se al momento è possibile avere l'aiuto per risolvere il problema con questo tipo di stampa. Diversamente ahimè non so.
Comunque ringrazio anticipatamente per l'eventuale risposta.
Ciao, Peppino.
Scusate se posso sembrare rompiscatole, almeno su questo post, purtroppo ho bisogno di realizzare questo tipo di stampa. Se non è possibile un aiuto(che gradirei), almeno avere un'indicazione su dove(oltre a quello di andare a rompere da un'altra parte) e come potermi dedicare e cercare di tentare a risolvere il problema, perché le ricerche che ho già fatte( e ne ho fatte) non hanno dato il risultato tanto sperato.
Spero che qualcuno abbia un po di tempo da dedicare a questo mio problema.
Grazie ancora una volta e chiedo scusa ancora una volta.
Ciao, Peppino.
Torna su
Stanze Forum
Elenco Threads
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 !