.net core使用fastreport

引入NuGet包:FastReport.OpenSource.Web、FastReport.Compat
Startup.cs的Configure中加入: app.UseFastReport();
新建一个页面,在页面中加入:@await ViewBag.WebReport.Render();
创建控制器,引用命名空间:using FastReport.Web;
在方法中,加入:

 public IActionResult UserReport()
        {
            var report = new WebReport();
            report.Report.Load(_hostingEnvironment.WebRootPath+ "/ReportTemp/UserList.frx");
            var list = from b in context.App_User.ToList()
                       select new
                       {
                           USER_CODE = b.USER_CODE,
                           USER_NAME = b.USER_NAME
                       };
            var dataset = DataSetHelper.ConvertToDataSet(list.ToList());
            dataset.Tables[0].TableName = "Table";//数据源中的名字
            report.Report.RegisterData(dataset);//注册数据
            ViewBag.WebReport = report;
            return View();
        }

控制器完整代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using FastReport.Web;
using Microsoft.AspNetCore.Mvc;
using NetCore.Models;
using CoreHelper;
using Microsoft.AspNetCore.Hosting;

namespace NetCore.Controllers.User
{
    public class UserController : Controller
    {
        DataBaseContext context;
        private readonly IHostingEnvironment _hostingEnvironment;
        public UserController(DataBaseContext context, IHostingEnvironment hostingEnvironment)
        {
            this.context = context;
            _hostingEnvironment = hostingEnvironment;
        }

        public IActionResult UserReport()
        {
            var report = new WebReport();
            report.Report.Load(_hostingEnvironment.WebRootPath+ "/ReportTemp/UserList.frx");
            var list = from b in context.App_User.ToList()
                       select new
                       {
                           USER_CODE = b.USER_CODE,
                           USER_NAME = b.USER_NAME
                       };
            var dataset = DataSetHelper.ConvertToDataSet(list.ToList());
            dataset.Tables[0].TableName = "Table";//数据源中的名字
            report.Report.RegisterData(dataset);//注册数据
            ViewBag.WebReport = report;
            return View();
        }
    }
}

fastreport代码如下:

<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="06/09/2020 13:33:18" ReportInfo.Modified="06/09/2020 13:44:34" ReportInfo.CreatorVersion="2013.2.5.0">
  <Dictionary>
    <TableDataSource Name="Table" ReferenceName="Data.Table" DataType="System.Data.DataView, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Enabled="true">
      <Column Name="账号" Alias="USER_CODE" DataType="System.String"/>
      <Column Name="姓名" Alias="USER_NAME" DataType="System.String"/>
    </TableDataSource>
  </Dictionary>
  <ReportPage Name="Page1">
    <ReportTitleBand Name="ReportTitle1" Width="718.2" Height="37.8">
      <TextObject Name="Text7" Left="274.05" Top="9.45" Width="132.3" Height="18.9" Text="用户信息" HorzAlign="Center" VertAlign="Center" Font="宋体, 12pt, style=Bold"/>
    </ReportTitleBand>
    <PageHeaderBand Name="PageHeader1" Top="41.8" Width="718.2" Height="18.9">
      <TextObject Name="Text1" Left="9.45" Width="94.5" Height="18.9" Border.Lines="All" Text="序号" HorzAlign="Center" VertAlign="Center" Font="宋体, 9pt"/>
      <TextObject Name="Text2" Left="103.95" Width="94.5" Height="18.9" Border.Lines="All" Text="账号" HorzAlign="Center" VertAlign="Center" Font="宋体, 9pt"/>
      <TextObject Name="Text3" Left="198.45" Width="94.5" Height="18.9" Border.Lines="All" Text="姓名" HorzAlign="Center" VertAlign="Center" Font="宋体, 9pt"/>
    </PageHeaderBand>
    <DataBand Name="Data1" Top="64.7" Width="718.2" Height="18.9" DataSource="Table">
      <TextObject Name="Text4" Left="9.45" Width="94.5" Height="18.9" Border.Lines="All" Text="[Row#]" HorzAlign="Center" VertAlign="Center" Font="宋体, 9pt"/>
      <TextObject Name="Text5" Left="103.95" Width="94.5" Height="18.9" Border.Lines="All" Text="[Table.USER_CODE]" HorzAlign="Center" VertAlign="Center" Font="宋体, 9pt"/>
      <TextObject Name="Text6" Left="198.45" Width="94.5" Height="18.9" Border.Lines="All" Text="[Table.USER_NAME]" HorzAlign="Center" VertAlign="Center" Font="宋体, 9pt"/>
    </DataBand>
  </ReportPage>
</Report>

  • 要注意TableDataSource 里面的Name和ReferenceName;如果Name为DemoTable,ReferenceName里面就是Data.DemoTable
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值