Skip to main content
Question

Custom Tab Showing "Undefined" in Modern UI

  • May 1, 2026
  • 2 replies
  • 27 views

Sagar Greytrix
Captain II
Forum|alt.badge.img+3

Hi Team,

I am working on adding a custom tab to the Project Task screen in the modern UI. However, I am encountering an issue where the tab does not display correctly.

When I click the arrow icon available on the screen, the custom tab appears as "undefined" instead of showing the expected content or label.

I have already reviewed the related files and configuration, but I am unable to identify the root cause of the issue.

Expected Behavior:
The custom tab should display with the correct label and content when selected.

Actual Behavior:


The tab shows "undefined" when clicked.

Could anyone please guide me on what might be causing this issue or how to resolve it?

Thanks in advance.

 

HTLM Code 

 

<qp-tab id="tabSubTasks" caption="SubTasks">
      <qp-template id="tabSubTasks_TaskProperties_CstFormView2_div0" qp-collapsible="">
        <qp-fieldset
            id="SubTasks_CstPXLayoutRule3_fs"
            slot="A"
            view.bind="SubTasks"
            wg-container="SubTasks_CstFormView2">
          <field name="SubTaskA"></field>
          <field name="SubTaskB"></field>
          <field name="SubTaskC"></field>
          <field name="SubTaskD"></field>
          <field name="SubTaskE"></field>
          <field name="SubTaskF"></field>
          <field name="SubTaskG"></field>
          <field name="SubTaskH"></field>
          <field name="SubTaskI"></field>
          <field name="SubTaskJ"></field>
          <field name="SubTaskK"></field>
          <field name="SubTaskL"></field>
        </qp-fieldset>
        <qp-fieldset
            id="SubTasks_CstPXLayoutRule4_fs"
            slot="B"
            view.bind="SubTasks"
            wg-container="SubTasks_CstFormView2">
          <field name="ParentActivityA"></field>
          <field name="ParentActivityB"></field>
          <field name="ParentActivityC"></field>
          <field name="ParentActivityD"></field>
          <field name="ParentActivityE"></field>
          <field name="ParentActivityF"></field>
          <field name="ParentActivityG"></field>
          <field name="ParentActivityH"></field>
          <field name="ParentActivityI"></field>
          <field name="ParentActivityJ"></field>
          <field name="ParentActivityK"></field>
          <field name="ParentActivityL"></field>
        </qp-fieldset>
        <qp-fieldset
            id="SubTasks_CstPXLayoutRule5_fs"
            slot="C"
            view.bind="SubTasks"
            wg-container="SubTasks_CstFormView2">
          <field name="StartDateA"></field>
          <field name="StartDateB"></field>
          <field name="StartDateC"></field>
          <field name="StartDateD"></field>
          <field name="StartDateE"></field>
          <field name="StartDateF"></field>
          <field name="StartDateG"></field>
          <field name="StartDateH"></field>
          <field name="StartDateI"></field>
          <field name="StartDateJ"></field>
          <field name="StartDateK"></field>
          <field name="StartDateL"></field>
        </qp-fieldset>
        <qp-fieldset id="SubTasks_CstPXLayoutRule6_fs" view.bind="SubTasks" wg-container="SubTasks_CstFormView2">
          <field name="DueDateA"></field>
          <field name="DueDateB"></field>
          <field name="DueDateC"></field>
          <field name="DueDateD"></field>
          <field name="DueDateE"></field>
          <field name="DueDateF"></field>
          <field name="DueDateG"></field>
          <field name="DueDateH"></field>
          <field name="DueDateI"></field>
          <field name="DueDateJ"></field>
          <field name="DueDateK"></field>
          <field name="DueDateL"></field>
        </qp-fieldset>
      </qp-template>
    </qp-tab>
  </qp-tabbar>

 

 

 

 





