Question

How to add custom column name to Base LotSerialNbr Selector in SOTranSplit table?

  • 14 January 2021
  • 7 replies
  • 86 views

How to add custom field to Base LotserialNbr Selector  ??

I am able to add custom field in Lot Serial Nbr Selector.But Display names are showing Tablename_FieldName or fieldnames instead of DAC display names...How to get DAC displaynames in this scenario??

In my custom screen I defind LotSerialNbr selector by Inheriting from INLotSerialNbrAttribute as

 

LotSerialNbr Selector in My custom screen:
--------------------------------------------------------------
[TSLotSerialNbrAttribute.TSAllocationLotSerialNbr(typeof(TSProdMTranSplit.inventoryID),
           typeof(TSProdMTranSplit.subItemID), typeof(TSProdMTranSplit.siteID),
           typeof(TSProdMTranSplit.locationID), typeof(TSProdMTranSplit.lotSerialNbr), FieldClass = "LotSerial")]

 

Inheriting from Base INLotSerialNbrAttribute

---------------------------------------------------------------

 public class TSLotSerialNbrAttribute : INLotSerialNbrAttribute
    {
        private TSLotSerialNbrAttribute() { }

        public TSLotSerialNbrAttribute(Type InventoryType, Type SubItemType, Type LocationType)
        {
            var itemType = BqlCommand.GetItemType(InventoryType);
            if (!typeof(ILSMaster).IsAssignableFrom(itemType))
            {
                throw new PXArgumentException(PX.Objects.IN.Messages.TypeMustImplementInterface, itemType.GetLongName(), typeof(ILSMaster).GetLongName());
            }

            _InventoryType = InventoryType;
            _SubItemType = SubItemType;
            _LocationType = LocationType;

            Type SearchType;
            PXSelectorAttribute attr;

            SearchType = BqlTemplate.OfCommand <Search2<INLotSerialStatus.lotSerialNbr,
                LeftJoin<TSNewQCOrderSpecializedTest,
               On<TSNewQCOrderSpecializedTest.inventoryID, Equal<INLotSerialStatus.inventoryID>,
               And<TSNewQCOrderSpecializedTest.locationID, Equal<INLotSerialStatus.locationID>,
                   And<TSNewQCOrderSpecializedTest.lotNo, Equal<INLotSerialStatus.lotSerialNbr>>>>>,
                Where<INLotSerialStatus.inventoryID, Equal<Current<TSProdMTranSplit.inventoryID>>,
               And<INLotSerialStatus.siteID, Equal<Current<TSProdMTranSplit.siteID>>,
                 And<INLotSerialStatus.locationID, Equal<Current<TSProdMTranSplit.locationID>>>>>>>
                .Replace<BqlPlaceholder.A>(InventoryType)
                .Replace<BqlPlaceholder.B>(SubItemType)
                .Replace<BqlPlaceholder.C>(LocationType).ToType();


            attr = new PXSelectorAttribute(SearchType,
                                                                 typeof(INLotSerialStatus.lotSerialNbr),
                                                                 typeof(INLotSerialStatus.siteID),
                                                                 typeof(INLotSerialStatus.qtyOnHand),
                                                                 typeof(INSiteLotSerial.qtyAvail),
                                                                 typeof(INLotSerialStatus.expireDate),
                                                                 typeof(TSNewQCOrderSpecializedTest.qCOrderNbr),
                                                                 typeof(TSNewQCOrderSpecializedTest.result));

            _Attributes.Add(attr);
            _SelAttrIndex = _Attributes.Count - 1;
        }

        public TSLotSerialNbrAttribute(Type InventoryType, Type SubItemType, Type LocationType, Type ParentLotSerialNbrType)
            : this(InventoryType, SubItemType, LocationType)
        {
            _Attributes[_DefAttrIndex] = new PXDefaultAttribute(ParentLotSerialNbrType) { PersistingCheck = PXPersistingCheck.NullOrBlank };
        }

        public override void GetSubscriber<ISubscriber>(List<ISubscriber> subscribers)
        {
            if (typeof(ISubscriber) == typeof(IPXFieldVerifyingSubscriber) || typeof(ISubscriber) == typeof(IPXFieldDefaultingSubscriber) || typeof(ISubscriber) == typeof(IPXRowPersistingSubscriber))
            {
                subscribers.Add(this as ISubscriber);
            }
            else if (typeof(ISubscriber) == typeof(IPXFieldSelectingSubscriber))
            {
                base.GetSubscriber<ISubscriber>(subscribers);

                subscribers.Remove(this as ISubscriber);
                subscribers.Add(this as ISubscriber);
                subscribers.Reverse();
            }
            else
            {
                base.GetSubscriber<ISubscriber>(subscribers);
            }
        }

        public class TSAllocationLotSerialNbrAttribute : TSLotSerialNbrAttribute
        {
            public TSAllocationLotSerialNbrAttribute(Type InventoryType, Type SubItemType, Type SiteType, Type LocationType)
            {
                var itemType = BqlCommand.GetItemType(InventoryType);
                if (!typeof(ILSMaster).IsAssignableFrom(itemType))
                {
                    throw new PXArgumentException(nameof(itemType), PX.Objects.IN.Messages.TypeMustImplementInterface, itemType.GetLongName(), typeof(ILSMaster).GetLongName());
                }

                _InventoryType = InventoryType;
                _SubItemType = SubItemType;
                _LocationType = LocationType;

                Type SearchType;
                PXSelectorAttribute attr;

                SearchType = BqlTemplate.OfCommand < Search2 < INLotSerialStatus.lotSerialNbr,
                LeftJoin<TSNewQCOrderSpecializedTest,
               On<TSNewQCOrderSpecializedTest.inventoryID, Equal<INLotSerialStatus.inventoryID>,
               And<TSNewQCOrderSpecializedTest.locationID, Equal<INLotSerialStatus.locationID>,
                   And<TSNewQCOrderSpecializedTest.lotNo, Equal<INLotSerialStatus.lotSerialNbr>>>>>,
                Where<INLotSerialStatus.inventoryID, Equal<Current<TSProdMTranSplit.inventoryID>>,
               And<INLotSerialStatus.siteID, Equal<Current<TSProdMTranSplit.siteID>>,
                 And<INLotSerialStatus.locationID, Equal<Current<TSProdMTranSplit.locationID>>>>>>>
                .Replace<BqlPlaceholder.A>(InventoryType)
                .Replace<BqlPlaceholder.B>(SubItemType)
                .Replace<BqlPlaceholder.C>(LocationType).ToType();


                attr = new PXSelectorAttribute(SearchType,
                                                                     typeof(INLotSerialStatus.lotSerialNbr),
                                                                     typeof(INLotSerialStatus.siteID),
                                                                     typeof(INLotSerialStatus.qtyOnHand),
                                                                     typeof(INSiteLotSerial.qtyAvail),
                                                                     typeof(INLotSerialStatus.expireDate),
                                                                     typeof(TSNewQCOrderSpecializedTest.qCOrderNbr),
                                                                     typeof(TSNewQCOrderSpecializedTest.result));

                _Attributes.Add(attr);
                _SelAttrIndex = _Attributes.Count - 1;
            }

            public TSAllocationLotSerialNbrAttribute(Type InventoryType, Type SubItemType, Type SiteType, Type LocationType, Type ParentLotSerialNbrType)
                : this(InventoryType, SubItemType, SiteType, LocationType)
            {
                _Attributes[_DefAttrIndex] = new PXDefaultAttribute(ParentLotSerialNbrType) { PersistingCheck = PXPersistingCheck.NullOrBlank };
            }
        }

}

       
    
   

 


