Created
November 20, 2017 14:33
-
-
Save riccardopirani/a220e756e814f2eaa8ed76d7d784ecba to your computer and use it in GitHub Desktop.
Print.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try { | |
Preventivi p = new Preventivi(int.Parse(IdPreventivo)); | |
p.db = this.db; | |
String Query = "SELECT Preventivo.IdPreventivo,Utente.LogoAzienda,convert(VARCHAR(10),Preventivo.DataInserimento,105) as DataInserimento,Preventivo.RiferimentoInterno,Preventivo.Testata,Preventivo.Chiusura,Cliente.Titolo,Cliente.RagioneSociale,Cliente.Indirizzo,Cliente.Cap,Cliente.Citta,Cliente.Provincia FROM Preventivo inner join Cliente on Cliente.IdCliente = Preventivo.IdCliente inner join Utente on Preventivo.UtenteCreazione = Utente.Username where Preventivo.IdPreventivo='" + IdPreventivo + "' "; | |
String Query2 = "DECLARE @T AS table( Descrizione varchar(5000), NumeroCapitolo varchar(100), SottoCapitolo1 varchar(5000), SottoCapitolo2 varchar(5000), SottoCapitolo3 varchar(5000), Totale money, DescrizioneEstesa varchar(5000), Images Image, CostoUnitario money, Quantita money, DescrizioneDis varchar(5000)); INSERT INTO @T SELECT Capitolo.Descrizione, Capitolo.NumeroCapitolo,SottoCapitolo.SottoCapitolo1,SottoCapitolo.SottoCapitolo2,SottoCapitolo.SottoCapitolo3,ROUND(((((ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * PercentualeUtile) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * SottoCapitolo.Quantita), 2)) / 100) * PercentualeMargine) + (ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * PercentualeUtile) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * SottoCapitolo.Quantita), 2))), 2) as Totale ,SottoCapitolo.DescrizioneEstesa, SottoCapitolo.Images, ROUND(((((ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * PercentualeUtile) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * 1), 2)) / 100) * PercentualeMargine) + (ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * PercentualeUtile) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * 1), 2))), 2) as CostoUnitario , SottoCapitolo.Quantita , SottoCapitolo.Descrizione AS DescrizioneDis FROM Capitolo INNER JOIN SottoCapitolo ON SottoCapitolo.IdCapitolo = Capitolo.IdCapitolo INNER JOIN Preventivo ON Preventivo.IdPreventivo = Capitolo.IdPreventivo where Preventivo.IdPreventivo = '"+IdPreventivo+"'; SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY a.Descrizione ORDER BY a.Descrizione) = 1 THEN a.Descrizione ELSE '' END AS Descrizione, a.NumeroCapitolo, a.SottoCapitolo1, a.SottoCapitolo2, a.SottoCapitolo3, a.DescrizioneDis, a.CostoUnitario, a.Quantita, a.Totale AS TotaleCap, a.DescrizioneEstesa, a.Images FROM(SELECT 1 AS d, ROW_NUMBER() OVER(PARTITION BY Descrizione ORDER BY Descrizione) AS r, Descrizione, NumeroCapitolo, SottoCapitolo1, SottoCapitolo2, SottoCapitolo3, Totale, DescrizioneDis, Images, CostoUnitario, Quantita, DescrizioneEstesa FROM @T UNION ALL SELECT 2, 0, Descrizione, '', '', '', '', SUM(Totale), '', '', '', '', '' FROM @T GROUP BY Descrizione) AS a ORDER BY a.Descrizione, a.d "; | |
String Query3 = "select SUM((SottoCapitolo.Quantita * FLOOR((CostoUnitario + ((CostoUnitario / 100) * (Preventivo.PercentualeUtile)) + ((CostoUnitario / 100) * (Preventivo.PercentualeMargine)) +((CostoUnitario / 100) * (Preventivo.PercentualeSpeseGenerali)))))) AS Totale from Preventivo inner join Capitolo on Capitolo.IdPreventivo = Preventivo.IdPreventivo inner join SottoCapitolo on SottoCapitolo.IdCapitolo = Capitolo.IdCapitolo where Preventivo.IdPreventivo='" + IdPreventivo + "'"; | |
String Query4 = "select Descrizione from Capitolo where IdPreventivo = '" + IdPreventivo + "'"; | |
SqlConnection conn = db.apriconnessione(); | |
DataStampaPreventivoCompleto d = new DataStampaPreventivoCompleto(); | |
SqlDataAdapter da = new SqlDataAdapter(Query, conn); | |
SqlDataAdapter da2 = new SqlDataAdapter(Query2, conn); | |
SqlDataAdapter da3 = new SqlDataAdapter(Query3, conn); | |
SqlDataAdapter da4 = new SqlDataAdapter(Query4, conn); | |
da.Fill(d, d.Tables[0].TableName); | |
da2.Fill(d, d.Tables[1].TableName); | |
da3.Fill(d, d.Tables[2].TableName); | |
da4.Fill(d, d.Tables[3].TableName); | |
ReportDataSource rds = new ReportDataSource("DataSet1", d.Tables[0]); | |
ReportDataSource rds2 = new ReportDataSource("DataSet2", d.Tables[1]); | |
ReportDataSource rds3 = new ReportDataSource("DataSet3", d.Tables[2]); | |
ReportDataSource rds4 = new ReportDataSource("DataSet4", d.Tables[3]); | |
ReportParameterCollection reportParameters = new ReportParameterCollection(); | |
reportParameters.Add(new ReportParameter("TotalePreventivo",""+p.CalcoloTotalePreventivo(Margine,Utile,SpeseGenerali))); | |
this.reportViewer1.LocalReport.EnableExternalImages = true; | |
this.reportViewer1.LocalReport.DataSources.Clear(); | |
this.reportViewer1.LocalReport.DataSources.Add(rds); | |
this.reportViewer1.LocalReport.DataSources.Add(rds2); | |
this.reportViewer1.LocalReport.DataSources.Add(rds3); | |
this.reportViewer1.LocalReport.DataSources.Add(rds4); | |
this.reportViewer1.LocalReport.SetParameters(reportParameters); | |
this.reportViewer1.LocalReport.Refresh(); | |
this.reportViewer1.RefreshReport(); | |
this.reportViewer1.SetDisplayMode(DisplayMode.PrintLayout); | |
db.chiudiconnessione(); | |
conn.Close(); | |
} | |
catch(Exception ex) | |
{ | |
MessageBox.Show("Errore nella stampa: " + ex); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment