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
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Salto pagina
mercoledì 10 aprile 2013 - 21.21
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
mer 10 apr 2013 - 21:21
Ciao a tutti.
Sicuramente il mio post non suscita interesse per il Forum(per non avere risposta), purtroppo per me è un problema che non riesco a risolvere.
Ripeto ho fatto le dovute ricerche, ho letto, ho riletto, ho provato e riprovato, purtroppo il risultato è sempre al punto di partenza. Vi prego, anche se il mio post può essere ridicolo , datemi comunque un aiuto a risolvere il problema.
Grazie come sempre a tutti.
Ciao, Peppino.
Al codice seguente non riesco a fargli fare il salto pagina. Senza del ciclo esterno funziona benissimo, ma con l'aggiunta del ciclo esterno niente da fare. Ho postato in altra stanza, ma non ho avuto nessuna risposta ed ho pensato non fosse quella giusta, chiedo scusa se faccio sempre confusione a riguardo. Faccio presente di aver fatto delle ricerche nell'archivio del Forum e in rete e per quello riuscivo a capire(almeno io) le ho provate tutto, ottenendo sempre lo stesso risultato. Non so più dove sbattere la testa.
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
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.
renarig
Profilo
| Expert
517
messaggi | Data Invio:
gio 11 apr 2013 - 21:19
>Senza del ciclo esterno funziona benissimo, ma con l'aggiunta
>del ciclo esterno niente da fare.
in quel codice ci ho capito poco.
mi sono fermato al primo "bds1" che non capisco cosa sia.
partiamo invece da una posizione di vantaggio, postaci il codice che ti funziona benissimo
dicci di quale DB e applicazione si tratta eccetera
e spiegaci poi come lo vuoi modificare
.
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
ven 12 apr 2013 - 00:11
Ciao, grazie per la risposta.
Uso database Sql e Visual Studio 2008.
Con il codice di seguito riportato vorrei realizzare il seguente risultato:
Cliente ‘dato che viene passato tramite una combobox, e per il Cliente selezionato le
Causale ‘appartenente al Cliente selezionato che possono essere 1, 10 o 100 con i
‘relativi dettagli quali articolo, um, quantità, prezzo ecc. Esempio:
Cliente: Giuseppe
Causale1: Acquisti
Dettagli: Articolo Um Quantità Prezzo Importo
Mele kg 30 €.1,50 €.45,00
Pere kg 25 €.2,00 €.50,00
Vino lt 10 €.1,50 €.15,00
Totale causale1 €.110,00
Causale2: Vendite
Dettagli: Articolo Um Quantità Prezzo Importo
Patate kg 20 €.1,00 €.20,00
Pomodori kg 5 €.2,00 €.10,00
Acqua pz 10 €.1,50 €.15,00
Totale causale2 €.45,00
Cosi fino ad esaurimento causali per quel determinato cliente.
Se eseguo solo il codice racchiuso tra gli asterischi, cioè che la causale una alla volta la passo tramite una combobox, il salto pagina come impostato funziona benissimo.
Se invece vorrei estrarre le causali con ciclo ‘For Next’ con l’aggiunta del codice racchiuso tra le righe tratteggiate, il salto pagina non sono riuscito ad impostarlo.
Spero di essere stato almeno in grado a farmi capire per quello che voglio, perché se il codice è poco chiaro, è dovuto al fatto di non essere ancora all’altezza di scrivere un codice facilmente leggibile da tutti e in tutti i sensi.
Ringrazio come sempre anticipatamente per l’eventuale risposta.
Ciao a tutti. Peppino.
Static i As Integer
Static i1 As Integer = 0
Dim RighePerPagina As Integer = CInt(NumericUpDown1.Value)
Dim cmd As SqlCommand
Dim dst As DataSet
Dim adp As SqlDataAdapter
Dim bds As BindingSource
Dim cmd1 As SqlCommand
Dim dst1 As DataSet
Dim adp1 As SqlDataAdapter
Dim bds1 As BindingSource
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
cmd1 = New SqlCommand()
cmd1.Connection = SqlHelper.ConnessioneDatabase
cmd1.CommandText = "SELECT COUNT(*) FROM UsciteDettaglio WHERE Cliente=@cliente GROUP By Causale"
cmd1.Parameters.Add(New SqlParameter("@cliente", SqlDbType.VarChar))
cmd1.Parameters("@cliente").Value = cliente
ConnessioneDatabase.Open()
Dim causali As Object = cmd1.ExecuteScalar()
ConnessioneDatabase.Close()
If causali Is DBNull.Value Or causali Is Nothing Then
causali = 0
End If
Dim NumeroCausali As Integer = CInt(causali)
cmd1 = New SqlCommand()
cmd1.Connection = SqlHelper.ConnessioneDatabase
cmd1.CommandText = "SELECT Causale FROM UsciteDettaglio WHERE Cliente=@cliente GROUP By Causale"
cmd1.Parameters.Add(New SqlParameter("@cliente", SqlDbType.VarChar))
cmd1.Parameters("@cliente").Value = cliente
adp1 = New SqlDataAdapter(cmd1)
dst1 = New DataSet
adp1.Fill(dst1, "Causale")
bds1 = New BindingSource()
bds1.DataSource = dst1
bds1.DataMember = "Causale"
adp1.Dispose()
cmd1.Dispose()
cmd1.Connection.Close()
For i1 = i1 To i1 + NumeroCausali
If i1 < bds1.Count Then
causale = CStr(dst1.Tables("Causale").Rows(i1).Item(0))
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
************************************************************************************
************************************************************************************
e.Graphics.DrawString(causale, Font3, Brushes.Blue, X + 10, Y)
Y = Y + 30
e.Graphics.DrawString(" Articolo Um Quantità Prezzo Importo Imp. a ", Font3, Brushes.Green, X + 40, Y)
Y = Y + 25
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()
For i = i To i + RighePerPagina - 1
If i < bds.Count Then
articolo = CStr(dst.Tables("Articolo").Rows(i).Item(2))
um = CStr(dst.Tables("Um").Rows(i).Item(3))
quantità = CDec(dst.Tables("Quantità").Rows(i).Item(4))
importo = CDec(dst.Tables("Importo").Rows(i).Item(5))
prezzo = importo / quantità
importoUm = importo / quantità
importo1 += importo
importoUm1 += importoUm
e.Graphics.DrawString(articolo, Font6, Brushes.Black, X + 50, Y)
e.Graphics.DrawString(um, Font6, Brushes.Black, X + 400, Y)
e.Graphics.DrawString(Formatta(CStr(quantità), TipoFor.Migliaia_con_decimali), Font6, Brushes.Black, X + 480, Y)
e.Graphics.DrawString(Formatta(CStr(prezzo), TipoFor.Valuta), Font6, Brushes.Black, X + 620, Y)
e.Graphics.DrawString(Formatta(CStr(importo), TipoFor.Valuta), Font6, Brushes.Black, X + 760, Y)
e.Graphics.DrawString(Formatta(CStr(importoUm), TipoFor.Valuta), Font6, Brushes.Black, X + 900, Y)
Y += 25 'incremento della variabile per stampare la riga successiva.
e.HasMorePages = True
Else
e.HasMorePages = False
End If
Next
'Totale della causale.
e.Graphics.DrawString(Formatta(CStr(importo1), TipoFor.Valuta), Font3, Brushes.Red, X + 755, Y)
e.Graphics.DrawString(Formatta(CStr(importoUm1), TipoFor.Valuta), Font3, Brushes.Red, X + 895, Y)
************************************************************************************
************************************************************************************
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
Y += 25
End If
Next
------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
Pagina += 1 'incremento numero della pagina.
renarig
Profilo
| Expert
517
messaggi | Data Invio:
ven 12 apr 2013 - 21:09
>Uso database Sql e Visual Studio 2008.
Io non sono in grado.
magari qualcuno piu esperto
.
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
ven 12 apr 2013 - 22:55
Grazie comunque, spero ci sia qualcuno più esperto(di me sicuramente) che abbia voglia di dedicare un po del suo tempo prezioso al mio problema e che io gradirei tantissimo. Grazie ancora.
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 !