代码之家  ›  专栏  ›  技术社区  ›  Jerry Welliver

向自定义对象添加注释

  •  0
  • Jerry Welliver  · 技术社区  · 6 年前

    我已经尝试了在网上和现有代码中可以找到的所有东西,但无法将注释添加到notes表并附加到自定义表行。我正忙着把这张纸条贴上。任何帮助都将不胜感激。

    以下是注释id def:

        #region NoteID
        public abstract class noteID : PX.Data.IBqlField { }
        protected Guid? _NoteID;
        [PXNote()]
        public virtual Guid? NoteID { get; set; }
        #endregion
    

            //Retrieve EDI Document remittance
            foreach (LingoSearchResults ediRemit in docRemits)
            {
                resRemit = lingo.RetrieveRemit(ediRemit.documentId, docType);
                partnerCustomerMap pcmap = lstPartnerCustomer.Find(delegate (partnerCustomerMap pcm)
                    { return pcm.partner == resRemit.DataRemit.partner; });
                int newRemittanceId = 0;
                var remittance = new EDRemittance();
                //Set all field values 
                remittance.Status = "A";
                remittance.Type = resRemit.DataRemit.type;
                remittance.DocumentId = resRemit.DataRemit.documentId;
                remittance.RecordId = resRemit.DataRemit.recordId;
                remittance.TagId = resRemit.DataRemit.tagId;
                remittance.Account = resRemit.DataRemit.account;
                remittance.PartnerId = resRemit.DataRemit.partner;
                remittance.DocumentNumber = resRemit.DataRemit.documentNumber;
                remittance.SenderType = resRemit.DataRemit.senderType;
                remittance.PaymentNumber = resRemit.DataRemit.paymentNumber;
                remittance.PaymentFormat = resRemit.DataRemit.paymentFormat;
                remittance.PaymentReason = resRemit.DataRemit.paymentReason;
    
                strDate = resRemit.DataRemit.remitDate.ToString();
                if (DateTime.TryParseExact(strDate, "yyyyMMdd",
                    System.Globalization.CultureInfo.InvariantCulture,
                    System.Globalization.DateTimeStyles.None, out tempDate))
                    remittance.RemitDate = tempDate;
                else
                    remittance.RemitDate = DateTime.Today;
    
                remittance.CurrencyEntity = resRemit.DataRemit.currencyEntity;
                remittance.DepartmentNumber = resRemit.DataRemit.departmentNumber;
    
                if (DateTime.TryParse(strDate, out tempDate))
                    remittance.ReceiveDate = tempDate;
                else
                    remittance.ReceiveDate = DateTime.Today;
    
                remittance.HandlingCode = resRemit.DataRemit.handlingCode;
                remittance.RemitTotal = resRemit.DataRemit.remitTotal;
                remittance.DetailLineCount = resRemit.DataRemit.detailLineCount;
                remittance.BatchNumber = resRemit.DataRemit.batchNumber;
                remittance.ReceiverType = resRemit.DataRemit.receiverType;
                remittance.BatchStatus = resRemit.DataRemit.batchStatus;
                remittance.PaymentMethod = resRemit.DataRemit.paymentMethod;
                remittance.CurrencyCode = resRemit.DataRemit.currencyCode;
                remittance.PaymentStatus = resRemit.DataRemit.paymentStatus;
                remittance.Vendor = resRemit.DataRemit.vendor;
                remittance.RemitNumber = resRemit.DataRemit.remitNumber;
    
                //Insert new row, save, and retrieve new Id value
                remitGraph.Remittance.Insert(remittance);
                remitGraph.Persist();
                newRemittanceId = (int)remitGraph.Remittance.Current.RemittanceNbr;
    
                //Add notes for remittance
                noteText = "Remit level note";
                foreach (EdiNote note in resRemit.DataRemit.notes)
                {
                    noteText += note.type + ": " + note.note + '\n';
                }
    
                if (noteText != "")
                {
                    PXNoteAttribute.GetNoteID<EDRemittance.noteID>(remitGraph.Remittance.Cache, remittance);
                    PXNoteAttribute.SetNote(remitGraph.Remittance.Cache, remittance, noteText);
                    //remitGraph.Persist();
                }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Patrick Chen    6 年前

    我将尝试以下更改

    remittance = remitGraph.Remittance.Insert(remittance);
    //this saves the object to the cache and gets things like Noteid generated. On the 
    //return trip this data is available
    //remitGraph.Persist();
    
    //PXNoteAttribute.GetNoteID<EDRemittance.noteID>(remitGraph.Remittance.Cache, remittance);
    PXNoteAttribute.SetNote(remitGraph.Remittance.Cache, remittance, noteText);
    remittance = remitGraph.Remittance.Update(remittance)
    
    //at the end do an Actions.PressSave();