using Swift.DAL.SwiftDAL; using Swift.web.Component.Grid; using Swift.web.Component.Grid.gridHelper; using Swift.web.Library; using System; using System.Collections.Generic; using System.Data; using System.Text; namespace Swift.web { public partial class Download : System.Web.UI.Page { private SwiftDao dao = new SwiftDao(); private RemittanceDao remit = new RemittanceDao(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DownloadCsv(); } } private void DownloadCsv() { var data = ""; var mode = GetStatic.ReadQueryString("mode", "grid").ToLower(); if (mode == "grid") { data = GenerateCsvForGrid(); } else if (mode == "report") { data = GenerateCsvForReport(); } else if (mode.ToLower() == "download") { data = GenerateCsv(); } Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.Buffer = true; Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("Content-Disposition", "inline; filename=download.xls"); Response.Charset = ""; Response.Write(data); Response.End(); } private string GenerateCsvForGrid() { var sql = GetStatic.ReadSession("exportSource", ""); if (string.IsNullOrEmpty(sql)) return ""; var type = GetStatic.ReadQueryString("type", "").ToLower(); var ds = new DataSet(); if (type == "remit") { ds = remit.ExecuteDataset(sql); } else { ds = dao.ExecuteDataset(sql); } var columnList = (List)Session["grid_column"]; if (ds == null || columnList == null) return ""; var dt = ds.Tables[1]; var html = new StringBuilder(""); html.Append(""); foreach (var column in columnList) { if (column.Description != "") html.Append(""); } html.Append(""); foreach (DataRow dr in dt.Rows) { html.Append(""); foreach (var column in columnList) { switch (column.Type.ToUpper()) { case "M": html.Append(""); break; case "D": html.Append(""); break; case "DT": html.Append(""); break; case "NOSORT": if (column.Description.Trim() != "") html.Append(""); break; case "CHECKBOX": break; default: html.Append(""); break; } } html.Append(""); } html.Append("
" + column.Description + "
" + SwiftGrid.FormatData(dr[column.Key].ToString(), "M") + "" + SwiftGrid.FormatData(dr[column.Key].ToString(), "D") + "" + SwiftGrid.FormatData(dr[column.Key].ToString(), "DT") + "" + dr[column.Key] + "" + dr[column.Key] + "
"); return html.ToString(); } private string GenerateCsvForReport() { var sql = GetStatic.ReadSession("sql", ""); if (sql == "") return "error"; var db = new SwiftDao(); var ds = db.ExecuteDataset(sql); if (ds == null || ds.Tables.Count == 0) return "error"; var dt = ds.Tables[0]; var html = new StringBuilder(""); html.Append(""); for (var i = 0; i < dt.Columns.Count; i++) { html.Append(""); } html.Append(""); foreach (DataRow dr in dt.Rows) { html.Append(""); for (var i = 0; i < dt.Columns.Count; i++) { html.Append(""); } html.Append(""); } html.Append("
" + dt.Columns[i].ColumnName + "
" + dr[i] + "
"); return html.ToString(); } private string GenerateCsv() { var sql = GetStatic.ReadSession("exportSource", ""); sql = sql.Split(',')[0].Split('=')[0] + "='download'"; if (string.IsNullOrEmpty(sql)) return ""; var type = GetStatic.ReadQueryString("type", "").ToLower(); var ds = new DataSet(); if (type == "remit") { ds = remit.ExecuteDataset(sql); } else { ds = dao.ExecuteDataset(sql); } var columnList = (List)Session["grid_column"]; if (ds == null || columnList == null) return ""; var dt = ds.Tables[0]; //var html = new StringBuilder(""); var html = new StringBuilder("
"); html.Append(""); foreach (var column in columnList) { if (column.Description != "") //html.Append(""); html.Append(""); // Added border style } html.Append(""); foreach (DataRow dr in dt.Rows) { html.Append(""); foreach (var column in columnList) { switch (column.Type.ToUpper()) { case "M": html.Append(""); // Added border style break; case "D": html.Append(""); // Added border style break; case "DT": html.Append(""); // Added border style break; case "NOSORT": if (column.Description.Trim() != "") html.Append(""); // Added border style break; case "CHECKBOX": break; default: html.Append(""); // Added border style break; } } html.Append(""); } html.Append("
" + column.Description + "" + column.Description + "
" + SwiftGrid.FormatData(dr[column.Key].ToString(), "M") + "" + SwiftGrid.FormatData(dr[column.Key].ToString(), "D") + "" + SwiftGrid.FormatData(dr[column.Key].ToString(), "DT") + "" + dr[column.Key] + "" + dr[column.Key] + "
"); return html.ToString(); } } }