<template>
  <qp-tab id="tabSubTasks" append="#TaskProperties_tab" caption="SubTasks">
    <qp-template id="tabSubTasks_TaskProperties_CstFormView2_div0" qp-collapsible="">
      <qp-fieldset id="SubTasks_CstPXLayoutRule3_fs" slot="A" view.bind="SubTasks" wg-container="SubTasks_CstFormView2">
        <field name="SubTaskA"></field>
        <field name="SubTaskB"></field>
        <field name="SubTaskC"></field>
        <field name="SubTaskD"></field>
        <field name="SubTaskE"></field>
        <field name="SubTaskF"></field>
        <field name="SubTaskG"></field>
        <field name="SubTaskH"></field>
        <field name="SubTaskI"></field>
        <field name="SubTaskJ"></field>
        <field name="SubTaskK"></field>
        <field name="SubTaskL"></field>
      </qp-fieldset>
      <qp-fieldset id="SubTasks_CstPXLayoutRule4_fs" slot="B" view.bind="SubTasks" wg-container="SubTasks_CstFormView2">
        <field name="ParentActivityA"></field>
        <field name="ParentActivityB"></field>
        <field name="ParentActivityC"></field>
        <field name="ParentActivityD"></field>
        <field name="ParentActivityE"></field>
        <field name="ParentActivityF"></field>
        <field name="ParentActivityG"></field>
        <field name="ParentActivityH"></field>
        <field name="ParentActivityI"></field>
        <field name="ParentActivityJ"></field>
        <field name="ParentActivityK"></field>
        <field name="ParentActivityL"></field>
      </qp-fieldset>
      <qp-fieldset id="SubTasks_CstPXLayoutRule5_fs" slot="C" view.bind="SubTasks" wg-container="SubTasks_CstFormView2">
        <field name="StartDateA"></field>
        <field name="StartDateB"></field>
        <field name="StartDateC"></field>
        <field name="StartDateD"></field>
        <field name="StartDateE"></field>
        <field name="StartDateF"></field>
        <field name="StartDateG"></field>
        <field name="StartDateH"></field>
        <field name="StartDateI"></field>
        <field name="StartDateJ"></field>
        <field name="StartDateK"></field>
        <field name="StartDateL"></field>
      </qp-fieldset>
      <qp-fieldset id="SubTasks_CstPXLayoutRule6_fs" view.bind="SubTasks" wg-container="SubTasks_CstFormView2">
        <field name="DueDateA"></field>
        <field name="DueDateB"></field>
        <field name="DueDateC"></field>
        <field name="DueDateD"></field>
        <field name="DueDateE"></field>
        <field name="DueDateF"></field>
        <field name="DueDateG"></field>
        <field name="DueDateH"></field>
        <field name="DueDateI"></field>
        <field name="DueDateJ"></field>
        <field name="DueDateK"></field>
        <field name="DueDateL"></field>
      </qp-fieldset>
    </qp-template>
  </qp-tab>
</template>






import {
  PXFieldState,
  PXFieldOptions,
  PXView,
  PXActionState,
  updateDecorator,
  removeDecorator,
  featureInstalled,
  FeaturesSet,
  placeBeforeView,
  placeAfterView,
  placeBeforeProperty,
  placeAfterProperty,
  graphInfo,
  viewInfo,
  gridConfig,
  columnConfig,
  treeConfig,
  controlConfig,
  linkCommand,
  fieldOptions,
  fieldConfig,
  fieldInfo,
  headerDescription,
  autoRefresh,
  mappedToViewField,
  suppressLabel,
  readOnly,
  disabled,
  unbound,
  text,
  multiLine,
  primaryKey,
  type,
  ControlParameter,
  NetType,
  MenuItemRenderType,
  ScrollMode,
  TextAlign,
  GridPreset,
  GridColumnType,
  GridColumnShowHideMode,
  GridColumnDisplayMode,
  GridAutoGrowMode,
  GridPagerMode,
  GridFastFilterVisibility,
  GridNoteFilesShowMode,
  HeaderDescription,
  GridColumnGeneration,
  GridFilterBarVisibility,
  NodeSelectMode,
  PXSelectorMode,
  ApplySuggestionMode,
  ITextEditorControlConfig,
  ITimeSpanConfig,
  ISelectorControlConfig,
  ISegmentedSelectorControlConfig,
  IEditorControlConfig,
  INumberEditorControlConfig,
  IMaskEditorControlConfig,
  IMailEditorControlConfig,
  ILinkEditorControlConfig,
  IDropDownConfig,
  IDatetimeEditControlConfig,
  IColorPickerControlConfig,
  ICheckBoxControlConfig,
  ICalendarControlConfig,
  IBranchSelectorConfig,
  IBarcodeInputControlConfig,
  ITreeSelectorConfig,
  IRichTextEditorConfig,
  IFormulaEditorConfig,
  ICurrencyControlConfig,
  FieldGenerationMode,
  createSingle,
} from "client-controls";
import { PM302000 } from "src/screens/PM/PM302000/PM302000";