7 replies

Userlevel 4
Badge +1

Hi @girik06 ,

 

You can add the below CacheAttached code for that particular field to display the required display name in the custom graph and verify.

 

Custom Graph.cs file

[PXMergeAttributes(Method = MergeMethod.Append)]
        [PXUIField(DisplayName = "Required DisplayName")]
        protected virtual void DACName_FieldName_CacheAttached(PXCache cache)
        {
        }

 

Hope this helps!!

 

Hi @Naveen B I tried with that cache attached for the field names in custom graph.It didn't worked in selector level columns scenario.

Whatever column I added in lot selector is getting from join with InLotSerialStatus and Custom table..

Any other approach for this

Thanks!

siteID,qtyOnHand,expireDate are INLotSerialStatus Table fields and Status field is displaying like
TSNewQCOrderSpecilizedTest_Result..In this Scenario how to display DAC display names??

Userlevel 4
Badge +1

Hi @girik06 

 

Oh Okay… Have you tried “SetDisplayName”?

If NOT, Please add the below code in that particular RowSelected event and verify.

 

  protected void DACName_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {

         PXUIFieldAttribute.SetDisplayName<DACName.FieldName>(sender, “Displayname”)

        }

       

Hope this helps!!

 

Hi @Naveen B.I tried with above solution.It didn’t worked.Below is the code for LotSerialNbr Selector


