Venice
Project::GetDetail
 
Gets a project detail.
 
SHORT GetDetail (
    SHORT sIndex,
    VARIANT* pvValue1,
    VARIANT* pvFrmNum,
    VARIANT* pvFrmSubNum,
    VARIANT* pvCtcNum,
    VARIANT* pvUsedTime,
    VARIANT* pvDocNum,
    VARIANT* pvActionDateTime,
    VARIANT* pvDocAccYear,
    VARIANT* pvDocBook,
    VARIANT* pvLanguage,
    VARIANT* pvComment,
    VARIANT* pvText1,
    VARIANT* pvFrmType,
    VARIANT* pvChannel,
    VARIANT* pvDocType,
    VARIANT* pvDocVariant,
    VARIANT* pvToInvoice
)
 
Parameters
sIndex
[in] The index of the project detail.

Remarks
This number is a 0-based index, i.e. it starts from 0.
Each project detail has a sequence number that is shown in the dialog of your Venice installation. This number can be used to reference a project detail but does not have to be equal to the index that has to be used here. When deleting project details sequence numbers are not renumbered and therefore gaps can occur. The SDK internally uses indexes where no gaps are allowed. The method IndexFromSeqNum returns the index to be used for a given sequence number.
pvValue1
[out] Returns a VARIANT, subtype DOUBLE, containing the free numerical value of the project detail.
pvFrmNum
[out] Returns a VARIANT, subtype DWORD (unsigned long), containing the firm number of the project detail.
pvFrmSubNum
[out] Returns a VARIANT, subtype DWORD (unsigned long), containing the firm subnumber of the project detail.
pvCtcNum
[out] Returns a VARIANT, subtype DWORD (unsigned long), containing the contact number of the project detail.
pvUsedTime
[out] Returns a VARIANT, subtype DWORD (unsigned long), containing the used time (expressed in seconds) of the project detail.
pvDocNum
[out] Returns a VARIANT, subtype DWORD (unsigned long), containing the document number of the document referenced in the project detail.
pvActionDateTime
[out] Returns a VARIANT, subtype DATE, containing the action date and time of the project detail.
pvDocAccYear
[out] Returns a VARIANT, subtype WORD (unsigned short), containing the accounting year of the document referenced in the project detail.
pvDocBook
[out] Returns a VARIANT, subtype BSTR, containing the document book of the document referenced in the project detail.
pvLanguage
[out] Returns a VARIANT, subtype BSTR, containing the language of the project detail.
pvComment
[out] Returns a VARIANT, subtype BSTR, containing the contents of the project detail.
pvText1
[out] Returns a VARIANT, subtype BSTR, containing the free text value of the project detail.
pvFrmType
[out] Returns a VARIANT, subtype BYTE (unsigned char), containing the type of firm (see eFirmType for possible values) of the project detail.
pvChannel
[out] Returns a VARIANT, subtype BYTE (unsigned char), containing the channel (see eChannel for possible values) of the project detail.
pvDocType
[out] Returns a VARIANT, subtype BYTE (unsigned char), containing the document type (see eInvDocType for possible values) of the document referenced in the project detail.
pvDocVariant
[out] Returns a VARIANT, subtype BYTE (unsigned char), containing the document print variant of the document referenced in the project detail.

Remarks
The following values are available, providing the corresponding variant exists for the given document:
0 Refers to an invalid, not existing variant (can be used as initialisation).
32-41 Refers to the user variants '0' to '9' on dossier level.
48-57 Refers to the user variants '0' to '9' on main level.
65-90 Refers to the Exact Venice variants 'A' to 'Z'.
pvToInvoice
[out] Returns a VARIANT, subtype BOOLEAN, containing the indication whether this project detail has to be invoiced or not.
 
Return value
A SHORT containing the sequence number of the project detail, starting from 1.
 
See Also
CreateProject
Handling projects using the SDK
PrepareProject
CancelProject
GetNumDetails
 
Samples
 
C++
 
// Retrieve all project details data of the current project
VARIANT vValue1, vFrmNum, vFrmSubNum, vCtcNum, vUsedTime, vDocNum, vActionDateTime, vDocAccYear, vDocBook, vLanguage, vComment, vText1, vFrmType, vChannel, vDocType, vDocVariant, vToInvoice;
short sNumDetails;

pProject->PrepareProject (paView);

sNumDetails = pProject->GetNumDetails ();

for (short sDetail = 0; sDetail < sNumDetails; ++sDetail)
{
    if (pProject->GetDetail (sDetail, &vValue1, &vFrmNum, &vFrmSubNum, &vCtcNum, &vUsedTime, &vDocNum, &vActionDateTime, &vDocAccYear, &vDocBook, &vLanguage, &vComment, &vText1, &vFrmType, &vChannel, &vDocType, &vDocVariant, &vToInvoice) != -1)
    {
        // Process data
    }
}

pProject->CancelProject ();

C#
 
// Retrieve all project details data of the current project
object oValue1, oFrmNum, oFrmSubNum, oCtcNum, oUsedTime, oDocNum, oActionDateTime, oDocAccYear, oDocBook, oLanguage, oComment, oText1, oFrmType, oChannel, oDocType, oDocVariant, oToInvoice;
short sNumDetails;

oProject.PrepareProject (ePrepareAction.paView);

sNumDetails = oProject.GetNumDetails ();

for (short sDetail = 0; sDetail < sNumDetails; ++sDetail)
{
    if (oProject.GetDetail (sDetail, out oValue1, out oFrmNum, out oFrmSubNum, out oCtcNum, out oUsedTime, out oDocNum, out oActionDateTime, out oDocAccYear, out oDocBook, out oLanguage, out oComment, out oText1, out oFrmType, out oChannel, out oDocType, out oDocVariant, out oToInvoice) != -1)
    {
        // Process data
    }
}

oProject.CancelProject ();

VBS
 
' Retrieve all project details data of the current project
Dim oValue1, oFrmNum, oFrmSubNum, oCtcNum, oUsedTime, oDocNum, oActionDateTime, oDocAccYear, oDocBook, oLanguage, oComment, oText1, oFrmType, oChannel, oDocType, oDocVariant, oToInvoice
Dim sDetail, sNumDetails

Call oProject.PrepareProject(paView)

sNumDetails = oProject.GetNumDetails()

For sDetail = 0 To sNumDetails - 1
    If oProject.GetDetail(sDetail, oValue1, oFrmNum, oFrmSubNum, oCtcNum, oUsedTime, oDocNum, oActionDateTime, oDocAccYear, oDocBook, oLanguage, oComment, oText1, oFrmType, oChannel, oDocType, oDocVariant, oToInvoice) < > -1 Then
        ' Process data
    End If
Next

Call oProject.CancelProject()

VB.NET
 
' Retrieve all project details data of the current project
Dim oValue1, oFrmNum, oFrmSubNum, oCtcNum, oUsedTime, oDocNum, oActionDateTime, oDocAccYear, oDocBook, oLanguage, oComment, oText1, oFrmType, oChannel, oDocType, oDocVariant, oToInvoice As Object
Dim sNumDetails As Short

oProject.PrepareProject(ePrepareAction.paView)

sNumDetails = oProject.GetNumDetails()

For sDetail As Short = 0 To sNumDetails - 1
    If oProject.GetDetail(sDetail, oValue1, oFrmNum, oFrmSubNum, oCtcNum, oUsedTime, oDocNum, oActionDateTime, oDocAccYear, oDocBook, oLanguage, oComment, oText1, oFrmType, oChannel, oDocType, oDocVariant, oToInvoice) < > -1 Then
        ' Process data
    End If
Next

Call oProject.CancelProject()