using System; using System.Data; using System.Configuration; using System.Collections; 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.Data.SqlClient; public partial class RiassuntoPratiche : System.Web.UI.Page { private SqlConnection sqlCn = new SqlConnection(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { FillGrid(); } } //Riempimento della griglia delle richieste private void FillGrid() { string sSql; SqlDataAdapter DA; DataSet DS; sqlCn = (SqlConnection)Session["SQL_CONNECTION"]; //Ricavo tutte le RIC sul CLIENTE selezionato dalla Vista "TabRic" sSql = "SELECT DISTINCT * FROM TabRic "; if (Request.QueryString["where"] != string.Empty && Request.QueryString["where"] != "-1") { sSql += "WHERE idCliente=" + Request.QueryString["where"]; DA = new SqlDataAdapter(sSql, sqlCn); DS = new DataSet(); DA.Fill(DS); //Se la query non ha prodotto nessun risultato... if (DS.Tables[0].Rows.Count == 0) { errore.Visible = true; btnExportToExcel.Visible = false; Response.AppendHeader("Refresh", "2; url=Report.aspx"); return; } if (DS != null) { dg.DataSource = DS; dg.DataBind(); } DS.Dispose(); DS = null; DA.Dispose(); DA = null; } else { //Messaggio di errore lbl_NoSel.Visible = true; btnExportToExcel.Visible = false; Response.AppendHeader("Refresh", "2; url=Report.aspx"); return; } } //Paginazione Record protected void dg_Paging(object sender, GridViewPageEventArgs e) { dg.PageIndex = e.NewPageIndex; dg.DataBind(); FillGrid(); } //EXCEL //DataGrid protected void btnExportToExcel_Click(object sender, EventArgs e) { //Dati db DataTable dtOriginal = new DataTable(); dtOriginal = ExecuteQuery(); //Progressivo Ric int progressivo = 1; //Costruzione DataTable per tabella Excel DataTable dtEx = new DataTable(); //Header tabella dtEx.Columns.Add(" 

Progressivo

"); dtEx.Columns.Add(" 

CLIENTE

"); dtEx.Columns.Add(" 

RIF.CLIENTE

"); dtEx.Columns.Add(" 

COMMESSA

"); dtEx.Columns.Add(" 

DATA E ORA RICHIESTA INTERVENTO

"); dtEx.Columns.Add(" 

TEC RICHIESTA

"); dtEx.Columns.Add(" 

PRIORITÀ
(A=Alta;
B=Bassa;
M=Media)

"); dtEx.Columns.Add(" 

CRITICITÀ
(B=Bloccante;
NB=Non Bloccante)

"); dtEx.Columns.Add(" 

GESTIONE CONTRATTUALE INTERVENTO
(G=Garanzia;
A=Assistenza;
FC=Fuori Contratto;
AQ=Accordo Quadro)

"); dtEx.Columns.Add(" 

DESCRIZIONE RICHIESTA

"); dtEx.Columns.Add(" 

CAUSALE RICHIESTA
(MA=Malfunzionamento;
CF=Consulenza Funzionale;
MD=Modifica;
NS=Nuovo Sviluppo)

"); dtEx.Columns.Add(" 

CAUSALE EFFETTIVA
(MA=Malfunzionamento;
CF=Consulenza Funzionale;
MD=Modifica;
NS=Nuovo Sviluppo)

"); dtEx.Columns.Add(" 

DATA E ORA CHIUSURA INTERVENTO

"); dtEx.Columns.Add(" 

ORE INTERVENTO

"); dtEx.Columns.Add(" 

ARCHIVIAZIONE SW MODIFICATO/AGGIORNATO
SU GS61

"); dtEx.Columns.Add(" 

ADDEBITO

"); //Riga DataRow dr; dr = dtEx.NewRow(); //Ric per cliente for (int i = 0; i < dtOriginal.Rows.Count; i++) { //Riga dr = dtEx.NewRow(); //Item //Progressivo dr[0] = " 

" + progressivo.ToString() + "

"; //Cliente dr[1] = dtOriginal.Rows[i][1].ToString(); //Rif. Cliente dr[2] = dtOriginal.Rows[i][2].ToString(); //Sigla Commessa dr[3] = dtOriginal.Rows[i][23].ToString(); //Data richiesta dr[4] = dtOriginal.Rows[i][6].ToString(); //Tec richiesta dr[5] = dtOriginal.Rows[i][7].ToString(); //Priorita dr[6] = dtOriginal.Rows[i][8].ToString(); //Criticita dr[7] = dtOriginal.Rows[i][9].ToString(); //Gestione dr[8] = dtOriginal.Rows[i][4].ToString(); //Descrizione richiesta dr[9] = dtOriginal.Rows[i][5].ToString(); //Causale richiesta dr[10] = dtOriginal.Rows[i][21].ToString(); //Causale effettiva dr[11] = dtOriginal.Rows[i][22].ToString(); //Data chiusura dr[12] = dtOriginal.Rows[i][13].ToString(); //Ore intervento dr[13] = dtOriginal.Rows[i][14].ToString().Replace(".", ","); //Arch. sw GS-61 dr[14] = dtOriginal.Rows[i][15].ToString(); //Addebito cliente dr[15] = dtOriginal.Rows[i][16].ToString(); //Aggiungo una riga alla tabella per ogni entry dtEx.Rows.Add(dr); progressivo++; //Per ogni Ric vado a ricercare le attivita associate DataTable dtA = new DataTable(); dtA = CercaAttivita(dtOriginal.Rows[i][0].ToString()); //Se c'e' almeno un attivita if (dtA.Rows.Count > 0){ //Header attivita DataRow dr1; dr1 = dtEx.NewRow(); dr1[0] = "

ATTIVITÀ

"; dr1[1] = "

Data e ora inizio

"; dr1[2] = "

Descrizione intervento

"; dr1[3] = "

Data e ora fine

"; dtEx.Rows.Add(dr1); for (int k = 0; k < dtA.Rows.Count; k++){ //Riga DataRow dr2 = dtEx.NewRow(); //Item dr2[0] = "*"; //data inizio dr2[1] = dtA.Rows[k][1].ToString(); //descrizione intervento dr2[2] = dtA.Rows[k][2].ToString(); //data fine dr2[3] = dtA.Rows[k][3].ToString(); //Aggiungo una riga alla tabella per ogni entry dtEx.Rows.Add(dr2); } } } DataGrid dg = new DataGrid(); //Stile dg.ItemStyle.HorizontalAlign = HorizontalAlign.Center; dg.DataSource = dtEx; dg.DataBind(); string filename = "Ric_Excel.xls"; ExportToExcel(filename, dg); dg = null; dg.Dispose(); } //File Excel private void ExportToExcel(string strFileName, DataGrid dg) { Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filename=" + strFileName); Response.ContentType = "application/excel"; System.IO.StringWriter sw = new System.IO.StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); dg.RenderControl(htw); Response.Write(sw.ToString()); Response.End(); } //Dati Ric private DataTable ExecuteQuery() { sqlCn = (SqlConnection)Session["SQL_CONNECTION"]; SqlDataAdapter DA; string sSql = string.Empty; DataSet DS; //Ricavo tutte le RIC dell'utente loggato dalla vista "TabRic" sSql = "SELECT DISTINCT * FROM TabRic WHERE idCliente=" + Request.QueryString["where"] + " "; DA = new SqlDataAdapter(sSql, sqlCn); DS = new DataSet(); DA.Fill(DS); DA.Dispose(); DA = null; return DS.Tables[0]; } //Dati Attivita private DataTable CercaAttivita(string idRic) { sqlCn = (SqlConnection)Session["SQL_CONNECTION"]; SqlDataAdapter DA; string sSql = string.Empty; DataSet DS; //Ricavo tutte le RIC dell'utente loggato dalla vista "TabRic" sSql = "SELECT DISTINCT * FROM attivita WHERE ric_ID=" + idRic + " "; DA = new SqlDataAdapter(sSql, sqlCn); DS = new DataSet(); DA.Fill(DS); DA.Dispose(); DA = null; return DS.Tables[0]; } protected void dg_RowEditing(object sender, GridViewEditEventArgs e) { Response.Redirect("RicAttivita.aspx?id_pratica=" + dg.Rows[e.NewEditIndex].Cells[1].Text.Trim()+ "&tipo=R"); } }