【发布时间】:2021-07-21 13:56:43
【问题描述】:
有谁知道如何在Acumatica ERP系统的Bill & Adjusment屏幕中添加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, 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, "AP910501", "Report");
}
return result;
}
#endregion
此代码在 Acumatica 版本 2017 R2 中有效,但在 2021 R1 版本中无效。 有谁知道解决这个问题的正确方法吗??
谢谢。
【问题讨论】:
标签: c# customization acumatica erp