Skip to content

Commit

Permalink
generate csv bug fix
Browse files Browse the repository at this point in the history
  • Loading branch information
marvinkobit committed Aug 29, 2023
1 parent e8f4df8 commit b816bf0
Show file tree
Hide file tree
Showing 5 changed files with 170 additions and 18 deletions.
14 changes: 7 additions & 7 deletions Labtracker/progress.aspx.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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("&nbsp;","") + ',');
}
columnbind.Append("\r\n");
}
Expand Down Expand Up @@ -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 + ',');
}
Expand Down Expand Up @@ -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 + ',');
}
Expand Down
6 changes: 3 additions & 3 deletions Labtracker/sample-receiving.aspx.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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("&nbsp;","") + ',');
}
columnbind.Append("\r\n");
}
Expand Down
21 changes: 19 additions & 2 deletions Labtracker/sequencing.aspx
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@
extracts,
<asp:Label runat="server" ID="lbldnaprocessed" Text=""></asp:Label>
unique IDs</p>
<asp:GridView ID="gvDnaResult" runat="server" Style="font-size: 12px" Width="1200px" CellPadding="3" AutoGenerateColumns="False" DataKeyNames="PatientId" DataSourceID="SqlDataSource1" AutoPostBack="true" AllowPaging="True" AllowSorting="True" OnSorting="gvDnaResult_Sorting" OnPageIndexChanging="gvDnaResult_PageIndexChanging" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" OnDataBound="gvDnaResult_DataBound">
<asp:GridView ID="gvDnaResult" runat="server" Style="font-size: 12px" Width="1200px" CellPadding="3" AutoGenerateColumns="False" AutoGenerateEditButton="true" DataKeyNames="DnaextractionId" DataSourceID="SqlDataSource1" AutoPostBack="true" AllowPaging="True" AllowSorting="True" OnSorting="gvDnaResult_Sorting" OnPageIndexChanging="gvDnaResult_PageIndexChanging" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" OnDataBound="gvDnaResult_DataBound">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<%--<asp:BoundField DataField="ResultID" HeaderText="ResultID" InsertVisible="False" ReadOnly="True" SortExpression="ResultID" />--%>
Expand Down Expand Up @@ -377,7 +377,21 @@
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Labtracker %>" SelectCommand="SELECT [PatientId], [TubeLabel],[GoodQQ],[NDConc],[QubitConc],[Purity],[ExtractDate],[Initial],[Remark] FROM Dnaextracts"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Labtracker %>" SelectCommand="SELECT [DnaextractionId],[PatientId], [TubeLabel],[GoodQQ],[NDConc],[QubitConc],[Purity],[ExtractDate],[Initial],[Remark] FROM Dnaextracts"
UpdateCommand="UPDATE Dnaextracts SET [PatientId]=@PatientId,[TubeLabel]=@TubeLabel,[GoodQQ]=@GoodQQ,[NDConc]=@NDConc,[QubitConc]=@QubitConc,[Purity]=@Purity,[ExtractDate]=@ExtractDate,[Initial]=@Initial,[Remark]=@Remark WHERE DnaextractionId=@DnaextractionId">
<UpdateParameters>
<asp:Parameter Name="PatientId" Type="String" />
<asp:Parameter Name="TubeLabel" Type="String" />
<asp:Parameter Name="GoodQQ" Type="String" />
<asp:Parameter Name="NDConc" Type="String" />
<asp:Parameter Name="QubitConc" Type="String" />
<asp:Parameter Name="Purity" Type="String" />
<asp:Parameter Name="ExtractDate" Type="DateTime" />
<asp:Parameter Name="Initial" Type="String" />
<asp:Parameter Name="Remark" Type="String" />

</UpdateParameters>
</asp:SqlDataSource>

</div>
</div>
Expand Down Expand Up @@ -411,6 +425,9 @@
</asp:DropDownList>
<asp:TextBox ID="txtCompVal" runat="server"></asp:TextBox>
<asp:Button ID="btnFilter" CssClass="btn-primary" runat="server" Text="Filter" OnClick="btnFilter_Click" />
<%-- <asp:Button ID="Button2" CssClass="btn-primary" runat="server" Text="Print to PDF" OnClick="ExportToPDF" />
<asp:Button ID="Button3" CssClass="btn-primary" runat="server" Text="Generate PDF Report for filter" OnClick="GeneratePDF" />--%>
<asp:Button ID="Button4" CssClass="btn-primary" runat="server" Text="Generate CSV Report for filter" OnClick="GenerateCSV" />



Expand Down
138 changes: 132 additions & 6 deletions Labtracker/sequencing.aspx.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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)
{
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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("&nbsp;", "") + ',');
}
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;
Expand Down
9 changes: 9 additions & 0 deletions Labtracker/sequencing.aspx.designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit b816bf0

Please sign in to comment.