241 lines
10 KiB
C#
241 lines
10 KiB
C#
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 PDFGenerator.Presentation.Section.Tables;
|
|
using PDFGenerator.BusinessLayer.DataSection;
|
|
using PDFGenerator.Presentation.Section.Charts;
|
|
using PDFGenerator.BusinessLayer;
|
|
|
|
namespace PDFGenerator.Presentation.Section {
|
|
public class S31 : ISezione {
|
|
|
|
public S31() {
|
|
//
|
|
// TODO: Add constructor logic here
|
|
//
|
|
}
|
|
|
|
#region ISezione Members
|
|
|
|
public void writeSezione(DataThread dataThread) {
|
|
DocumentPDF document = dataThread.DocumentPDF;
|
|
DatiTabella datitab = new DatiTabella();
|
|
DataSetS31 set = (DataSetS31)dataThread.Data.DatiSezione;
|
|
|
|
datitab.table = set.Tables["Intermediario"];
|
|
int ChartHeigth = 51 + 23 * datitab.table.Rows.Count;
|
|
|
|
datitab.setY(document.getLastPos());
|
|
datitab.setIsRet();
|
|
datitab.setIsLinee(1);
|
|
datitab.setHeader();
|
|
datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false);
|
|
datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false);
|
|
datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false);
|
|
|
|
|
|
//eventuali operazioni sul dataset
|
|
//calcola se entra nella pagina altrimenti aggiunge una nuova pagina. In questa sezione il # di righe è fissato
|
|
if (document.checkMargin(datitab.GetRowDim() * datitab.getNumRow()) || document.checkMargin(ChartHeigth)) document.addPage();
|
|
|
|
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
|
|
|
|
//aggiorna l'indice
|
|
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI")
|
|
document.setSezTitoloDiagnosi(dataThread.SezioneReport.Titolo);
|
|
else
|
|
document.setSezTitolo(dataThread.SezioneReport.Titolo);
|
|
|
|
DatiGrafico dati = new DatiGrafico();
|
|
DataView view = new DataView(datitab.table);
|
|
view.RowFilter = "";
|
|
dati.dataTab = view.ToTable(false, this.setTableForChart());
|
|
|
|
dati.setHeight(ChartHeigth);
|
|
dati.setWidth(204);
|
|
Istogramma isto = new Istogramma();
|
|
document.InsertGrafico(isto.getGrafico(dati), 349, document.getLastPos() - 12);
|
|
|
|
datitab.setY(document.getLastPos());
|
|
datitab.setX(document.getMargineLeft());
|
|
datitab.setCellSpace(0);
|
|
Tabella tab = new Tabella();
|
|
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
|
//setta posizione tabella
|
|
document.InsertTable(tab.getTabella(datitab));
|
|
|
|
float dim = datitab.GetRowDim() * (datitab.getNumRow() + 1);
|
|
datitab = new DatiTabella();
|
|
datitab.table = set.Tables["IntermediarioTotale"];
|
|
|
|
datitab.setY(document.getLastPos() + dim);
|
|
datitab.setX(document.getMargineLeft());
|
|
datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true);
|
|
datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true);
|
|
datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true);
|
|
document.InsertTable(tab.getTabella(datitab));
|
|
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Rectangle(360, document.getLastPos() + ChartHeigth - 38, 195, 23, 0, new RgbColor(232, 236, 237)));
|
|
|
|
FormatNum format = new FormatNum();
|
|
ArrayList Labels = format.CreaCustom(dati.getValMax());
|
|
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[0].ToString(), 360, document.getLastPos() + ChartHeigth - 29, 120, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[1].ToString(), 360, document.getLastPos() + ChartHeigth - 29, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black));
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[2].ToString(), 403, document.getLastPos() + ChartHeigth - 29, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black));
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[3].ToString(), 448, document.getLastPos() + ChartHeigth - 29, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Center, ceTe.DynamicPDF.CmykColor.Black));
|
|
page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(Labels[4].ToString(), 452, document.getLastPos() + ChartHeigth - 29, 100, 10, Globals.OpenTypeFontVerdana, 6, ceTe.DynamicPDF.TextAlign.Right, ceTe.DynamicPDF.CmykColor.Black));
|
|
dim += datitab.GetRowDim() * datitab.getNumRow();
|
|
|
|
/////////
|
|
if (dim > ChartHeigth)
|
|
document.setLastPos(dim);
|
|
else
|
|
document.setLastPos(ChartHeigth);
|
|
|
|
}
|
|
|
|
//======================================Gestisce il salto pagina=============================================
|
|
public void writeSezioneTorta(DataThread dataThread)
|
|
{
|
|
|
|
DocumentPDF document = dataThread.DocumentPDF;
|
|
DatiTabella datitab = new DatiTabella();
|
|
DataSetS31 set = (DataSetS31)dataThread.Data.DatiSezione;
|
|
int MaxRow;
|
|
float dim = 0;
|
|
bool cut = true;
|
|
DataTable vista;
|
|
Tabella tab = new Tabella();
|
|
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI") tab.HeaderFont = 8;
|
|
|
|
|
|
datitab.table = set.Tables["Intermediario"];
|
|
vista = datitab.table;
|
|
int ChartHeigth = 140;
|
|
|
|
datitab.setY(document.getLastPos());
|
|
datitab.setIsRet();
|
|
datitab.setIsLinee(1);
|
|
datitab.setHeader();
|
|
datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false);
|
|
datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false);
|
|
datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false);
|
|
datitab.setCellSpace(0);
|
|
|
|
|
|
//eventuali operazioni sul dataset
|
|
//calcola se entra nella pagina altrimenti aggiunge una nuova pagina. In questa sezione il # di righe è fissato
|
|
if (document.checkMargin(ChartHeigth)) document.addPage();
|
|
|
|
//aggiorna l'indice
|
|
if (dataThread.TipoReport.ToUpper() == "DIAGNOSI")
|
|
document.setSezTitoloDiagnosi(dataThread.SezioneReport.Titolo);
|
|
else
|
|
document.setSezTitolo(dataThread.SezioneReport.Titolo);
|
|
|
|
DatiGrafico dati = new DatiGrafico();
|
|
DataView view = new DataView(datitab.table);
|
|
view.RowFilter = "";
|
|
dati.dataTab = view.ToTable(false, this.setTableForChart());
|
|
|
|
dati.setHeight(ChartHeigth);
|
|
dati.setWidth(140);
|
|
Torta isto = new Torta();
|
|
document.InsertGrafico(isto.getGrafico(dati), 360, document.getLastPos() - 11);
|
|
|
|
ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
|
|
|
|
while (cut) {
|
|
if (vista.Rows.Count != 0 && document.checkMargin(datitab.GetRowDim() * (vista.Rows.Count + 2))) {
|
|
MaxRow = document.getWritableRow(23, false);
|
|
vista.Columns.Add("ID");
|
|
int i = 0;
|
|
foreach (DataRow myRow in vista.Rows) {
|
|
if (i < MaxRow - 2)
|
|
myRow["ID"] = 1;
|
|
else
|
|
myRow["ID"] = 2;
|
|
i++;
|
|
}
|
|
view = new DataView(vista);
|
|
view.RowFilter = ("ID = 1");
|
|
}
|
|
else
|
|
cut = false;
|
|
|
|
datitab.table = view.ToTable(false, setTableForTable());
|
|
|
|
datitab.setY(document.getLastPos());
|
|
datitab.setX(document.getMargineLeft());
|
|
//setta posizione tabella
|
|
document.InsertTable(tab.getTabella(datitab));
|
|
|
|
dim += datitab.GetRowDim() * (datitab.getNumRow() + 1);
|
|
|
|
if (cut) {
|
|
document.changePage(389, dim);
|
|
document.nextPage(document.getMargineLeft());
|
|
datitab.setHeader();
|
|
dim = 0;
|
|
view = new DataView(vista);
|
|
view.RowFilter = ("ID = 2");
|
|
vista = view.ToTable();
|
|
vista.Columns.Remove(vista.Columns["ID"]);
|
|
}
|
|
}
|
|
|
|
datitab = new DatiTabella();
|
|
datitab.table = set.Tables["IntermediarioTotale"];
|
|
|
|
datitab.setY(document.getLastPos() + dim);
|
|
datitab.setX(document.getMargineLeft());
|
|
datitab.setCell(175, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdanaB, true);
|
|
datitab.setCell(90, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true);
|
|
datitab.setCell(40, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdanaB, true);
|
|
|
|
document.InsertTable(tab.getTabella(datitab));
|
|
dim += datitab.GetRowDim() * datitab.getNumRow();
|
|
|
|
if (dim > ChartHeigth)
|
|
document.setLastPos(dim);
|
|
else
|
|
document.setLastPos(ChartHeigth);
|
|
|
|
}
|
|
//=============================================================================================================
|
|
|
|
private string[] setTableForTable() {
|
|
string[] Columns = new String[6];
|
|
//eventuali operazioni sul dataset
|
|
Columns[0] = "Descrizione";
|
|
Columns[1] = "Controvalore";
|
|
Columns[2] = "Percentuale";
|
|
Columns[3] = "Red";
|
|
Columns[4] = "Green";
|
|
Columns[5] = "Blue";
|
|
return Columns;
|
|
}
|
|
|
|
private string[] setTableForChart() {
|
|
string[] Columns = new String[4];
|
|
Columns[0] = "Controvalore";
|
|
Columns[1] = "Red";
|
|
Columns[2] = "Green";
|
|
Columns[3] = "Blue";
|
|
return Columns;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|