使用VB.NET和QBFC库向客户添加自定义字段到QuickBooks Estimate

时间:2013-08-02 18:57:04

标签: vb.net transactions custom-fields quickbooks qbfc

对于我的生活,我似乎无法让这个工作。下面是这样的情况:我正在尝试将已经存在的客户自定义字段(已经有定义,但没有值)添加到我当前通过QBSDK 12创建的估计中。到目前为止,我可以添加估计值,自定义字段到订单项,但不是估算标题区域中属于客户的自定义字段(为客户信息保留)。

以下是我尝试的标题代码(不起作用):

        If Not (DE.sconProof(x) Is Nothing) Or Not (DE.sconProof(x) = "") Then
      Dim DataExtModRq As IDataExtMod
     DataExtModRq = requestMsgSet.AppendDataExtModRq
             ' DataExtModRq.ORListTxn.TxnDataExt.TxnID.SetValue(sEstID)


      DataExtModRq.OwnerID.SetValue("0")
      DataExtModRq.DataExtName.SetValue("Proof Required")
      DataExtModRq.ORListTxn.TxnDataExt.TxnDataExtType.SetValue(ENTxnDataExtType.tdetEstimate)
      DataExtModRq.ORListTxn.ListDataExt.ListObjRef.FullName.SetValue(DE.sconCompany(x))
      DataExtModRq.DataExtValue.SetValue(DE.sconProof(x))
    End If

以下是我在估算中的订单项的工作代码(可行):

          If Not DE.sitemDateNeeded(i) = "" Then
         Dim DataExt53 As IDataExt
         DataExt53 = EstimateLineAdder.EstimateLineAdd.DataExtList.Append()
         'Set field value for OwnerID
         DataExt53.OwnerID.SetValue("0")
         DataExt53.DataExtName.SetValue("In Hands By")
         'Set field value for DataExtValue
         DataExt53.DataExtValue.SetValue(DE.sitemDateNeeded(i))
      End If
      If Not DE.sitemSPC(i) = "" Then
         Dim DataExt54 As IDataExt
         DataExt54 = EstimateLineAdder.EstimateLineAdd.DataExtList.Append
         DataExt54.DataExtName.SetValue("SPC")
         DataExt54.DataExtValue.SetValue(DE.sitemSPC(i))
      End If

错误消息说我错过了TxnID,但我没有修改估算,我正在创建一个新的。我也试过了“IDataExt”,但是效果不好。如果我需要保存新创建的估计,然后返回并添加TxnID,那将非常奇怪,而且我不确定一种简单的方法。我应该能够将数据添加到估计的标题部分中的自定义字段,而无需经历如此多的“喧嚣”。如果你知道答案,请帮助我。

1 个答案:

答案 0 :(得分:0)

我明白了......

    If Not (DE.sconProof(x) Is Nothing) Or Not (DE.sconProof(x) = "") Then
      Dim DataExtModRq As IDataExtMod
     DataExtModRq = requestMsgSet.AppendDataExtModRq

      DataExtModRq.DataExtName.SetValue("Proof Required")
      DataExtModRq.DataExtValue.SetValue(DE.sconProof(x))
      DataExtModRq.OwnerID.SetValue("0")
      'DataExtModRq.ORListTxn.TxnDataExt.TxnDataExtType.SetValue(ENTxnDataExtType.tdetEstimate)
      DataExtModRq.ORListTxn.ListDataExt.ListDataExtType.SetValue(ENListDataExtType.ldetCustomer)
      DataExtModRq.ORListTxn.ListDataExt.ListObjRef.FullName.SetValue(DE.sconCompany(x))
      'DataExtModRq.ORListTxn.TxnDataExt.TxnID.SetValue(sTxnID)


    End If