In my DAC LotSerialNbr field will be like below:

#region LotSerialNbr
        public abstract class lotSerialNbr : PX.Data.IBqlField
        {
        }
        protected string _LotSerialNbr;
        [TSLotSerialNbr(typeof(TSProdMTranSplit.inventoryID), typeof(TSProdMTranSplit.subItemID),
            typeof(TSProdMTranSplit.locationID), typeof(TSProdMTranSplit.lotSerialNbr),
            FieldClass = "LotSerial")]
        [PXUIField(DisplayName = "LotSerial")]
        public virtual string LotSerialNbr
        {
            get
            {
                return this._LotSerialNbr;
            }
            set
            {
                this._LotSerialNbr = value;
            }
        }
        #endregion
        

        And TSLotSerialNbrAttribute Class is like below:

public TSLotSerialNbrAttribute(Type InventoryType, Type SubItemType, Type LocationType, Type ParentLotSerialNbrType)
        {
            var itemType = BqlCommand.GetItemType(InventoryType);
            if (!typeof(ILSMaster).IsAssignableFrom(itemType))
            {
                throw new PXArgumentException(PX.Objects.IN.Messages.TypeMustImplementInterface,
                    itemType.GetLongName(), typeof(ILSMaster).GetLongName());
            }
            _InventoryType = InventoryType;
            _SubItemType = SubItemType;
            _LocationType = LocationType;

            Type SearchType;
            PXSelectorAttribute attr;

            SearchType = BqlTemplate.OfCommand<Search2<INLotSerialStatus.lotSerialNbr,
                LeftJoin<TSNewQCOrderSpecializedTest,
               On<TSNewQCOrderSpecializedTest.inventoryID, Equal<INLotSerialStatus.inventoryID>,
               And<TSNewQCOrderSpecializedTest.locationID, Equal<INLotSerialStatus.locationID>,
                   And<TSNewQCOrderSpecializedTest.lotNo, Equal<INLotSerialStatus.lotSerialNbr>>>>>,
                Where<INLotSerialStatus.inventoryID, Equal<Current<TSProdMTranSplit.inventoryID>>,
               And<INLotSerialStatus.siteID, Equal<Current<TSProdMTranSplit.siteID>>,
                 And<INLotSerialStatus.locationID, Equal<Current<TSProdMTranSplit.locationID>>>>>>>
                .Replace<BqlPlaceholder.A>(InventoryType)
                .Replace<BqlPlaceholder.B>(SubItemType)
                .Replace<BqlPlaceholder.C>(LocationType).ToType();

            attr = new PXSelectorAttribute(SearchType,
                                                                 typeof(INLotSerialStatus.lotSerialNbr),
                                                                 typeof(INLotSerialStatus.siteID),
                                                                 typeof(INLotSerialStatus.qtyOnHand),
                                                                 typeof(INSiteLotSerial.qtyAvail),
                                                                 typeof(INLotSerialStatus.expireDate),
                                                                 typeof(TSNewQCOrderSpecializedTest.qCOrderNbr),
                                    
                                                                 typeof(TSNewQCOrderSpecializedTest.result));
           
            _Attributes.Add(attr);
            _SelAttrIndex = _Attributes.Count - 1;
        }

Userlevel 4
Badge +1

Hi @girik06 


Can you please also share the below DAC files, so that I can verify from my end?
 

  1. TSProdMTranSplit DAC
  2. TSNewQCOrderSpecializedTest DAC

Hi @Naveen B Thanks for that.Sending required fields with 2 DACS to sort out the issue.

1.TSProdMtranSplit DAC

using System;
using PX.Common;
using PX.Data;
using PX.Data.BQL;
using PX.Data.ReferentialIntegrity.Attributes;
using PX.Objects.CS;
using PX.Objects.GL;
using PX.Objects.IN;
using PX.Objects.PM;
using Test;

