Skip to main content
Question

The custom column standard action is not working in Acumatica 24R1.


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

Hi Team, 

I am creating a custom screen, and I have an issue with a column and actions . I added a screen ID "Details," but the standard actions like "Insert" and others are not working when I click them. Please provide a solution.

Regards,

Sagar

 

 

 

 

<asp:Content ID="cont3" ContentPlaceHolderID="phG" Runat="Server">
    <px:PXTab ID="tab" runat="server" Width="100%" Height="150px" DataSourceID="ds" AllowAutoHide="false">
        <Items>
            <px:PXTabItem Text="Details">
                <Template>
                    <px:PXGrid runat="server" ID="CstPXGrid10" KeepPosition="True" DataSourceID="ds" SkinID="DetailsInTab" SyncPosition="True">
                        <Levels>
                            <px:PXGridLevel DataMember="detailsqltyresponse" >
                                <Columns>
                                    <px:PXGridColumn DataField="Cod" Width="70" />
                                    <px:PXGridColumn DataField="Coddes" Width="140" /></Columns></px:PXGridLevel></Levels></px:PXGrid></Template>
            </px:PXTabItem>
                     </Items>
        <AutoSize Container="Window" Enabled="True" MinHeight="150" ></AutoSize>
    </px:PXTab>
</asp:Content>

10 replies

Naveen Boga
Captain II
Forum|alt.badge.img+19
  • Captain II
  • 3410 replies
  • January 17, 2025

Hi Sagar,

I don’t see any issue with the above code except the below one, it should be start with the small letters.

If this still not working, we need to review and the DAC (keys declaration )and View at graph.

 

 


Sagar Greytrix
Captain II
Forum|alt.badge.img+3
  • Author
  • Captain II
  • 112 replies
  • January 17, 2025

@Naveen Boga Thanks for response 

This solution is not working. 

I tried with a small "s".

Below is the DAC code and graph.

using System;
using PX.Data;

namespace GTXQtyManagement
{
  [Serializable]
  [PXCacheName("QltyResponse")]
  public class QltyResponse : PXBqlTable, IBqlTable
  {
 #region Id
 [PXDBIdentity]
 public virtual int? Id { get; set; }
 public abstract class id : PX.Data.BQL.BqlInt.Field<id> { }
 #endregion

 #region Restbl
 [PXDBString(255, IsUnicode = true, InputMask = "")]
 [PXUIField(DisplayName = "Response Table", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(
typeof(Search<QltyResponse.restbl>),
typeof(QltyResponse.restbl),       
typeof(QltyResponse.resdes),     
SubstituteKey = typeof(QltyResponse.restbl),
DescriptionField = typeof(QltyResponse.resdes))]
 public virtual string Restbl { get; set; }
 public abstract class restbl : PX.Data.BQL.BqlString.Field<restbl> { }
 #endregion

 #region Resdes
 [PXDBString(255, IsUnicode = true, InputMask = "")]
 [PXUIField(DisplayName = "Description ")]
 public virtual string Resdes { get; set; }
 public abstract class resdes : PX.Data.BQL.BqlString.Field<resdes> { }
 #endregion

 #region Typalpha
 [PXDBBool()]
 [PXUIField(DisplayName = "Alphanumeric")]
 public virtual bool? Typalpha { get; set; }
 public abstract class typalpha : PX.Data.BQL.BqlBool.Field<typalpha> { }
 #endregion

 #region Typnum
 [PXDBBool()]
 [PXUIField(DisplayName = "Numeric")]
 public virtual bool? Typnum { get; set; }
 public abstract class typnum : PX.Data.BQL.BqlBool.Field<typnum> { }
 #endregion

 #region Cod
 [PXDBString(2, IsUnicode = true, InputMask = "")]
 [PXUIField(DisplayName = "Code")]
 public virtual string Cod { get; set; }
 public abstract class cod : PX.Data.BQL.BqlString.Field<cod> { }
 #endregion

 #region Coddes
 [PXDBString(15, IsUnicode = true, InputMask = "")]
 [PXUIField(DisplayName = "Code description ")]
 public virtual string Coddes { get; set; }
 public abstract class coddes : PX.Data.BQL.BqlString.Field<coddes> { }
 #endregion

 #region CreatedByID
 [PXDBCreatedByID()]
 public virtual Guid? CreatedByID { get; set; }
 public abstract class createdByID : PX.Data.BQL.BqlGuid.Field<createdByID> { }
 #endregion

 #region CreatedByScreenID
 [PXDBCreatedByScreenID()]
 public virtual string CreatedByScreenID { get; set; }
 public abstract class createdByScreenID : PX.Data.BQL.BqlString.Field<createdByScreenID> { }
 #endregion

 #region CreatedDateTime
 [PXDBCreatedDateTime()]
 public virtual DateTime? CreatedDateTime { get; set; }
 public abstract class createdDateTime : PX.Data.BQL.BqlDateTime.Field<createdDateTime> { }
 #endregion

 #region LastModifiedByID
 [PXDBLastModifiedByID()]
 public virtual Guid? LastModifiedByID { get; set; }
 public abstract class lastModifiedByID : PX.Data.BQL.BqlGuid.Field<lastModifiedByID> { }
 #endregion

 #region LastModifiedByScreenID
 [PXDBLastModifiedByScreenID()]
 public virtual string LastModifiedByScreenID { get; set; }
 public abstract class lastModifiedByScreenID : PX.Data.BQL.BqlString.Field<lastModifiedByScreenID> { }
 #endregion

 #region LastModifiedDateTime
 [PXDBLastModifiedDateTime()]
 public virtual DateTime? LastModifiedDateTime { get; set; }
 public abstract class lastModifiedDateTime : PX.Data.BQL.BqlDateTime.Field<lastModifiedDateTime> { }
 #endregion

 #region Tstamp
 [PXDBTimestamp()]
 [PXUIField(DisplayName = "Tstamp")]
 public virtual byte[] Tstamp { get; set; }
 public abstract class tstamp : PX.Data.BQL.BqlByteArray.Field<tstamp> { }
 #endregion
  }
}

 

 

 

 

using System;
using PX.Data;
using PX.Data.BQL.Fluent;


namespace GTXQtyManagement
{
    public class responseMaint : PXGraph<responseMaint, QltyResponse>
    {
        public SelectFrom<QltyResponse>.View qltyresponse;
}
}

 

 


Naveen Boga
Captain II
Forum|alt.badge.img+19
  • Captain II
  • 3410 replies
  • January 17, 2025

@Sagar Greytrix  You mentioned View for the GRID is detailsqltyresponse, but I don’t see this view in your graph. Can you please shrae the customization package as well.


Sagar Greytrix
Captain II
Forum|alt.badge.img+3
  • Author
  • Captain II
  • 112 replies
  • January 17, 2025

@Naveen Boga 

I had added the wrong code earlier. This is the correct graph code.

