Skip to main content
Solved

Custom form on Mobile. Cannot get Inventory selector to work.

  • February 16, 2026
  • 3 replies
  • 49 views

I have a simple screen with line details where an inventory item can be selected. The form works fine in the normal UI. I need this on mobile also but can’t get the Inventory or UOM selector to work on mobile. 

Here is my DAC field, I have tried several different attributes, but this doesn’t make any difference.  

        #region InventoryID
public abstract class inventoryID : PX.Data.BQL.BqlInt.Field<inventoryID> { }
protected Int32? _InventoryID;
/*[PXDBInt()]
[PXUIField(DisplayName = "Inventory ID")]
[PXSelector(typeof(Search<InventoryItem.inventoryID,
Where<InventoryItem.stkItem, Equal<True>>>),
typeof(InventoryItem.inventoryCD),
typeof(InventoryItem.descr),
SubstituteKey = typeof(InventoryItem.inventoryCD),
DescriptionField = typeof(InventoryItem.descr))]
[PXForeignReference(typeof(FK.InventoryItem))]/**/

/*
[PXDBInt()]
[PXDefault()]
[PXUIField(DisplayName = "Inventory ID")]
[PXSelector(typeof(Search<InventoryItem.inventoryID,
Where<InventoryItem.stkItem, Equal<True>>>),
typeof(InventoryItem.inventoryCD),
typeof(InventoryItem.descr),
SubstituteKey = typeof(InventoryItem.inventoryCD))]
/**/
[PXDefault]
[StockItem(DisplayName = "Inventory ID")]
public virtual Int32? InventoryID
{
get
{
return this._InventoryID;
}
set
{
this._InventoryID = value;
}
}
#endregion

 

Then on the mobile side:

This doesn’t work:

    add container "Details" {

add field "InventoryID" {
listPriority = 100
pickerType = Searchable
}


add field "Quantity"
add field "UOM"
add field "Description"

add containerAction "Insert" {
icon = "system://Plus"
behavior = Create
}

add selectionAction "Delete" {
icon = "system://Trash"
behavior = Delete
}

add recordAction "Delete" {
icon = "system://Trash"
behavior = Delete
after = Close
}

add recordAction "Insert" {
displayName = "Add Another"
icon = "system://Plus"
behavior = Create
}

}

Neither does this: 

        add field "InventoryID" {
listPriority = 100
pickerType = Detached
selectorDisplayFormat = KeyDescription
selector {
fieldsToShow = 2
add field "InventoryCD"
add field "Descr"
}
}

Nor this: 

add field "InventoryID"

or this: 

    add field "InventoryID" {
listPriority = 100
pickerType = Searchable
selector {
add field "InventoryID"
add field "Description"
}
}

I also tried copying from Sale Order entry: 

 

    add group "LineInventoryIdGroup" {
displayName = "LineInventoryIdGroup"
collapsed = True
template = ExpansionPanel
add field "InventoryID" {
listPriority = 100
selectorDisplayFormat = Key
pickerType = Searchable
}
add field "LineDescription" {
listPriority = 80
}
add layout "LineSubitemRow" {
displayName = "LineSubitemRow"
layout = "Inline"
add field "AlternateID"
add field "Subitem"
}
}

But all those options just give me a non selectable Inventory ID field:

I can however view existing lines, but it isn’t showing the description. 

 clicking on it does nothing. 

What am I doing wrong here?

 

Here is my full Mobile form:

add screen AA999999 {
openAs = Form

add container "DocumentSummary" {
displayName = "Transfer Request"
fieldsToShow = 2
formActionsToExpand = 1

add field "RequestNbr"
add field "Date"
add field "Status"
add field "Description"
add field "Warehouse"
add field "TransferRefNbr"

add layout "DetailsTab" {
displayName = "Details"
layout = "DataTab"
add containerLink "Details"
}

add recordAction "Save" {
behavior = Save
}

add recordAction "Cancel" {
behavior = Cancel
}

add recordAction "GenerateTransfer" {
displayName = "Generate Transfer"
behavior = Record
redirect = True
}

attachments {
}
}

add container "Details" {

add field "InventoryID" {
pickerType = Searchable
}

add field "Quantity"
add field "UOM"
add field "Description"

add containerAction "Insert" {
icon = "system://Plus"
behavior = Create
}

add selectionAction "Delete" {
icon = "system://Trash"
behavior = Delete
}

add recordAction "Delete" {
icon = "system://Trash"
behavior = Delete
after = Close
}

add recordAction "Insert" {
displayName = "Add Another"
icon = "system://Plus"
behavior = Create
}

}
}

 

Best answer by dcomerford

@Mauritz I think i have seen this before you need to have the fields set on the ‘Levels’ on the screen in the GUI.

 

3 replies

zherring
Jr Varsity II
Forum|alt.badge.img
  • Jr Varsity II
  • February 16, 2026

Hello, ​@Mauritz, I have done some work with the mobile scanning screen regarding inventory and UOM. I have a inventory selector on the mobile app.

My DAC looks like this:

#region InventoryID 
        [Inventory(
            typeof(Search<InventoryItem.inventoryID, Where<Match<Current<AccessInfo.userName>>>>),
            typeof(InventoryItem.inventoryCD),
            typeof(InventoryItem.descr),
            new Type[] {
                typeof(InventoryItem.inventoryCD),
                typeof(InventoryItem.descr),
                typeof(InventoryItem.itemStatus),
                typeof(InventoryItem.stkItem)
            })]
        public virtual int? InventoryID { get; set; }
        public abstract class inventoryID : PX.Data.BQL.BqlInt.Field<inventoryID> { }
#endregion


And then in the mobile app I have it simply as which is inside the “ add screen ….. { “ and inside the relevant “ add container “….” { “:

    add field "InventoryID" { selectorDisplayFormat = KeyDescription }


Rest assured you aren’t the only one that has weird issues with the mobile app. In my experience, the simpler the better. Let me know if this helps!


dcomerford
Captain II
Forum|alt.badge.img+16
  • Captain II
  • Answer
  • February 16, 2026

@Mauritz I think i have seen this before you need to have the fields set on the ‘Levels’ on the screen in the GUI.

 


  • Author
  • Freshman I
  • February 16, 2026

@dcomerford. Thanks, that was it.