泡沫1201 发表于 2023-9-15 14:15:58

如何把我的报表放在这个文件夹

这个文件夹怎么放进去,如何在页面显示我建好的表

Felix.Li 发表于 2023-9-15 15:54:50

问题描述:

JSViewerDemo怎么把获取的报表列表目录改成自定义的

问题回答:
这个前段页面展示的页面,其实是利用js写的一个页面,他实际上是调用的一个接口    http:\\*\reports   这个接口。这个接口是后端自定义的:

你在控制层接口其实可以看到的。如果你想改成当前目录下的Report目录。可以自己实现这个类,返回一个目录的List列表。
我这边有一个现成的,您可以参考一下:
public ActionResult Reports()
      {
            string[] validExtensions = {".rdl", ".rdlx", ".rdlx-master", ".rpx"};
            //var reportsList = GetEmbeddedReports(validExtensions);
            ArrayList reportsList = new ArrayList();
            DirectoryInfo dir = new DirectoryInfo("./Reports");
            foreach (FileInfo fi in dir.GetFiles("*.rdlx"))
            {
                if (fi.Name.EndsWith(".rdlx")) // 将 docx 类型的文件过滤掉
                {
                  //if (!fi.Name.StartsWith("son")) {
                        reportsList.Add(fi.Name);
                  //}
                }
            }
            
            return new ObjectResult(reportsList);
      }这个就可以获取目录下的所有.rdlx文件名了。

泡沫1201 发表于 2023-9-15 16:29:24

显示没有,但是我按你代码把我的表显示了,但是点击提示异常

泡沫1201 发表于 2023-9-15 16:37:53

是前端还要改什么吗

Felix.Li 发表于 2023-9-15 17:25:01

您改了这里,获取报表的地方也要相对应的修改:

因为报表获取依旧是获取的以前的目录:

startUp中修改如下代码。
添加静态变量:
private static readonly DirectoryInfo ResourcesRootDirectory =
            new DirectoryInfo(Path.Combine(Directory.GetCurrentDirectory(), "resources" + Path.DirectorySeparatorChar));我上面是resources,您改成自己的目录
其次在修改下面代码
app.UseReporting(settings =>
            {
                app.UseReporting(config => config.UseFileStore(ResourcesRootDirectory));
               
                settings.UseCompression = true;
            });让UseReporting指向刚才配置的那个目录地址就可以
页: [1]
查看完整版本: 如何把我的报表放在这个文件夹