Acumatica uses C# exception mechanism to redirect to another web page (the report launcher is a web page).
You can create a customization with a graph extension that intercept the report redirect exception. Then you can modify the WindowMode property to New and rethrow the report redirect exception.
Source code for this solution:
using PX.Data;
using System;
using System.Collections;
namespace PX.Objects.SO
{
public class SOShipmentEntry_Extension : PXGraphExtension<SOShipmentEntry>
{
public delegate IEnumerable ReportDelegate(PXAdapter adapter, String reportID);
PXOverride]
public IEnumerable Report(PXAdapter adapter, String reportID, ReportDelegate baseMethod)
{
if (reportID == "SO642000")
{
IEnumerable returnValue = adapter.Get();
try
{
returnValue = baseMethod(adapter, reportID);
}
catch (PXReportRequiredException ex)
{
ex.Mode = PXBaseRedirectException.WindowMode.New;
throw ex;
}
return returnValue;
}
else
{
return baseMethod(adapter, reportID);
}
}
}
}