protected void CreateExcelReportButton_Click(object sender, EventArgs e) { #if truef ReportView rv = new ReportView(); if (TemplateList.Items.Count == 0) { return; } rv.CreateExcelReport(TemplateList.SelectedValue); #else //Что бы ничего не выскакивало если нет событий, то есть нет для них шаблонов if (string.IsNullOrEmpty(TemplateList.SelectedValue)) { return; } EventObjectsGridView.AllowPaging = false; EventObjectsGridView.DataBind(); var templateID = TemplateList.SelectedValue; var output = new MemoryStream(); var report = new DataSet(); var listID = new StringBuilder(); string fileName; for (int j = 0; j < EventObjectsGridView.Rows.Count; j++) { listID.Append(EventObjectsGridView.DataKeys[j]["objID"].ToString()).Append(","); } if (listID.Length == 0) { throw new Exception("Для генерации отчёта нет строк"); } var objID = listID.ToString().Substring(0, listID.Length - 1); using (var connection = new SqlConnection(Global.ConnectionString)) { var queryString = "EXEC [report].[getReportData] @templateID, @objID, @cyr=1, @flFormat=1"; var command = new SqlCommand(queryString, connection); command.Parameters.AddRange( new SqlParameter[] { new SqlParameter { ParameterName = "templateID", DbType = DbType.Int32, Value = templateID }, new SqlParameter { ParameterName = "objID", DbType = DbType.String, Value = objID }, }); SqlDataAdapter da = new SqlDataAdapter(command); da.Fill(report); queryString = "SELECT [fileName] FROM [model].[R$Template] where [objID] = @templateID"; command = new SqlCommand(queryString, connection); command.Parameters.AddRange( new SqlParameter[] { new SqlParameter { ParameterName = "templateID", DbType = DbType.String, Value = templateID }, }); connection.Open(); try { fileName = command.ExecuteScalar().ToString() + ".xlsx"; } catch (NullReferenceException) { throw new Exception("Для генерации отчёта необходимо выбрать шаблон."); } connection.Close(); //var ExcelReportOpenXML = new ExcelReportBuilder(); var ExcelReportOpenXML = new ReportViewExcelBuilder(); ExcelReportOpenXML.CreateExcel(output, report); } //Загрузить файл с отчетом на комп пользователя Response.Clear(); Response.ContentType = "text/html"; Response.AddHeader("content-disposition", "attachment;fileName =" + fileName); Response.ContentEncoding = Encoding.UTF8; Response.BinaryWrite(output.ToArray()); Response.Flush(); Response.End(); EventObjectsGridView.AllowPaging = true; #endif }
protected void Old_CreateExcelReportButton_Click(object sender, EventArgs e) { EventObjectsGridView.DataBind(); this.CreateExcelReport(EventObjectsGridView); }