export interface PM302000_GTxProjectTaskActivityImportPackage_converted extends PM302000 {}

export class PM302000_GTxProjectTaskActivityImportPackage_converted {
  @viewInfo({ containerName: "SubTasks" })
  SubTasks = createSingle(UsrPMTaskSubTasks);
}

export class UsrPMTaskSubTasks extends PXView {
  SubTaskA: PXFieldState;

  SubTaskB: PXFieldState;

  SubTaskC: PXFieldState;

  SubTaskD: PXFieldState;

  SubTaskE: PXFieldState;

  SubTaskF: PXFieldState;

  SubTaskG: PXFieldState;

  SubTaskH: PXFieldState;

  SubTaskI: PXFieldState;

  SubTaskJ: PXFieldState;

  SubTaskK: PXFieldState;

  SubTaskL: PXFieldState;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityA: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityB: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityC: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityD: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityE: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityF: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityG: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityH: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityI: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityJ: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityK: PXFieldState<PXFieldOptions.CommitChanges>;

  @controlConfig({ displayMode: "text", parameters: null })
  ParentActivityL: PXFieldState<PXFieldOptions.CommitChanges>;

  StartDateA: PXFieldState;

  StartDateB: PXFieldState;

  StartDateC: PXFieldState;

  StartDateD: PXFieldState;

  StartDateE: PXFieldState;

  StartDateF: PXFieldState;

  StartDateG: PXFieldState;

  StartDateH: PXFieldState;

  StartDateI: PXFieldState;

  StartDateJ: PXFieldState;

  StartDateK: PXFieldState;

  StartDateL: PXFieldState;

  DueDateA: PXFieldState;

  DueDateB: PXFieldState;

  DueDateC: PXFieldState;

  DueDateD: PXFieldState;

  DueDateE: PXFieldState;

  DueDateF: PXFieldState;

  DueDateG: PXFieldState;

  DueDateH: PXFieldState;

  DueDateI: PXFieldState;

  DueDateJ: PXFieldState;

  DueDateK: PXFieldState;

  DueDateL: PXFieldState;
}
export interface PM302000_CRActivity_GTxProjectTaskActivityImportPackage_converted extends PM302000 {}
export class PM302000_CRActivity_GTxProjectTaskActivityImportPackage_converted  {
  @placeAfterProperty("WorkgroupID")
  @controlConfig({ displayMode: "text", parameters: null })
  ParentNoteID: PXFieldState;

}




import {
  PXFieldState,
  PXFieldOptions,
  PXView,
  updateDecorator,
  removeDecorator,
  featureInstalled,
  FeaturesSet,
  placeBeforeView,
  placeAfterView,
  placeBeforeProperty,
  placeAfterProperty,
  graphInfo,
  viewInfo,
  gridConfig,
  columnConfig,
  treeConfig,
  controlConfig,
  linkCommand,
  fieldOptions,
  fieldConfig,
  fieldInfo,
  headerDescription,
  autoRefresh,
  mappedToViewField,
  suppressLabel,
  readOnly,
  disabled,
  unbound,
  text,
  multiLine,
  primaryKey,
  type,
  ControlParameter,
  NetType,
  MenuItemRenderType,
  ScrollMode,
  TextAlign,
  GridPreset,
  GridColumnType,
  GridColumnShowHideMode,
  GridColumnDisplayMode,
  GridAutoGrowMode,
  GridPagerMode,
  GridFastFilterVisibility,
  GridNoteFilesShowMode,
  HeaderDescription,
  GridColumnGeneration,
  GridFilterBarVisibility,
  NodeSelectMode,
  PXSelectorMode,
  ApplySuggestionMode,
  ITextEditorControlConfig,
  ITimeSpanConfig,
  ISelectorControlConfig,
  ISegmentedSelectorControlConfig,
  IEditorControlConfig,
  INumberEditorControlConfig,
  IMaskEditorControlConfig,
  IMailEditorControlConfig,
  ILinkEditorControlConfig,
  IDropDownConfig,
  IDatetimeEditControlConfig,
  IColorPickerControlConfig,
  ICheckBoxControlConfig,
  ICalendarControlConfig,
  IBranchSelectorConfig,
  IBarcodeInputControlConfig,
  ITreeSelectorConfig,
  IRichTextEditorConfig,
  IFormulaEditorConfig,
  ICurrencyControlConfig,
  FieldGenerationMode,
} from "client-controls";
import { PM302000 } from "src/screens/PM/PM302000/PM302000";
import { CRActivity } from "src/screens/CR/common/tabs/tab-activities/tab-activities";

