Sorry for all the MUI panel questions. I got panel to open and it does fire the custom action for the panel.
I have a simple panel on PO301000. It opens and allows the user to enter a value in a field.
I enter a value in the field and click OK. The field in the view is a custom PXFilter DAC.
In debug, I get the current of the Filter and the field is always null.


In debug, the value is null:

This is the HTML and TS
<qp-panel id="ChangeLoanView"
caption="Change Loan"
auto-repaint="true">
<qp-template id="fvChangeLoanView_div0" name="1" qp-collapsible="">
<qp-fieldset id="fsChangeLoanView_lrChangeLoanView_fs"
slot="A"
view.bind="ChangeLoanView"
wg-container="ChangeLoanView_fvChangeLoanViewFields">
<field name="UsrLoan"></field>
</qp-fieldset>
</qp-template>
<footer>
<qp-button id="btnChangeLoanOK" caption="Ok" dialog-result="OK"></qp-button>
<qp-button id="btnChangeLoanCancel" caption="Cancel" dialog-result="Cancel"></qp-button>
</footer>
</qp-panel>
import {
PXFieldState,
PXView,
placeAfterProperty,
columnConfig,
createCollection,
PXFieldOptions,
viewInfo,
} from "client-controls";
import { AP301000, APTran } from "src/screens/AP/AP301000/AP301000";
export interface AP301000_Midwest_generated extends AP301000 { }
export class AP301000_Midwest_generated {
@viewInfo({ containerName: "Change Loan" })
ChangeLoanView = createCollection(ChangeLoanView)
@viewInfo({ containerName: "Change ALE" })
ChangeALEView = createCollection(ChangeALEView)
}
export class ChangeLoanView extends PXView {
UsrLoan: PXFieldState<PXFieldOptions.CommitChanges>;
}
export class ChangeALEView extends PXView {
UsrALE: PXFieldState<PXFieldOptions.CommitChanges>;
}
I tried putting commit changes on the field UsrLoan but it did not make a differenc.
This is the VS code
public class APInvoiceEntry_Extension : PXGraphExtension<PX.Objects.AP.APInvoiceEntry>
{
public PXFilter<ICSAPChangeLoan> ChangeLoanView;
public PXFilter<ICSAPChangeALE> ChangeALEView;
public PXAction<APInvoice> ChangeLoan;
[PXUIField(DisplayName = "Change Loan", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
[PXButton(Category = "Corrections", CommitChanges = true)]
protected virtual IEnumerable changeLoan(PXAdapter adapter)
{
if (ChangeLoanView.AskExt() == WebDialogResult.OK)
{
APTran aPTran = Base.Transactions.Current;
if (aPTran == null) return adapter.Get();
ICSAPTranExt ext = aPTran.GetExtension<ICSAPTranExt>();
if (ext == null) return adapter.Get();
ICSAPChangeLoan Filter = ChangeLoanView.Current;
if (Filter == null) return adapter.Get();
ext.UsrLoan = Filter.UsrLoan;
Base.Transactions.Update(aPTran);
Base.Save.Press();
}
return adapter.Get();
}
public sealed class ICSAPChangeLoan : PXBqlTable, IBqlTable
{
#region UsrLoan
[PXString(50)]
[PXUIField(DisplayName = "Loan")]
public string UsrLoan { get; set; }
public abstract class usrLoan : PX.Data.BQL.BqlString.Field<usrLoan> { }
#endregion
}
public sealed class ICSAPChangeLoan : PXBqlTable, IBqlTable
{
#region UsrLoan
[PXString(50)]
[PXUIField(DisplayName = "Loan")]
public string UsrLoan { get; set; }
public abstract class usrLoan : PX.Data.BQL.BqlString.Field<usrLoan> { }
#endregion
}
}
}I MUST be missing something super obvious.
Edit: This panel works fine in Classic UI

