using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections; using ceTe.DynamicPDF; using ceTe.DynamicPDF.Text; using ceTe.DynamicPDF.PageElements.Charting; using PDFGenerator.BusinessLayer; using PDFGenerator.BusinessLayer.DataSection; using PDFGenerator.Presentation.Section.Tables; using PDFGenerator.Presentation.Section.Charts; namespace PDFGenerator.Presentation.Section { class S134: ISezione { FormatNum conv = new FormatNum(); string Titolo = " "; private string _testointroduttivo = ""; public string TestoIntroduttivo { get { return _testointroduttivo; } set { _testointroduttivo = value; } } #region ISezione Members /// /// Disegna la sezione standard S134 /// /// public void writeSezione(DataThread dataThread) { Tabella tab = new Tabella(); float dim = 0; DocumentPDF document = dataThread.DocumentPDF; DatiTabella datitab = new DatiTabella(); DataSetS134 set = (DataSetS134)dataThread.Data.DatiSezione; string tempTesto = ""; document.setSezTitolo(dataThread.SezioneReport.Titolo); tempTesto = dataThread.SezioneReport.TestoIntroduttivo; tempTesto = tempTesto.Replace("/$AREA$/", dataThread.SezioneReport.AreaProgettoDescrizione); //if (dataThread.Rete.ToUpper() == "S") // //FC 26062015 Aggionamento nuova Ragione Sociale // tempTesto = tempTesto.Replace("Fideuram", "Sanpaolo Invest"); //****************************** Cecco modfiche dicitura IWBANK********************************** if (dataThread.Rete.ToUpper() == "S") { //FC 26062015 Aggionamento nuova Ragione Sociale tempTesto = tempTesto.Replace("Fideuram", "Fideuram S.p.A., commercializzato tramite la rete di private banker Sanpaolo Invest"); //tempTesto = tempTesto.Replace("Fideuram", "Sanpaolo Invest"); } else if (dataThread.Rete.ToUpper() == "W") { tempTesto = tempTesto.Replace("Fideuram", "IW Private Investments"); } //************************************************************************************************* document.setChapterHeader(tempTesto, 0, 520, 8); if (document.checkMargin(datitab.GetRowDim() * 10 + 60)) document.addPage(); ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage(); #region Tabella "MONITORAGGIO ATTIVATO IL" datitab = new DatiTabella(); datitab.table = set.Tables["AttivazioneMonitoraggio"]; Tabella tabellaMonitoraggioAttivato = new Tabella(); tabellaMonitoraggioAttivato.X = document.getMargineLeft(); tabellaMonitoraggioAttivato.Y = document.getLastPos() + 30; tabellaMonitoraggioAttivato.Datasource = datitab.table; tabellaMonitoraggioAttivato.Colonne.Add(new Colonna("Descrizione", string.Empty, 335, TipoAllineamento.SINISTRA, true, 8, true)); tabellaMonitoraggioAttivato.Draw(datitab, document); #endregion dim += (datitab.GetRowDim() * datitab.getNumRow()) + 5; //********** datitab = new DatiTabella(); datitab.table = set.Tables["Monitoraggio"]; #region Determinazione presenza assenza nota bool hasNota = false; foreach (DataRow rw in datitab.table.Rows) { if (rw["Nota"] != DBNull.Value) if (Convert.ToBoolean(rw["Nota"])) hasNota = true; } #endregion datitab.setY(document.getLastPos() + dim + 2); datitab.setX(document.getMargineLeft()); datitab.setIsLinee(2); datitab.setCellSpace(0); datitab.SetRowDim(25); datitab.setCell(200 /*200*/, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitab.setCell(135/*85*/, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, false); datitab.setCell(0, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false); document.InsertTable(tab.getTabella(datitab)); dim += datitab.GetRowDim() * datitab.getNumRow(); // Commented //********** DatiTabella datitabRisorseApportate = new DatiTabella(); datitabRisorseApportate.table = set.Tables["RisorseApportate"]; datitabRisorseApportate.setY(document.getLastPos() + dim); datitabRisorseApportate.setX(document.getMargineLeft() + 50); datitabRisorseApportate.setCellSpace(0); datitabRisorseApportate.setIsLinee(2); datitabRisorseApportate.setCell(/*125*/ 150, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, true); datitabRisorseApportate.setCell(/*85*/ 135, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); //Bido Work DataRow Temp = datitabRisorseApportate.table.NewRow(); DataRow CedoleRow = datitabRisorseApportate.table.Rows[2]; Temp[0] = CedoleRow[0]; Temp[1] = CedoleRow[1]; datitabRisorseApportate.table.Rows.Remove(CedoleRow); //End Bido Work document.InsertTable(tab.getTabella(datitabRisorseApportate)); page.Elements.Add( new ceTe.DynamicPDF.PageElements.Rectangle( document.getMargineLeft() - 4.5F, document.getLastPos() + dim - 14, 70, (datitabRisorseApportate.GetRowDim() * datitabRisorseApportate.getNumRow()) + 3.5F, new RgbColor(232, 236, 237), new RgbColor(232, 236, 237)) ); datitab.CellClear(); dim += (datitabRisorseApportate.GetRowDim() * datitabRisorseApportate.getNumRow()) + 10; //********* Riga fittizia per ottenere stesso effetto grafico DatiTabella datitabLinea = new DatiTabella(); datitabLinea.table = set.Tables["RigaFittizia"]; datitabLinea.setY(document.getLastPos() + dim - 25); datitabLinea.setX(document.getMargineLeft()); datitabLinea.setCellSpace(0); datitabLinea.setIsLinee(2); datitabLinea.setCell(335, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitabLinea.SetRowDim(3); document.InsertTable(tab.getTabella(datitabLinea)); //********** DatiTabella datitabTotali = new DatiTabella(); datitabTotali.table = set.Tables["Totali"]; // Bido Work //datitabTotali.table.Columns.Add("Notes"); // End of Bido Work datitabTotali.setY(document.getLastPos() + dim); datitabTotali.setX(document.getMargineLeft()); datitabTotali.setCellSpace(0); datitabTotali.setIsLinee(2); //datitabTotali.setCell(15, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitabTotali.setCell(/*175*/ 200, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true); datitabTotali.setCell(/*110*/ 135, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false); //Bido Work //Cedole e dividendi DataRow CedoledividendiDR = datitabTotali.table.NewRow(); //Copying Row Items field by field, Whole row assigmnet generate error CedoledividendiDR[0] = Temp[0]; CedoledividendiDR[1] = Temp[1]; datitabTotali.table.Rows.InsertAt(CedoledividendiDR, 1); //Guadagno/Perdita Totale DataRow GuadagnoPerditaDR = datitabTotali.table.NewRow(); //Copying Row Items field by field, Whole row assigmnet generate error GuadagnoPerditaDR[0] = "Guadagno/Perdita Totale"; string AB = datitabTotali.table.Rows[0][1].ToString().Replace("€", ""); string C = datitabTotali.table.Rows[1][1].ToString().Replace("€", ""); double DB_GuadagnoPerdita = double.Parse(AB) + double.Parse(C); string STR_GuadagnoPerdita = conv.ConvertNum(DB_GuadagnoPerdita).ToString() + " €"; //string STR_GuadagnoPerdita = DB_GuadagnoPerdita.ToString().Replace(".", ",") + " €"; if (DB_GuadagnoPerdita > 0) STR_GuadagnoPerdita = "+" + STR_GuadagnoPerdita; GuadagnoPerditaDR[1] = STR_GuadagnoPerdita; datitabTotali.table.Rows.InsertAt(GuadagnoPerditaDR, 2); string CumulatoNote = ""; if (datitabTotali.table.Rows.Count >= 5) { CumulatoNote = " (" + datitabTotali.table.Rows[4][1].ToString() + " su base annua)"; datitabTotali.table.Rows[3][1] = datitabTotali.table.Rows[3][1] + "
" + CumulatoNote; datitabTotali.table.Rows.RemoveAt(4); } //End Bido Work document.InsertTable(tab.getTabella(datitabTotali)); dim += datitabTotali.GetRowDim() * datitabTotali.getNumRow(); //Bido Work dim += (datitabTotali.GetRowDim() * datitabTotali.getNumRow()); float font = float.Parse("8,0"); //********* tabella che contiene il dettaglio temporale su data di avvio etc //page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() + 390, 211, 130, datitab.GetRowDim() * datitab.getNumRow() - 5, new RgbColor(232, 236, 237), new RgbColor(232, 236, 237))); datitab.CellClear(); //scrive la data di attivazione del monitoraggio //Bido