Finan::UpdateDetail (Interface: Finan)
 
Updates an accounting detail in the document.
 
void UpdateDetail (
    SHORT sIndex,
    DOUBLE dAmountDocC,
    DOUBLE dQuantity,
    DOUBLE dValue1,
    BSTR bsAccount,
    BSTR bsRemark,
    BSTR bsText1,
    DOUBLE dAmountDetC,
    BSTR bsDetC,
    LONG lTickSysNum
)
 
Parameters
sIndex
[in] The index of the detail, starting from 0.
dAmountDocC
[in] The amount (in document currency) of the detail.
dQuantity
[in] The quantity of the detail.
dValue1
[in] The free value of the detail.
bsAccount
[in] The account number of the detail.
bsRemark
[in] The remark of the detail.
bsText1
[in] The free text of the detail.
dAmountDetC
[in] The amount (in detail currency) of the detail.
bsDetC
[in] The currency of the detail.
lTickSysNum
[in] The system number of the detail that is ticked by this line, 0 if nothing is ticked.
 
Remarks
If the parameter sIndex is an invalid index (refers to a not existing detail) an exception is thrown. You can use GetDetail to check whether an index is valid, in which case it returns true.
If an analytical entry proposal exists for the provided account (parameter bsAccount), the detail is automatically distributed according to this proposal.
 
See Also
CreateFinan
Handling accounting documents using the SDK
UpdateDetail2
UpdateDetailSel
UpdateDetailSel2
PrepareDocument
GetManualIndex
GetDetail
WriteDocument
CancelDocument
 
Samples
 
C++
 
// Update the remark of the first manual detail of the current document to 'Updated via SDK'
short sManualIndex;
bool bWrite = false;

pFinan->PrepareDocument (paUpdate);

sManualIndex = pFinan->GetManualIndex ();

if (sManualIndex != -1)
{
    VARIANT vAmountDocC, vQuantity, vValue1, vAccount, vRemark, vText1, vAmountDetC, vDetC, vTickSysNum;
    if (pFinan->GetDetail (sManualIndex, &vAmountDocC, &vQuantity, &vValue1, &vAccount, &vRemark, &vText1, &vAmountDetC, &vDetC, &vTickSysNum))
    {
        pFinan->UpdateDetail (sManualIndex, vAmountDocC.dblVal, vQuantity.dblVal, vValue1.dblVal, vAccount.bstrVal, "Updated via SDK", vText1.bstrVal, vAmountDetC.dblVal, vDetC.bstrVal, vTickSysNum.lVal);
        bWrite = true;
    }
}

if (bWrite)
    pFinan->WriteDocument (rmFullReport);
else
    pFinan->CancelDocument ();

C#
 
// Update the remark of the first manual detail of the current document to 'Updated via SDK'
short sManualIndex;
bool bWrite = false;

oFinan.PrepareDocument (ePrepareAction.paUpdate);

sManualIndex = oFinan.GetManualIndex ();

if (sManualIndex != -1)
{
    object oAmountDocC, oQuantity, oValue1, oAccount, oRemark, oText1, oAmountDetC, oDetC, oTickSysNum;

    if (oFinan.GetDetail (sManualIndex, out oAmountDocC, out oQuantity, out oValue1, out oAccount, out oRemark, out oText1, out oAmountDetC, out oDetC, out oTickSysNum))
    {
        oFinan.UpdateDetail (sManualIndex, (double)oAmountDocC, (double)oQuantity, (double)oValue1, oAccount.ToString (), "Updated via SDK", oText1.ToString (), (double)oAmountDetC, oDetC.ToString (), (int)oTickSysNum);
        bWrite = true;
    }
}

if (bWrite)
    oFinan.WriteDocument (eReportMode.rmFullReport);
else
    oFinan.CancelDocument ();

VBS
 
' Update the remark of the first manual detail of the current document to 'Updated via SDK'
Dim sManualIndex
Dim bWrite

bWrite = False

Call oFinan.PrepareDocument(paUpdate)

sManualIndex = oFinan.GetManualIndex()

If sManualIndex <> -1 Then
    Dim oAmountDocC, oQuantity, oValue1, oAccount, oRemark, oText1, oAmountDetC, oDetC, oTickSysNum

    If oFinan.GetDetail(sManualIndex, oAmountDocC, oQuantity, oValue1, oAccount, oRemark, oText1, oAmountDetC, oDetC, oTickSysNum) Then
        Call oFinan.UpdateDetail(sManualIndex, oAmountDocC, oQuantity, oValue1, oAccount, "Updated via SDK", oText1, oAmountDetC, oDetC, oTickSysNum)
        bWrite = True
    End If
End If

If bWrite Then
    Call oFinan.WriteDocument(rmFullReport)
Else
    Call oFinan.CancelDocument()
End If

VB.NET
 
' Update the remark of the first manual detail of the current document to 'Updated via SDK'
Dim sManualIndex As Short
Dim bWrite As Boolean

oFinan.PrepareDocument(ePrepareAction.paUpdate)

sManualIndex = oFinan.GetManualIndex()
bWrite = False

If sManualIndex <> -1 Then
    Dim oAmountDocC, oQuantity, oValue1, oAccount, oRemark, oText1, oAmountDetC, oDetC, oTickSysNum As Object

    If oFinan.GetDetail(sManualIndex, oAmountDocC, oQuantity, oValue1, oAccount, oRemark, oText1, oAmountDetC, oDetC, oTickSysNum) Then
        oFinan.UpdateDetail(sManualIndex, oAmountDocC, oQuantity, oValue1, oAccount, "Updated via SDK", oText1, oAmountDetC, oDetC, oTickSysNum)
        bWrite = True
    End If
End If

If bWrite Then
    oFinan.WriteDocument(eReportMode.rmFullReport)
Else
    oFinan.CancelDocument()
End If