export interface PM302000_GTxProjectTaskActivityImportPackage2_generated extends PM302000 {}
export class PM302000_GTxProjectTaskActivityImportPackage2_generated {}

export interface CRActivity_GTxProjectTaskActivityImportPackage2_generated extends CRActivity {}
export class CRActivity_GTxProjectTaskActivityImportPackage2_generated {
  ParentNoteID: PXFieldState;
}
 

 

2 replies

RohitRattan88
Acumatica Moderator
Forum|alt.badge.img+4
  • Acumatica Moderator
  • May 1, 2026

@Sagar Greytrix 

I would try removing qp-collapsible from grid form:

<qp-tab id="tabSubTasks" caption="SubTasks">
      <qp-template id="tabSubTasks_TaskProperties_CstFormView2_div0" qp-collapsible="">
        <qp-fieldset...

 


Forum|alt.badge.img+3

Hello ​@Sagar Greytrix 

As per Rohit suggestion remove qp-collapsible unless you really need this tab content to be collapsible
 

<qp-tab id="tabSubTasks" caption="SubTasks">
<qp-template
id="tabSubTasks_TaskProperties_CstFormView2_div0"
name="1-1-1"
wg-container="SubTasks_CstFormView2">

<qp-fieldset
id="SubTasks_CstPXLayoutRule3_fs"
slot="A"
view.bind="SubTasks">
<field name="SubTaskA"></field>
<field name="SubTaskB"></field>
<field name="SubTaskC"></field>
<field name="SubTaskD"></field>
<field name="SubTaskE"></field>
<field name="SubTaskF"></field>
<field name="SubTaskG"></field>
<field name="SubTaskH"></field>
<field name="SubTaskI"></field>
<field name="SubTaskJ"></field>
<field name="SubTaskK"></field>
<field name="SubTaskL"></field>
</qp-fieldset>

<qp-fieldset
id="SubTasks_CstPXLayoutRule4_fs"
slot="B"
view.bind="SubTasks">
<field name="ParentActivityA"></field>
<field name="ParentActivityB"></field>
<field name="ParentActivityC"></field>
<field name="ParentActivityD"></field>
<field name="ParentActivityE"></field>
<field name="ParentActivityF"></field>
<field name="ParentActivityG"></field>
<field name="ParentActivityH"></field>
<field name="ParentActivityI"></field>
<field name="ParentActivityJ"></field>
<field name="ParentActivityK"></field>
<field name="ParentActivityL"></field>
</qp-fieldset>

<div slot="C">
<qp-fieldset
id="SubTasks_CstPXLayoutRule5_fs"
view.bind="SubTasks">
<field name="StartDateA"></field>
<field name="StartDateB"></field>
<field name="StartDateC"></field>
<field name="StartDateD"></field>
<field name="StartDateE"></field>
<field name="StartDateF"></field>
<field name="StartDateG"></field>
<field name="StartDateH"></field>
<field name="StartDateI"></field>
<field name="StartDateJ"></field>
<field name="StartDateK"></field>
<field name="StartDateL"></field>
</qp-fieldset>

<qp-fieldset
id="SubTasks_CstPXLayoutRule6_fs"
view.bind="SubTasks">
<field name="DueDateA"></field>
<field name="DueDateB"></field>
<field name="DueDateC"></field>
<field name="DueDateD"></field>
<field name="DueDateE"></field>
<field name="DueDateF"></field>
<field name="DueDateG"></field>
<field name="DueDateH"></field>
<field name="DueDateI"></field>
<field name="DueDateJ"></field>
<field name="DueDateK"></field>
<field name="DueDateL"></field>
</qp-fieldset>
</div>

</qp-template>
</qp-tab>

 

If you want to keep it collapsible

Use this instead:

<qp-template
id="tabSubTasks_TaskProperties_CstFormView2_div0"
name="1-1-1"
wg-container="SubTasks_CstFormView2"
qp-collapsible>

 

I hope it help.