diff --git a/Labtracker/progress.aspx.cs b/Labtracker/progress.aspx.cs index 7f53f2d..9633d11 100644 --- a/Labtracker/progress.aspx.cs +++ b/Labtracker/progress.aspx.cs @@ -442,16 +442,16 @@ protected void GenerateCSV(object sender, EventArgs e) gvResult.AllowPaging = false; gvResult.DataBind(); StringBuilder columnbind = new StringBuilder(); - for (int k = 0; k < gvResult.Columns.Count; k++) + for (int k = 1; k < gvResult.Columns.Count; k++) { columnbind.Append(gvResult.Columns[k].HeaderText + ','); } columnbind.Append("\r\n"); for (int i = 0; i < gvResult.Rows.Count; i++) { - for (int k = 0; k < gvResult.Columns.Count; k++) + for (int k = 2; k < gvResult.Columns.Count; k++) { - columnbind.Append(gvResult.Rows[i].Cells[k].Text + ','); + columnbind.Append(gvResult.Rows[i].Cells[k].Text.Replace(" ","") + ','); } columnbind.Append("\r\n"); } @@ -500,14 +500,14 @@ protected void GenerateCSV_Heatkill(object sender, EventArgs e) gvHeatkill.AllowPaging = false; gvHeatkill.DataBind(); StringBuilder columnbind = new StringBuilder(); - for (int k = 0; k < gvHeatkill.Columns.Count; k++) + for (int k = 1; k < gvHeatkill.Columns.Count; k++) { columnbind.Append(gvHeatkill.Columns[k].HeaderText + ','); } columnbind.Append("\r\n"); for (int i = 0; i < gvHeatkill.Rows.Count; i++) { - for (int k = 0; k < gvHeatkill.Columns.Count; k++) + for (int k = 1; k < gvHeatkill.Columns.Count; k++) { columnbind.Append(gvHeatkill.Rows[i].Cells[k].Text + ','); } @@ -558,14 +558,14 @@ protected void GenerateCSV_Dst(object sender, EventArgs e) gvDstResult.AllowPaging = false; gvDstResult.DataBind(); StringBuilder columnbind = new StringBuilder(); - for (int k = 0; k < gvDstResult.Columns.Count; k++) + for (int k = 1; k < gvDstResult.Columns.Count; k++) { columnbind.Append(gvDstResult.Columns[k].HeaderText + ','); } columnbind.Append("\r\n"); for (int i = 0; i < gvDstResult.Rows.Count; i++) { - for (int k = 0; k < gvDstResult.Columns.Count; k++) + for (int k = 2; k < gvDstResult.Columns.Count; k++) { columnbind.Append(gvDstResult.Rows[i].Cells[k].Text + ','); } diff --git a/Labtracker/sample-receiving.aspx.cs b/Labtracker/sample-receiving.aspx.cs index 888b8a0..5612155 100644 --- a/Labtracker/sample-receiving.aspx.cs +++ b/Labtracker/sample-receiving.aspx.cs @@ -210,16 +210,16 @@ protected void GenerateCSV(object sender, EventArgs e) gvSample.AllowPaging = false; gvSample.DataBind(); StringBuilder columnbind = new StringBuilder(); - for (int k = 0; k < gvSample.Columns.Count; k++) + for (int k = 1; k < gvSample.Columns.Count; k++) { columnbind.Append(gvSample.Columns[k].HeaderText + ','); } columnbind.Append("\r\n"); for (int i = 0; i < gvSample.Rows.Count; i++) { - for (int k = 0; k < gvSample.Columns.Count; k++) + for (int k = 2; k < gvSample.Columns.Count; k++) { - columnbind.Append(gvSample.Rows[i].Cells[k].Text + ','); + columnbind.Append(gvSample.Rows[i].Cells[k].Text.Replace(" ","") + ','); } columnbind.Append("\r\n"); } diff --git a/Labtracker/sequencing.aspx b/Labtracker/sequencing.aspx index 340dece..0c03a4a 100644 --- a/Labtracker/sequencing.aspx +++ b/Labtracker/sequencing.aspx @@ -347,7 +347,7 @@ extracts, unique IDs

- + <%----%> @@ -377,7 +377,21 @@ - + + + + + + + + + + + + + + @@ -411,6 +425,9 @@ + <%-- + --%> + diff --git a/Labtracker/sequencing.aspx.cs b/Labtracker/sequencing.aspx.cs index b14631e..270c003 100644 --- a/Labtracker/sequencing.aspx.cs +++ b/Labtracker/sequencing.aspx.cs @@ -1,10 +1,15 @@ -using Labtracker.Models; +using iTextSharp.text; +using iTextSharp.text.pdf; +using iTextSharp.tool.xml; +using Labtracker.Models; using Microsoft.AspNet.Identity; using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlClient; +using System.IO; using System.Linq; +using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; @@ -14,7 +19,7 @@ namespace Labtracker public partial class sequencing : System.Web.UI.Page { - SqlDataSource dataSource = null; + SqlDataSource dataSource_gvDnaResult = null; bool isFilter = false; protected void Page_Load(object sender, EventArgs e) { @@ -103,12 +108,12 @@ protected void btnFilter_Click(object sender, EventArgs e) searchQuery = String.Format("SELECT [DnaextractionId],[PatientId],[NDConc],[Purity],[ExtractDate],[Remark],[Initial],[QubitConc],[TubeLabel],[GoodQQ],[SampleType],[AssayReagent] FROM[Labtracker].[dbo].[Dnaextracts] WHERE {0} LIKE '{1}%'", valueTocomp, val); } - dataSource = new SqlDataSource(ConfigurationManager.ConnectionStrings["Labtracker"].ConnectionString, searchQuery); - Session["ds"] = dataSource; + dataSource_gvDnaResult = new SqlDataSource(ConfigurationManager.ConnectionStrings["Labtracker"].ConnectionString, searchQuery); + Session["ds"] = dataSource_gvDnaResult; gvDnaResult.DataSourceID = null; //gvDnaResult.PageIndex = GridViewPageEventArgs.NewPageIndex; - gvDnaResult.DataSource = dataSource; + gvDnaResult.DataSource = dataSource_gvDnaResult; gvDnaResult.AllowSorting = true; gvDnaResult.AllowPaging = true; gvDnaResult.DataBind(); @@ -137,10 +142,131 @@ protected void gvDnaResult_Sorting(object sender, GridViewSortEventArgs e) gvDnaResult.DataSourceID = null; var data = (SqlDataSource)Session["ds"]; data.SortParameterName = e.SortExpression; - gvDnaResult.DataSource = dataSource; + gvDnaResult.DataSource = dataSource_gvDnaResult; } gvDnaResult.DataBind(); } + + + protected void ExportToPDF(object sender, EventArgs e) + { + Response.Clear(); + Response.Buffer = true; + Response.AddHeader("content-disposition", "attachment;filename=SampleResultRecent.pdf"); + Response.Charset = ""; + Response.ContentType = "application/pdf"; + + //To Export all pages. + //gvDnaResult.AllowPaging = false; + //this.BindGrid(); + + using (StringWriter sw = new StringWriter()) + { + using (HtmlTextWriter hw = new HtmlTextWriter(sw)) + { + gvDnaResult.RenderControl(hw); + StringReader sr = new StringReader(sw.ToString()); + Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f); + PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream); + pdfDoc.Open(); + XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr); + pdfDoc.Close(); + Response.Cache.SetCacheability(HttpCacheability.NoCache); + Response.Write(pdfDoc); + Response.End(); + } + } + } + + + protected void Binder() + { + var valueTocomp = ddlCOlVal.SelectedItem.ToString(); + var comp = ddlCompare.SelectedItem.ToString(); + var val = txtCompVal.Text; + string searchQuery = ""; + if (comp.Equals("equals")) + { + searchQuery = String.Format("SELECT [DnaextractionId],[PatientId],[NDConc],[Purity],[ExtractDate],[Remark],[Initial],[QubitConc],[TubeLabel],[GoodQQ],[SampleType],[AssayReagent] FROM [Labtracker].[dbo].[Dnaextracts] WHERE {0}='{1}'", valueTocomp, val); + } + else + { + searchQuery = String.Format("SELECT [DnaextractionId],[PatientId],[NDConc],[Purity],[ExtractDate],[Remark],[Initial],[QubitConc],[TubeLabel],[GoodQQ],[SampleType],[AssayReagent] FROM[Labtracker].[dbo].[Dnaextracts] WHERE {0} LIKE '{1}%'", valueTocomp, val); + } + + dataSource_gvDnaResult = new SqlDataSource(ConfigurationManager.ConnectionStrings["Labtracker"].ConnectionString, searchQuery); + Session["ds"] = dataSource_gvDnaResult; + + + gvDnaResult.DataSourceID = null; + //gvDnaResult.PageIndex = GridViewPageEventArgs.NewPageIndex; + gvDnaResult.DataSource = dataSource_gvDnaResult; + gvDnaResult.AllowSorting = true; + //sgvDnaResult.AllowPaging = true; + gvDnaResult.DataBind(); + + Session["isFilter_gvDnaResult"] = true; + } + + protected void GeneratePDF(object sender, EventArgs e) + { + Response.Clear(); + Response.Buffer = true; + Response.AddHeader("content-disposition", "attachment;filename=SampleResultRecent.pdf"); + Response.Charset = ""; + Response.ContentType = "application/pdf"; + + //To Export all pages. + gvDnaResult.AllowPaging = false; + this.Binder(); + + using (StringWriter sw = new StringWriter()) + { + using (HtmlTextWriter hw = new HtmlTextWriter(sw)) + { + gvDnaResult.RenderControl(hw); + StringReader sr = new StringReader(sw.ToString()); + Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f); + PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream); + pdfDoc.Open(); + XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr); + pdfDoc.Close(); + Response.Cache.SetCacheability(HttpCacheability.NoCache); + Response.Write(pdfDoc); + Response.End(); + } + } + } + + protected void GenerateCSV(object sender, EventArgs e) + { + this.Binder(); + Response.Clear(); + Response.Buffer = true; + Response.AddHeader("content-disposition", "attachment;filename=SampleResultExport.csv"); + Response.Charset = "UTF-8"; + Response.ContentType = "application/text"; + gvDnaResult.AllowPaging = false; + gvDnaResult.DataBind(); + StringBuilder columnbind = new StringBuilder(); + for (int k = 1; k < gvDnaResult.Columns.Count; k++) + { + columnbind.Append(gvDnaResult.Columns[k].HeaderText + ','); + } + columnbind.Append("\r\n"); + for (int i = 0; i < gvDnaResult.Rows.Count; i++) + { + for (int k = 2; k < gvDnaResult.Columns.Count; k++) + { + columnbind.Append(gvDnaResult.Rows[i].Cells[k].Text.Replace(" ", "") + ','); + } + columnbind.Append("\r\n"); + } + Response.Output.Write(columnbind.ToString()); + Response.Flush(); + Response.End(); + } + protected void SignOut(object sender, EventArgs e) { var authenticationManager = HttpContext.Current.GetOwinContext().Authentication; diff --git a/Labtracker/sequencing.aspx.designer.cs b/Labtracker/sequencing.aspx.designer.cs index df1851b..5cd652e 100644 --- a/Labtracker/sequencing.aspx.designer.cs +++ b/Labtracker/sequencing.aspx.designer.cs @@ -111,6 +111,15 @@ public partial class sequencing { /// protected global::System.Web.UI.WebControls.Button btnFilter; + /// + /// Button4 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button Button4; + /// /// lblLibraryprep control. ///