Skip to main content
Question

PXReportRequiredException.AddSibling not printing all reports in the Modern UI (multiple labels)

  • July 7, 2026
  • 0 replies
  • 1 view

We have a custom action that prints one label report per container when a user selects several containers at once (e.g., the "Print Container Labels" batch feature). To send all labels in a single request we build a PXReportRequiredException for the first container and chain the rest with AddSibling(...), then throw the exception.

This works as expected in the Classic UI (all containers are rendered), but in the Modern UI only the first report is shown — the siblings added with AddSibling are ignored. It looks like AddSibling may be deprecated or handled differently by the Modern UI report viewer.

Questions:

  1. Is AddSibling deprecated / unsupported in the Modern UI?
  2. What is the recommended way in the Modern UI to print multiple report instances (one per record) from a single action so that all of them are produced?

Environment: Acumatica 2025 R2, Modern UI.

Code we currently use:

public void PrintContainerLabel(List<FRContainerHeader> containerList, bool isMassProcess = false)
{
int? customerId = 0;
PXReportRequiredException report = null;

string actualReportID = "FR201001";

if (!isMassProcess)
{
customerId = FRContainerHeaderBatch.Current.UsrCustomerID;
actualReportID = CustomPrinterLabelFromContainer(customerId);
}
var count = 1;

var reportToPrint = containerList?.FirstOrDefault()?.Action ?? ContainerLabel.printContainerLabelID;
foreach (var container in containerList)
{
var parameters = new Dictionary<string, string>();
parameters["ContainerID"] = container.ContainerID;

switch (reportToPrint)
{
case ContainerLabel.printContainerLabel:
actualReportID = isMassProcess ? CustomPrinterLabel(container) : actualReportID;
break;
case ContainerLabel.printContainerLabelID:
default:
parameters["PageNumber"] = Convert.ToString(count++);
actualReportID = "FR201005";
break;
}

if (report == null)
report = new PXReportRequiredException(parameters, actualReportID, PXBaseRedirectException.WindowMode.NewWindow, "Report " + actualReportID);
else
report.AddSibling(actualReportID, parameters);
}

if (report != null)
throw report;
}

Where it fails: In the Modern UI only the first container label is displayed; the ones added through report.AddSibling(...) are not rendered.