[System.SerializableAttribute()]
public class TSProdMTranSplit : PX.Data.IBqlTable
{
#region InventoryID
public abstract class inventoryID : PX.Data.IBqlField
{
}
protected int? _InventoryID;
[Inventory(Enabled = false, Visible = false)]
public virtual int? InventoryID
{
get
{
return this._InventoryID;
}
set
{
this._InventoryID = value;
}
}
#endregion
#region SubItemID
public abstract class subItemID : PX.Data.IBqlField
{
}
protected int? _SubItemID;
[SubItem(typeof(TSProdMTranSplit.inventoryID), typeof(LeftJoin<INSiteStatus, On<INSiteStatus.subItemID, Equal<INSubItem.subItemID>, And<INSiteStatus.inventoryID, Equal<Optional<TSProdMTranSplit.inventoryID>>, And<INSiteStatus.siteID, Equal<Optional<TSProdMTranSplit.siteID>>>>>>))]
[PXDefault(typeof(Search<InventoryItem.defaultSubItemID, Where<InventoryItem.inventoryID, Equal<Current<TSProdMTranSplit.inventoryID>>, And<InventoryItem.defaultSubItemOnEntry, Equal<boolTrue>>>>))]
[PXFormula(typeof(Default<TSProdMTranSplit.inventoryID>))]

[PXUIField(DisplayName = "SubItemID")]
public virtual int? SubItemID
{
get
{
return this._SubItemID;
}
set
{
this._SubItemID = value;
}
}
#endregion

#region LocationID
public abstract class locationID : PX.Data.IBqlField
{
}
protected int? _LocationID;
[PX.Objects.IN.LocationAvail(typeof(TSProdMTranSplit.inventoryID), typeof(TSProdMTranSplit.subItemID), typeof(TSProdMTranSplit.siteID), false, true, false, DisplayName = "Location ID")]
public virtual int? LocationID
{
get
{
return this._LocationID;
}
set
{
this._LocationID = value;
}
}
#endregion
#region LotSerialNbr
public abstract class lotSerialNbr : PX.Data.IBqlField
{
}
protected string _LotSerialNbr;
[TSLotSerialNbr(typeof(TSProdMTranSplit.inventoryID), typeof(TSProdMTranSplit.subItemID),
typeof(TSProdMTranSplit.locationID))]
[PXUIField(DisplayName = "LotSerial")]
public virtual string LotSerialNbr
{
get
{
return this._LotSerialNbr;
}
set
{
this._LotSerialNbr = value;
}
}
#endregion
#region CreatedByID
public abstract class createdByID : PX.Data.IBqlField
{
}
protected Guid? _CreatedByID;
[PXDBCreatedByID]
public virtual Guid? CreatedByID
{
get
{
return this._CreatedByID;
}
set
{
this._CreatedByID = value;
}
}
#endregion
#region CreatedByScreenID
public abstract class createdByScreenID : PX.Data.IBqlField
{
}
protected string _CreatedByScreenID;
[PXDBCreatedByScreenID]
public virtual string CreatedByScreenID
{
get
{
return this._CreatedByScreenID;
}
set
{
this._CreatedByScreenID = value;
}
}
#endregion
#region CreatedDateTime
public abstract class createdDateTime : PX.Data.IBqlField
{
}
protected DateTime? _CreatedDateTime;
[PXDBCreatedDateTime]
public virtual DateTime? CreatedDateTime
{
get
{
return this._CreatedDateTime;
}
set
{
this._CreatedDateTime = value;
}
}
#endregion
#region LastModifiedByID
public abstract class lastModifiedByID : PX.Data.IBqlField
{
}
protected Guid? _LastModifiedByID;
[PXDBLastModifiedByID]
public virtual Guid? LastModifiedByID
{
get
{
return this._LastModifiedByID;
}
set
{
this._LastModifiedByID = value;
}
}
#endregion
#region LastModifiedByScreenID
public abstract class lastModifiedByScreenID : PX.Data.IBqlField
{
}
protected string _LastModifiedByScreenID;
[PXDBLastModifiedByScreenID]
public virtual string LastModifiedByScreenID
{
get
{
return this._LastModifiedByScreenID;
}
set
{
this._LastModifiedByScreenID = value;
}
}
#endregion
#region LastModifiedDateTime
public abstract class lastModifiedDateTime : PX.Data.IBqlField
{
}
protected DateTime? _LastModifiedDateTime;
[PXDBLastModifiedDateTime]
public virtual DateTime? LastModifiedDateTime
{
get
{
return this._LastModifiedDateTime;
}
set
{
this._LastModifiedDateTime = value;
}
}
#endregion
#region tstamp
public abstract class Tstamp : PX.Data.IBqlField
{
}
protected byte[] _tstamp;
[PXDBTimestamp()]
public virtual byte[] tstamp
{
get
{
return this._tstamp;
}
set
{
this._tstamp = value;
}
}
#endregion

}
public class TSLotSerialNbrAttribute : INLotSerialNbrAttribute
{
public TSLotSerialNbrAttribute(Type InventoryType, Type SubItemType, Type LocationType, Type[] colsType)
{
}

public TSLotSerialNbrAttribute(Type InventoryType, Type SubItemType, Type LocationType) : base(InventoryType, SubItemType, LocationType)
{
}
public TSLotSerialNbrAttribute(Type InventoryType, Type SubItemType, Type LocationType, Type ParentLotSerialNbrType)
{
var itemType = BqlCommand.GetItemType(InventoryType);
if (!typeof(ILSMaster).IsAssignableFrom(itemType))
{
throw new PXArgumentException(PX.Objects.IN.Messages.TypeMustImplementInterface,
itemType.GetLongName(), typeof(ILSMaster).GetLongName());
}
_InventoryType = InventoryType;
_SubItemType = SubItemType;
_LocationType = LocationType;


PXSelectorAttribute attr;

Type SearchType = BqlTemplate.OfCommand<Search2<INLotSerialStatus.lotSerialNbr,
LeftJoin<TSNewQCOrderSpecializedTest,
On<TSNewQCOrderSpecializedTest.inventoryID, Equal<INLotSerialStatus.inventoryID>,
And<TSNewQCOrderSpecializedTest.locationID, Equal<INLotSerialStatus.locationID>,
And<TSNewQCOrderSpecializedTest.lotNo, Equal<INLotSerialStatus.lotSerialNbr>>>>>,
Where<INLotSerialStatus.inventoryID, Equal<Current<TSProdMTranSplit.inventoryID>>,
And<INLotSerialStatus.locationID, Equal<Current<TSProdMTranSplit.locationID>>>>>>
.Replace<BqlPlaceholder.A>(InventoryType)
.Replace<BqlPlaceholder.B>(SubItemType)
.Replace<BqlPlaceholder.C>(LocationType).ToType();

attr = new PXSelectorAttribute(SearchType, new Type[] {
typeof(INLotSerialStatus.lotSerialNbr), typeof(INLotSerialStatus.siteID),
typeof(INLotSerialStatus.qtyOnHand),
typeof(INSiteLotSerial.qtyAvail),
typeof(INLotSerialStatus.expireDate),

typeof(TSNewQCOrderSpecializedTest.result)});

_Attributes.Add(attr);
_SelAttrIndex = _Attributes.Count - 1;
}

}

}

