Created
January 31, 2020 13:28
-
-
Save riccardopirani/3becbf714fdafae931b9feecd47b12d9 to your computer and use it in GitHub Desktop.
Code Crash Report C# RDLC
This file contains hidden or 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
| private void StampaPreventivoCompleto_Load(object sender, EventArgs e) | |
| { | |
| lock (LockMonitor) | |
| { | |
| if (ModalitaCalcoloUtile == "Unica percetuale") | |
| { | |
| try | |
| { | |
| Preventivi p = new Preventivi(int.Parse(IdPreventivo)); | |
| string Query = "SELECT (select Firma from Utente where IdUtente='" + u.IdUtente + "') as Firma,(select FilialeCliente.Citta from Preventivo inner join FilialeCliente on FilialeCliente.IdFilialeCliente=Preventivo.IdFiliale where IdPreventivo='" + IdPreventivo + "') as Filiale,Preventivo.VostroRiferimento,Preventivo.Oggetto,Preventivo.PrezzoRiservato,Preventivo.IdPreventivo,Azienda.Logo as 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 inner join Azienda on Azienda.IdAzienda=Utente.IdAzienda 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),Tipologia varchar(300),PrezzoRiservato money,UM varchar(50)); 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)) * 1), 2)) / 100) * PercentualeMargine) + (ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * PercentualeUtile) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * 1), 2))), 2)) * SottoCapitolo.Quantita 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 , CASE when Tipologia='Prezzo' then SottoCapitolo.Descrizione else ''+SottoCapitolo.Codice+ ' ' +SottoCapitolo.Descrizione end as DescrizioneDis,Capitolo.Tipologia,Capitolo.PrezzoRiservato,SottoCapitolo.UnitaMisura as UM 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, Descrizione as Desc2,a.NumeroCapitolo, a.SottoCapitolo1, a.SottoCapitolo2, a.SottoCapitolo3, a.DescrizioneDis, a.CostoUnitario, a.Quantita, a.Totale AS TotaleCap, a.DescrizioneEstesa, a.Images,a.Tipologia,a.PrezzoRiservato,a.UM 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,Tipologia,PrezzoRiservato,UM FROM @T UNION ALL SELECT 2, 0, Descrizione, NumeroCapitolo, '', '', '', SUM(Totale), '', '', '', '','',Tipologia,PrezzoRiservato,'' FROM @T GROUP BY Descrizione,Tipologia,PrezzoRiservato,NumeroCapitolo) 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 = Database.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 { new ReportParameter("TotalePreventivo", "" + p.CalcoloTotalePreventivo(Margine, Utile, SpeseGenerali)) }; | |
| //this.reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local; | |
| reportViewer1.LocalReport.SetParameters(new ReportParameter("SenzaPrezzo", "" + isSenzaPrezzo)); | |
| reportViewer1.LocalReport.DataSources.Clear(); | |
| reportViewer1.LocalReport.DataSources.Add(rds); | |
| reportViewer1.LocalReport.DataSources.Add(rds2); | |
| reportViewer1.LocalReport.DataSources.Add(rds3); | |
| reportViewer1.LocalReport.DataSources.Add(rds4); | |
| reportViewer1.LocalReport.SetParameters(reportParameters); | |
| reportViewer1.SetDisplayMode(DisplayMode.PrintLayout); | |
| reportViewer1.Refresh(); | |
| conn.Close(); | |
| } | |
| catch (Exception ex) | |
| { | |
| Managementerror.SendError("Errore Stampa Preventivo Completo Unica Percentuale: " + ex); | |
| MessageBox.Show("Errore nella stampa"); | |
| } | |
| } | |
| //Stampa con percentuale su ogni singolo capitolo | |
| else | |
| { | |
| try | |
| { | |
| Preventivi p = new Preventivi(int.Parse(IdPreventivo)); | |
| string Query = "SELECT (select Firma from Utente where IdUtente='" + u.IdUtente + "') as Firma,(select FilialeCliente.Citta from Preventivo inner join FilialeCliente on FilialeCliente.IdFilialeCliente=Preventivo.IdFiliale where IdPreventivo='" + IdPreventivo + "') as Filiale,Preventivo.VostroRiferimento,Preventivo.Oggetto,Preventivo.IdPreventivo,Azienda.Logo as LogoAzienda,convert(VARCHAR(10),Preventivo.DataInserimento,105) as DataInserimento,Preventivo.RiferimentoInterno,Preventivo.Testata,Preventivo.PrezzoRiservato,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 inner join Azienda on Azienda.IdAzienda=Utente.IdAzienda 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),Tipologia varchar(300),PrezzoRiservato money,UM varchar(50)); INSERT INTO @T SELECT Capitolo.Descrizione, Capitolo.NumeroCapitolo,SottoCapitolo.SottoCapitolo1,SottoCapitolo.SottoCapitolo2,SottoCapitolo.SottoCapitolo3, (ROUND(((((ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * Capitolo.Ricarico) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * 1), 2)) / 100) * PercentualeMargine) + (ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * Capitolo.Ricarico) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * 1), 2))), 2)) * SottoCapitolo.Quantita as Totale ,SottoCapitolo.DescrizioneEstesa, SottoCapitolo.Images, ROUND(((((ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * Capitolo.Ricarico) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * 1), 2)) / 100) * PercentualeMargine) + (ROUND((((((((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario) / 100) * Capitolo.Ricarico) + (((SottoCapitolo.CostoUnitario / 100) * PercentualeSpeseGenerali) + SottoCapitolo.CostoUnitario)) * 1), 2))), 2) as CostoUnitario,SottoCapitolo.Quantita , CASE when Tipologia='Prezzo' then SottoCapitolo.Descrizione else ''+SottoCapitolo.Codice+ ' ' +SottoCapitolo.Descrizione end as DescrizioneDis,Capitolo.Tipologia,Capitolo.PrezzoRiservato,SottoCapitolo.UnitaMisura as UM 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, Descrizione as Desc2,a.NumeroCapitolo, a.SottoCapitolo1, a.SottoCapitolo2, a.SottoCapitolo3, a.DescrizioneDis, a.CostoUnitario, a.Quantita, a.Totale AS TotaleCap, a.DescrizioneEstesa, a.Images,a.Tipologia,a.PrezzoRiservato,a.UM 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,Tipologia,PrezzoRiservato,UM FROM @T UNION ALL SELECT 2, 0, Descrizione, NumeroCapitolo, '', '', '', SUM(Totale), '', '','','', '', Tipologia, PrezzoRiservato,'' FROM @T GROUP BY Descrizione,PrezzoRiservato,Tipologia,NumeroCapitolo) AS a ORDER BY a.Descrizione, a.d"; | |
| string Query3 = "select SUM((SottoCapitolo.Quantita * FLOOR((CostoUnitario + ((CostoUnitario / 100) * (Capitolo.Ricarico)) + ((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 = Database.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 { new ReportParameter("TotalePreventivo", "" + p.CalcolaTotalePreventivo_PercenutaleSuOgniSingoloCapitolo(Margine, SpeseGenerali)) }; | |
| //this.reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local; | |
| reportViewer1.LocalReport.SetParameters(new ReportParameter("SenzaPrezzo", "" + isSenzaPrezzo)); reportViewer1.LocalReport.EnableExternalImages = true; | |
| reportViewer1.LocalReport.DataSources.Clear(); | |
| reportViewer1.LocalReport.DataSources.Add(rds); | |
| reportViewer1.LocalReport.DataSources.Add(rds2); | |
| reportViewer1.LocalReport.DataSources.Add(rds3); | |
| reportViewer1.LocalReport.DataSources.Add(rds4); | |
| reportViewer1.LocalReport.SetParameters(reportParameters); | |
| reportViewer1.LocalReport.Refresh(); | |
| reportViewer1.RefreshReport(); | |
| reportViewer1.SetDisplayMode(DisplayMode.PrintLayout); | |
| conn.Close(); | |
| } | |
| catch (Exception ex) | |
| { | |
| Managementerror.SendError("Errore Stampa Preventivo Completo Percentuale su Ogni singolo capitolo: " + ex); | |
| MessageBox.Show("Errore nella stampa"); | |
| } | |
| } | |
| //Genero il file pdf partendo da reportViewer e lo salvo all'interno del db | |
| byte[] file = Support.GenerazioneFilePDF(reportViewer1); | |
| //Se il file è stato generato correttamente lo salvo all'interno del db | |
| if (file != null) | |
| { | |
| Preventivi p = new Preventivi(Convert.ToInt32(IdPreventivo)); | |
| p.SalvataggioStampa(u, file, "Stampa Preventivo Completo con Modalità calcolo utile: " + ModalitaCalcoloUtile + " e % Margine: " + Margine + " % SpeseGenerali: " + SpeseGenerali + " % Utile: " + Utile); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment