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
如何实现关于集合的自定义函数,带 scope 参数的
如 {DistinctSum(OrderID, OrderFreight, "Order")} 这样的集合函数
我要实现一个 {DistinctJoin(OrderID, OrderName, "Order")} 这样的 DistinctJoin 函数
要怎么做? DDZ 发表于 2023-7-19 16:35
如何实现关于集合的自定义函数,带 scope 参数的
如 {DistinctSum(OrderID, OrderFreight, "Order")} 这样 ...
您好,这是产品新特性介绍贴, 建议您开个新贴,具体描述您的问题和需求,咱们再看怎么解决呢。
页:
[1]