2.TSNewQcOrderSpecializwedTest DAC


using System;
using PX.Data;
using PX.Objects.CS;
using PX.Objects.IN;

namespace Test
{

[System.SerializableAttribute()]
[PXEMailSource]
public class TSNewQCOrderSpecializedTest : PX.Data.IBqlTable
{


#region LocationID
public abstract class locationID : PX.Data.BQL.BqlInt.Field<locationID> { }
protected Int32? _LocationID;
[PX.Objects.IN.LocationAvail(typeof(INSite.siteID), typeof(INSite.siteID), typeof(TSNewQCOrderSpecializedTest.siteID), false, false, true, DisplayName = "Location")]
public virtual Int32? LocationID
{
get
{
return this._LocationID;
}
set
{
this._LocationID = value;
}
}
#endregion

#region InventoryID
public abstract class inventoryID : PX.Data.BQL.BqlInt.Field<inventoryID>
{
}
protected int? _InventoryID;
[Inventory(Filterable =true)]
[PXDefault]
[PXUIField(DisplayName = "Inventory ID")]
public virtual int? InventoryID
{
get
{
return this._InventoryID;
}
set
{
this._InventoryID = value;
}
}
#endregion

#region Description
public abstract class description : PX.Data.BQL.BqlString.Field<description>
{
}
protected string _Description;
[PXFormula(typeof(Selector<inventoryID, InventoryItem.descr>))]
[PXString(255, IsUnicode = true)]
[PXUIField(DisplayName = "Description", IsReadOnly = true)]
public virtual string Description
{
get
{
return this._Description;
}
set
{
this._Description = value;
}
}
#endregion


#region LotNo
public abstract class lotNo : PX.Data.BQL.BqlString.Field<lotNo>
{
}
protected string _LotNo;
[PXDefault]
[PXDBString(30, IsUnicode = true)]
[PXSelector(
typeof(Search<INLotSerialStatus.lotSerialNbr, Where<INLotSerialStatus.inventoryID,
Equal<Current<TSNewQCOrderSpecializedTest.inventoryID>>, And<INLotSerialStatus.siteID, Equal<Current<TSNewQCOrderSpecializedTest.siteID>>, And<INLotSerialStatus.locationID, Equal<Current<TSNewQCOrderSpecializedTest.locationID>>>>>>),
typeof(INLotSerialStatus.lotSerialNbr),
SubstituteKey = typeof(INLotSerialStatus.lotSerialNbr))]

[PXUIField(DisplayName = "Lot Nbr")]
public virtual string LotNo
{
get
{
return this._LotNo;
}
set
{
this._LotNo = value;
}
}
#endregion


#region Result
public abstract class result : PX.Data.BQL.BqlString.Field<result>
{
}
protected string _Result;
//[PXDefault]
[PXDBString(1, IsFixed = true)]
[PXStringList(new string[]
{ "P","F"},
new string[]
{ "Pass", "Fail"})]
[PXUIField(DisplayName = "Result")]
public virtual string Result
{
get
{
return this._Result;
}
set
{
this._Result = value;
}
}
#endregion


#region CreatedDateTime
public abstract class createdDateTime : PX.Data.BQL.BqlDateTime.Field<createdDateTime>
{
}
protected DateTime? _CreatedDateTime;
[PXDBCreatedDateTimeUtc()]
public virtual DateTime? CreatedDateTime
{
get
{
return this._CreatedDateTime;
}
set
{
this._CreatedDateTime = value;
}
}
#endregion
#region CreatedByScreenID
public abstract class createdByScreenID : PX.Data.BQL.BqlString.Field<createdByScreenID>
{
}
protected string _CreatedByScreenID;
[PXDBCreatedByScreenID()]
public virtual string CreatedByScreenID
{
get
{
return this._CreatedByScreenID;
}
set
{
this._CreatedByScreenID = value;
}
}
#endregion
#region CreatedByID
public abstract class createdByID : PX.Data.BQL.BqlGuid.Field<createdByID>
{
}
protected Guid? _CreatedByID;
[PXDBCreatedByID()]
public virtual Guid? CreatedByID
{
get
{
return this._CreatedByID;
}
set
{
this._CreatedByID = value;
}
}
#endregion
#region LastModifiedDateTime
public abstract class lastModifiedDateTime : PX.Data.BQL.BqlDateTime.Field<lastModifiedDateTime>
{
}
protected DateTime? _LastModifiedDateTime;
[PXDBLastModifiedDateTimeUtc()]
public virtual DateTime? LastModifiedDateTime
{
get
{
return this._LastModifiedDateTime;
}
set
{
this._LastModifiedDateTime = value;
}
}
#endregion
#region LastModifiedByScreenID
public abstract class lastModifiedByScreenID : PX.Data.BQL.BqlString.Field<lastModifiedByScreenID>
{
}
protected string _LastModifiedByScreenID;
[PXDBLastModifiedByScreenID()]
public virtual string LastModifiedByScreenID
{
get
{
return this._LastModifiedByScreenID;
}
set
{
this._LastModifiedByScreenID = value;
}
}
#endregion
#region LastModifiedByID
public abstract class lastModifiedByID : PX.Data.BQL.BqlGuid.Field<lastModifiedByID>
{
}
protected Guid? _LastModifiedByID;
[PXDBLastModifiedByID()]
public virtual Guid? LastModifiedByID
{
get
{
return this._LastModifiedByID;
}
set
{
this._LastModifiedByID = value;
}
}
#endregion
#region NoteID
public abstract class noteID : PX.Data.BQL.BqlGuid.Field<noteID>
{
}
protected Guid? _NoteID;
[PXNote()]
public virtual Guid? NoteID
{
get
{
return this._NoteID;
}
set
{
this._NoteID = value;
}
}
#endregion
#region tstamp
public abstract class Tstamp : PX.Data.BQL.BqlByteArray.Field<Tstamp>
{
}
protected byte[] _tstamp;
[PXDBTimestamp()]
public virtual byte[] tstamp
{
get
{
return this._tstamp;
}
set
{
this._tstamp = value;
}
}
#endregion
}
}

 

Reply


About Acumatica ERP system
Acumatica Cloud ERP provides the best business management solution for transforming your company to thrive in the new digital economy. Built on a future-proof platform with open architecture for rapid integrations, scalability, and ease of use, Acumatica delivers unparalleled value to small and midmarket organizations. Connected Business. Delivered.
© 2008 — 2020  Acumatica, Inc. All rights reserved