报表邮件设置中的解析公式

时间:2019-06-03 15:00:38

标签: acumatica

我正在尝试显示一个带有附加报告的电子邮件弹出窗口。我希望在弹出窗口中的电子邮件字段中填充附件报告的邮件设置-类似于在直接运行报告时单击“发送”按钮时发生的情况。我正在尝试通过PXAction方法执行此操作。

我已经完成了大部分工作,但是,如果“邮件设置”中包含公式,就会出现问题。例如,如果主题设置为“ = [table]。[field]”,则在我的电子邮件弹出窗口的“主题”框中获得“ = [table]。[field]”,而不是table.field的值。

关于如何获取报告中“邮件设置”字段的值而不是逐字记录文本的任何想法?

TIA!

1 个答案:

答案 0 :(得分:1)

这对我有用。我确定有一种方法可以省去删除“ =”的代码,但是,这满足了我的需要。

 protected string GleanMailSetting(Report report, ReportNode reportNode, string settingText)
    {
        if ((string.IsNullOrEmpty(settingText)) || (!settingText.StartsWith("=")))
            return settingText;

        string trimmedText = settingText.TrimStart(new char[] { '=' });

        PX.Common.Parser.ExpressionNode node = Reports.Parser.ReportExprParser.Parse(trimmedText, report);

        node.Bind(report.DataSource); 

        return (string)node.Eval(reportNode.DataItem); 
    }