 {
        public SelectFrom<QltyResponse>.View qltyresponse;
        public SelectFrom<QltyResponse>.View detailsqltyresponse;
        public PXSave<QltyResponse> Save;
        public PXCancel<QltyResponse> Cancel;


        public PXFilter<MasterTable> MasterView;
        public PXFilter<DetailsTable> DetailsView;

        [Serializable]
        public class MasterTable : PXBqlTable, IBqlTable
        {

        }

        [Serializable]
        public class DetailsTable : PXBqlTable, IBqlTable
        {

        }


    }
}

 


Sagar Greytrix
Captain II
Forum|alt.badge.img+3
  • Author
  • Captain II
  • 112 replies
  • January 17, 2025

@Naveen Boga

Please find the attached customization package.

 

 

 

 


Naveen Boga
Captain II
Forum|alt.badge.img+19
  • Captain II
  • 3410 replies
  • January 17, 2025

@Sagar Greytrix  I see that you are using the same Header DAC for the GRID as well. Can you please let me know what is the reason for using the same DAC for Header and Details grid?

 

Header record will be 1 record for the multiple details records. it is always 1 to many relationship.


Sagar Greytrix
Captain II
Forum|alt.badge.img+3
  • Author
  • Captain II
  • 112 replies
  • January 17, 2025

@Naveen Boga For the custom Screen, I need only 5-6 fields, which is why I am using a single DAC. Initially, I used the same view for the header and grid, but then I modified the same DAC for multiple views.

 

Please let me know if this is causing the issue. If yes, I will create two separate DACs and check.


Naveen Boga
Captain II
Forum|alt.badge.img+19
  • Captain II
  • 3410 replies
  • January 17, 2025

Yes, please create two separate DAC files for Header and Details as recommended.


Md Kalim Ashraf
Freshman II

Hi Sagar,

I understand you're using the same DAC for both header and grid views since you only need a few fields. This approach can work, but needs proper setup. Here's how to fix the issue:

  1. First, modify your graph to properly define both views using the same DAC:

public class responseMaint : PXGraph<responseMaint, QltyResponse>
{
    public SelectFrom<QltyResponse>.View qltyresponse;
    
    // Separate view for the grid
    public SelectFrom<QltyResponse>
        .OrderBy<QltyResponse.cod.Asc>
        .View detailsqltyresponse; // Add appropriate ordering
}

  1. Make sure your ASPX grid has the necessary properties:

<px:PXGrid runat="server" ID="CstPXGrid10" 

    DataSourceID="ds" 

    SkinID="DetailsInTab" 

    Width="100%"

    AllowInsert="True" 

    AllowDelete="True" 

    AllowUpdate="True">

    <Levels>

        <px:PXGridLevel DataMember="detailsqltyresponse">

            <Columns>

                <px:PXGridColumn DataField="Cod" Width="70" />

                <px:PXGridColumn DataField="Coddes" Width="140" />

            </Columns>

        </px:PXGridLevel>

    </Levels>

</px:PXGrid>

However, while using a single DAC for both views can work for simple cases, you might face these limitations:

  • You'll need to carefully manage which fields appear where
  • The records in the grid won't be linked to the header record
  • You might have synchronization issues between the views


    If you find these limitations problematic, creating a separate detail DAC with a proper parent-child relationship would be a more robust solution.

    Let me know if this helps or if you'd like me to explain any part in more detail."


Sagar Greytrix
Captain II
Forum|alt.badge.img+3
  • Author
  • Captain II
  • 112 replies
  • January 20, 2025

@Naveen Boga now i m using 2 dac but still i m facing same issue.

 

using System;
using PX.Data;
using PX.Data.BQL.Fluent;


namespace GTXQtyManagement
{
    public class responseMaint : PXGraph<responseMaint, QtyResponse>
    {
        
  
       public SelectFrom<QtyResponse>.View qtyresponse;
        public SelectFrom<QtyResponseDetails>.View detailsqtyresponse;

        public PXFilter<MasterTable> MasterView;
        public PXFilter<DetailsTable> DetailsView;

        [Serializable]
        public class MasterTable : PXBqlTable, IBqlTable
        {

        }

        [Serializable]
        public class DetailsTable : PXBqlTable, IBqlTable
        {

        }


    }
}

 

 insert delete action is not working.


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings