如何从报表设计器调用 Acumatica 函数?

2023-12-29

我有一个用 Acumatica 编写的通用函数,我们在各种 Acumatica 屏幕上使用它,我们希望在报表设计器中使用此函数,以便我们可以打印该值。 示例:CheckBday() 如果我们传递客户代码,它应该检查此客户生日字段,如果是今天,则返回“生日快乐”

是否可以调用报表设计器中的这个常用函数来处理?如果是这样,如何在报表设计器中实现这一点,任何见解都会有所帮助。


您可以通过使用用户定义函数 (UDF) 在报表设计器上使用扩展函数。 你可以:

  1. 创建一个名为 ReportUDF 的新 AddOn 项目。添加一个名为 UtilFunctions.cs 的新类文件。
  2. 添加公共函数 YOURFUNCTION:

     using System;
     using System.Collections.Generic;
     using System.Linq;
     using System.Text;
     using PX.Objects.AP;
    
     namespace ReportUDF
     {
        public class UtilFunctions
        {
            public string YOURFUNCTION(string PARAM)
            {
                try
                {
                     //function code
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }
         }
    }
    
  3. 参数及其数据类型:类中的方法应始终包含字符串类型的参数,并始终返回字符串类型的值。处理参数和返回参数的最佳方法是将它们声明为 Object 类型。但是,您需要在使用或使用这些参数之前将它们转换为适当的数据类型,以确保您的方法正确运行。

  4. 编译此附加项目。编译成功后,确保程序集(ReportUDF.dll)放置在 Acumatica 网站的 Bin 文件夹中。

  5. 在 ReportLauncher.aspx.cs 中连接这个新程序集,如下所述:

    • 在 Visual Studio 中打开 ReportLauncher.aspx.cs 文件(网站文件夹 > 框架)。
    • 将以下代码行添加到静态构造函数 Pages_ReportLauncer 的底部:

       Type DemoReportFunctionsType =
       System.Web.Compilation.BuildManager.GetType("ReportUDF.UtilFunctions", false);
      
       if(DemoReportFunctionsType != null)
       {      
           ExpressionContext.RegisterExternalObject("ReportUDF",Activator.CreateInstance(DemoReportFunctionsType));
       }
      
  6. 在报表设计器中打开表单报表并添加具有以下表达式的 TextBox 控件,如下所示:

     = ReportUDF.YOURFUNCTION([DAC.UsrSomeField])
    

观察:UDF 不会显示在表达式编辑器中。

  1. 保存并运行报告。

观察:自定义 ReportLauncher.aspx.cs 不是标准做法,应重新应用升级期间的更改。您始终可以将这些更改编译为自定义包的一部分;但是,您应该确保在升级过程中保留此代码文件的增强功能(如果有)。否则,报告可能无法按预期运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从报表设计器调用 Acumatica 函数? 的相关文章

  • 扩展基于 Acumatica 投影的 DAC 查询

    有没有办法扩展 修改投影 DAC 的投影查询 例如 如果我需要向投影添加连接语句 然后将新连接的表用于可用字段 向 PXCacheExtension 添加自定义字段可以按预期工作 但在 PXCacheExtension DAC 顶部指定 P
  • 如何有条件地隐藏 Acumatica 屏幕内的 PXTabItem?

    我想隐藏 销售订单行佣金 选项卡 但我只想隐藏特定角色的选项卡 这可能吗 选项 1 使用 PXTabItem VisibleExp 属性 这种方法与相当简单的声明条件完美配合 该条件利用来自特定容器的输入控制值 PXForm最常用于这种情况
  • 防止更新禁用视图上的注释/文件

    我注意到当网格不允许更新 插入或删除时 可以在网格上插入 更新 删除注释和文件 假设形式相同 有办法关掉它吗 我正在编写一个自定义页面 并希望阻止用户修改任何内容 包括注释和文件 我的网格包含以下内容 MyGrid AllowInsert
  • 在 Acumatica 中,您可以使用未绑定的 DAC 获得图表/页面吗?

    是否可以让图表和页面使用完全未绑定的 DAC 当前在 4 20 中尝试此操作时 我收到以下错误消息 Incorrect syntax near the keyword FROM Description An unhandled except
  • 如何在项目输入屏幕 (PM301000) 中正确对具有多级任务 ID(如 1、1.1、1.1.5、1.2、2、2.1.3、2.2、4、11、13、44 等)的任务进行排序?

    默认开箱排序 预期排序 Set Edit Mask to Unicode项目任务分段密钥 CS202000 以便允许多级任务 CD 允许 值 为了获得预期的排序 我们将创建自定义 BQL 函数 它将数字部分填充到现成的 TaskCD 字段
  • Acumatica 定制项目中的 CREATE VIEW 语句

    有谁知道如何将 CREATE VIEW SQL 语句推送到 Acumatica 定制项目中 我知道如何在 SQL Management Studio 中执行此操作 但通过自定义项目执行此操作对于 Acumatica SaaS 客户非常有用
  • Acumatica 配置向导错误:无法在注册表中获取 IIS 版本

    我尝试在 Acumatica 配置向导上创建一个新实例 我收到一条错误消息 无法从注册表获取您的 IIS 版本 虽然我已经安装了IIS功能 我按照有关在 IIS 上安装哪些功能的说明进行操作 它使用的 net框架是4 6 显然这个问题还没有
  • Acumatica 通用查询如何将多个 GI 导出为 xml

    我知道你可以一次将一个 GI 导出到 xml 我想知道你可以选择所有用户 GI 并导出到 XML 作为备份 Thanks 您可以通过创建一个自定义项目并将您需要的所有通用查询包含在一个包中来实现此目的 该项目可以导出和导入 其中包括所有附加
  • 有没有办法将用户定义的字段放入选择器中?

    我有一位客户使用用户定义字段 我发现这些值位于数据库的 KvExt 表中 但我还没有找到通过 DAC 或 DAC 扩展直接访问这些值的方法 有没有办法可以访问该字段并将其添加到 Acumatica 基本页面 我的例子中的具体目标是 ARPa
  • ASP.net 在服务引用之间重用类型

    我有两个服务引用 我通过为每个服务引用导入一个 WSDL 将其导入到我的 asp net 项目中 第一个引用是来自我的 Web 服务 Acumatica 的默认引用 第二个引用是我在原始 Web 服务中创建的自定义端点服务 问题是 它们都在
  • 混合手动\自动编号序列

    在编号顺序设置 CS201010 中 有一个手动编号选项 但是 取决于文档类型 在某些情况下 参考编号可以留空 如果它是空白的 我希望自动编号启动 或者在保存文档之前调用 NextNumber 函数 是否可以 我怎么做 目前 如果我强制执行
  • 如何包含文件上传对话框

    我获得了一些 C 图形扩展代码来上传 Excel 文件 以便导入到 购买收据 屏幕上的 分配 弹出屏幕中 未包含的是似乎用作对话框的 PXSmartPanel 任何关于如何设置 配置此智能面板以实现给定代码中的目的的帮助将不胜感激 有问题的
  • Acumatica - 站点地图项目不会在现代 UI 中显示

    我刚刚将销售佣金报告添加到站点地图 它显示在经典 UI 中 但不显示在现代 UI 中 当我在现代用户界面中搜索它时 结果什么也没有返回 我的站点地图节点在 project xml 中的样子
  • Acumatica API:将活动或注释实体添加/附加到另一个实体(即客户、联系人或机会)

    我能够添加一个 Activity 实体并能够获取 NoteId 但无法将此活动添加到特定实体 或在创建后附加它 如何使用 Rest API 或使用旧的 WSDL 来实现此目的网络服务 None
  • 如何将订单项自定义字段值从机会传递到销售订单?

    我在机会产品选项卡中有一个自定义行号字段 供客户对所选产品重新排序 并且网格按自定义字段值排序 我试图将机会的价值传递给也具有类似字段的销售订单 我尝试过以下代码但它不起作用 PXGraph InstanceCreated AddHandl
  • 将Excel上传控件添加到网格工具栏

    有没有一种方法可以让网格控件允许从 Excel 工作表上传数据 我还没有找到可以将此控件放在工具栏上的命令 您需要装饰数据视图PXImportAttribute Example PXViewName Messages SOLine PXIm
  • 根据机会创建销售订单时填充自定义字段

    我在 SO 屏幕 SO301000 上创建了一个自定义字段 联系人 现在 当用户从机会屏幕 CR304000 创建销售订单时 我需要填充这些字段 新的自定义字段联系人基于在机会中选择的客户 我可以看到 当我从机会创建销售订单时 客户会自动填
  • 如何将操作和处理程序添加到“处理货件”屏幕?

    如何将操作和处理程序添加到 处理货件 屏幕 我们想要向屏幕 SO503000 上的 操作 组合框添加一个操作 然后在代码中添加一个处理程序来处理新操作 我们希望在不必覆盖 SOShipmentEntry 图中 Action 的巨大 swit
  • Acumatica - 复制最后一行

    看起来 Acumatica 中看似简单的事情实施起来非常复杂 我想做的就是将网格的最后一行复制为新的 我希望用户自己保存更改 因此我的代码会将其放入缓存中 这是我到目前为止的行动 public PXAction
  • 从网格中隐藏“添加”按钮

    我想完全隐藏网格中的 添加 按钮 使用 Acumatica 框架 我知道如何使用AllowInsert false禁用它 但我想完全隐藏它 请问这可能吗 假设由于某些原因您想要从销售订单详细信息网格中隐藏 添加 按钮 为了实现这一目标 您应

随机推荐