Skip to content

Instantly share code, notes, and snippets.

@riccardopirani
Created November 20, 2017 14:33
Show Gist options
  • Save riccardopirani/a220e756e814f2eaa8ed76d7d784ecba to your computer and use it in GitHub Desktop.
Save riccardopirani/a220e756e814f2eaa8ed76d7d784ecba to your computer and use it in GitHub Desktop.
Print.cs
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