88 lines
2.4 KiB
C#
88 lines
2.4 KiB
C#
using AppData;
|
|
using System;
|
|
using System.Data;
|
|
using System.Text;
|
|
|
|
namespace C_TRACK
|
|
{
|
|
public partial class doExport : System.Web.UI.Page
|
|
{
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
string delimiter = ",";
|
|
|
|
//prepare the output stream
|
|
Response.Clear();
|
|
Response.ContentType = "text/csv";
|
|
Response.AppendHeader("Content-Disposition", "attachment; filename=ctrack_report.csv");
|
|
|
|
string value = "";
|
|
StringBuilder builder = new StringBuilder();
|
|
|
|
// recupero oggetti parametrici...
|
|
string from = Request.QueryString["from"];
|
|
string to = Request.QueryString["to"];
|
|
DateTime dateFrom = DateTime.Today.AddYears(-1);
|
|
DateTime dateTo = DateTime.Today.AddDays(1);
|
|
// se è diverso da vuoto faccio parse...
|
|
if (from != "" && from !=null)
|
|
{
|
|
DateTime.TryParse(from, out dateFrom);
|
|
}
|
|
if (to != "" && to != null)
|
|
{
|
|
DateTime.TryParse(to, out dateTo);
|
|
}
|
|
|
|
// leggo tabella
|
|
var dt = dataLayer.man.taTR.getByFilt("", dateFrom, dateTo);
|
|
|
|
//write the csv column headers
|
|
for (int i = 0; i < dt.Columns.Count; i++)
|
|
{
|
|
|
|
value = dt.Columns[i].ColumnName;
|
|
// Implement special handling for values that contain comma or quote
|
|
// Enclose in quotes and double up any double quotes
|
|
if (value.IndexOfAny(new char[] { '"', ',' }) != -1)
|
|
builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\""));
|
|
else
|
|
{
|
|
builder.Append(value);
|
|
|
|
}
|
|
|
|
Response.Write(value);
|
|
Response.Write((i < dt.Columns.Count - 1) ? delimiter : Environment.NewLine);
|
|
builder.Clear();
|
|
}
|
|
|
|
//write the data
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
for (int i = 0; i < dt.Columns.Count; i++)
|
|
{
|
|
value = row[i].ToString();
|
|
// Implement special handling for values that contain comma or quote
|
|
// Enclose in quotes and double up any double quotes
|
|
|
|
if (value.IndexOfAny(new char[] { '"', ',' }) != -1)
|
|
builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\""));
|
|
else
|
|
{
|
|
builder.Append(value);
|
|
|
|
}
|
|
|
|
Response.Write(builder.ToString());
|
|
Response.Write((i < dt.Columns.Count - 1) ? delimiter : Environment.NewLine);
|
|
builder.Clear();
|
|
}
|
|
}
|
|
|
|
Response.End();
|
|
|
|
|
|
}
|
|
}
|
|
} |