Exemple #1
0
    protected void btnDownloadTemplate_OnClick(object sender, EventArgs e)
    {
        EmpLeaveBalance _dalEmpLeaveBalance = null;
        Hashtable       _htParameters       = null;

        try
        {
            _dalEmpLeaveBalance = new EmpLeaveBalance();
            _htParameters       = new Hashtable();

            string empcode = Session[SessionKey.CURRENT_USER_HRMS_EMP_CODE].ToString().Trim();

            _htParameters["p_START_DATE"] = Utility.ToDateTime(txtStartDate.Text);
            _htParameters["p_END_DATE"]   = Utility.ToDateTime(txtEndDate.Text);

            var dt = _dalEmpLeaveBalance.GetRowsTempBalanceDataExcel(_htParameters);

            if (dt.Rows.Count <= 0)
            {
                throw new Exception("No data found for date " + txtStartDate.Text + " to date " + txtEndDate.Text);
            }

            var filename = "employee_leave_quota" + empcode + "_" + Utility.ToDateTime(txtStartDate.Text).ToString("yyyyMMdd");
            var filepath = Server.MapPath(@"~\temp\xls\" + filename);

            var columns = new string[dt.Columns.Count];
            var rows    = new string[dt.Rows.Count];
            var i       = 0;
            foreach (DataColumn col in dt.Columns)
            {
                columns[i] = col.ColumnName;
                i++;
            }
            var builder = new StringBuilder();
            builder.Append(string.Join(",", columns.ToArray())).Append("\n");
            i = 0;
            foreach (DataRow dr in dt.Rows)
            {
                var currentRow = new string[dt.Columns.Count];
                var j          = 0;
                foreach (DataColumn col in dt.Columns)
                {
                    object item = dr[col];
                    currentRow[j] = (item.ToString());
                    j++;
                }
                rows[i] = string.Join(",", currentRow.ToArray());
                i++;
            }
            builder.Append(string.Join("\n", rows.ToArray()));
            Response.Clear();
            Response.ContentType = "text/csv";
            Response.AddHeader("Content-Disposition", "attachment;filename=" + filename + ".csv");
            Response.Write(builder.ToString());
            Response.End();
        }
        catch (Exception ex)
        {
            Utility.ShowMessageBox(this, Utility.LOAD_DATA_FAIL_MESSAGE, ex, null, null);
        }
    }