报表设计器下载地址
https://www.microsoft.com/zh-cn/download/details.aspx?id=53613
或者从vs扩展插件安装
打开报表设计器,插入矩阵表格(只有这个才能支持表头单元格合并)
在列单元右建,插入行,根据实际需要添加,一般大于等2行。
在数据上方右键,插入列,左对齐或右框线都可以,根据实际列数添加。
选中需要合的单元格,进行合并。
此时预览数据只有一行,不符合实际的业务需求
在行上右键,选择表达式
录入公式:=Rownumber(Nothing)
再次预览数据正常
此行号如果不需要,可以把此列隐藏
再次点运行,进行预览
可以根据实际需要导出pdf/word/excel等格式
代码导出
/// <summary>
/// 报表打印功能
/// </summary>
/// <param name="filter"></param>
/// <param name="fileType"></param>
/// <returns></returns>
private byte[] GetFileByte(ReportDataSource reportData, string fileType)
{
Stream reportDefinition = System.IO.File.OpenRead("Rpt/报文件.rdl");
LocalReport report = new LocalReport();
report.LoadReportDefinition(reportDefinition);
var dataSets = report.GetDataSourceNames();
report.DataSources.Add(new ReportDataSource(report.GetDataSourceNames()[0], reportData));
var p = report.GetParameters();
for (int i = 0; i < p.Count; i++)
{
report.SetParameters(new[] { new ReportParameter(p[i].Name, values[i]) });
}
//PDF Excel
byte[] fileByte = report.Render(fileType);
reportDefinition.Close();
return fileByte;
}
根据前端用户的搜索条件后台过滤数据,导出pdf文件,其它格式,自行修改格式即可
[HttpPost]
public IActionResult GetPdf(FilterViewModel filter)
{
byte[] pdf = GetFileByte(filter, "pdf");
return File(pdf, "application/pdf");
}