如何解决如何在 Acumatica ERP 系统版本 2021 R1的账单和调整屏幕的报告按钮中创建附加菜单选项
有谁知道如何在Acumatica ERP System的Bill & Adjustment Screen中添加Report按钮的菜单项,请看下面的截图。
此外,我还为新操作按钮创建了一些自定义代码,请参阅以下代码。
namespace PX.Objects.AP
{
public class APInvoiceEntry_Extension : PXGraphExtension<APInvoiceEntry>
{
public override void Initialize()
{
Base.report.AddMenuAction(vendorInvoiceUnreleased);
Base.report.AddMenuAction(vendorInvoiceReleased);
}
#region buton vendor Invoice Not Released
public PXAction<APInvoice> vendorInvoiceUnreleased;
[PXButton]
[PXUIField(displayName = "vendor Invoice")]
public IEnumerable vendorInvoiceUnreleased(PXAdapter adapter)
{
var result = adapter.Get<APInvoice>();
foreach (APInvoice doc in result)
{
object FinPeriodID;
if (Base.Caches[typeof(APInvoice)].GetStatus(doc) == PXEntryStatus.Notchanged)
{
Base.Caches[typeof(APInvoice)].SetStatus(doc,PXEntryStatus.Updated);
}
Base.Save.Press();
var docPeriod = (FinPeriodID = Base.Caches[typeof(APInvoice)].GetValueExt<APRegister.finPeriodID>(doc)) is PXFieldState ? (string)((PXFieldState)FinPeriodID).Value : (string)FinPeriodID;
Dictionary<string,string> parameters = new Dictionary<string,string>();
parameters["BranchID"] = null;
parameters["PeriodFrom"] = docPeriod;
parameters["PeriodTo"] = docPeriod;
parameters["CreatedBy"] = null;
parameters["LastModifiedBy"] = null;
parameters["DocType"] = doc.DocType;
parameters["RefNbr"] = doc.RefNbr;
throw new PXReportrequiredException(parameters,"AP910503","Report");
}
return result;
}
#endregion
#region vendor Invoice Released
public PXAction<APInvoice> vendorInvoiceReleased;
[PXButton]
[PXUIField(displayName = "vendor Invoice Released")]
public IEnumerable vendorInvoiceReleased(PXAdapter adapter)
{
var result = adapter.Get<APInvoice>();
foreach (APInvoice doc in result)
{
object FinPeriodID;
if (Base.Caches[typeof(APInvoice)].GetStatus(doc) == PXEntryStatus.Notchanged)
{
Base.Caches[typeof(APInvoice)].SetStatus(doc,"AP910501","Report");
}
return result;
}
#endregion
此代码在 Acumatica 2017 R2 版中有效,但在 2021 R1 版中无效。 有谁知道解决这个问题的正确方法??
谢谢。
解决方法
我建议使用 acumatica 定制项目功能。这可以从定制项目访问。对于这种方法,您有两种可能的情况。如果一个按钮只需要显示一个报告而没有额外的逻辑。在这种情况下,您只需在自定义项目的屏幕操作部分指定按钮,如下面的屏幕截图所示。
另一个选项是在代码中定义按钮,然后也转到自定义项目的操作部分,而不是添加新的,您可以选择添加现有的。这将添加您现有的按钮,您将能够指定您希望它位于报告菜单下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。