KearneyKang 发表于 2023-6-14 11:42:58

ActiveReports 17 新特性-Web设计器支持调用自定义函数

本帖最后由 Bella.Yuan 于 2023-6-19 14:33 编辑

ActiveReports的桌面设计器支持通过脚本的方式实现自定义函数,Web设计器前面一直不支持自定义函数。但是在ActiveReports17提供API支持通过后端实现一些自定义的功能,前端报表设计的时候直接调用对应的函数就可以实现函数自定义,比如我们经常说的的,大小写转换、数据逻辑判断等其他非常自定义的需求都可以在web设计器中实现。
下面就带大家一起来看看如何在Web端实现函数自定义
1、首先打开通过Visual Studio打开AR的Web设计器的代码



2、打开 Startup.cs 文件,并自定义app.UseReporting()方法
app.UseReporting(settings =>
                        {
                              settings.UseCompression = true;
                              settings.UseCustomStore(report =>
                              {                                       
                                        PageReport rep = new PageReport();
                                        string path = System.Web.Hosting.HostingEnvironment.MapPath("~/");            
                                        rep.Load(new FileInfo(@"" + path + "resources/" + HttpUtility.UrlDecode(report)));
                                        var customCodeAssembly = typeof(CustomCode).Assembly;
                                        rep.Report.CodeModules.Add(customCodeAssembly.ToString());
                                        return rep.Report;
                              });
                        });3、app.UseReporting()自定义的方法中调用了类 CustomCode
在类文件CustomCode中进行函数自定义
namespace CustomCodeInjector
{
         public static class CustomCode
         {
            public static string PadLeft(string input, int width)//自定义函数 PadLeft
               {
                  return "测试";//返回值
               }
         }
}
4、打开报表Web设计界面,调用自定义函数PadLeft()
函数调用的表达式如下:
{CustomCodeInjector.CustomCode.PadLeft("test", 18)}5、拖入一个文本框绑定表达式

6、预览结果如下:


7、demo

DDZ 发表于 2023-7-19 16:35:16

如何实现关于集合的自定义函数,带 scope 参数的
如 {DistinctSum(OrderID, OrderFreight, "Order")} 这样的集合函数
我要实现一个 {DistinctJoin(OrderID, OrderName, "Order")} 这样的 DistinctJoin 函数
要怎么做?

Eden.Sun 发表于 2023-7-19 17:21:07

DDZ 发表于 2023-7-19 16:35
如何实现关于集合的自定义函数,带 scope 参数的
如 {DistinctSum(OrderID, OrderFreight, "Order")} 这样 ...

您好,这是产品新特性介绍贴, 建议您开个新贴,具体描述您的问题和需求,咱们再看怎么解决呢。
页: [1]
查看完整版本: ActiveReports 17 新特性-Web设计器支持调用自定义函数