Project::InsertDetailSel (Interface: Project)
 
Inserts a new project detail (with selectively given values).
 
SHORT InsertDetailSel (
    VARIANT vValue1,
    VARIANT vFrmNum,
    VARIANT vFrmSubNum,
    VARIANT vCtcNum,
    VARIANT vUsedTime,
    VARIANT vDocNum,
    VARIANT vActionDateTime,
    VARIANT vDocAccYear,
    VARIANT vDocBook,
    VARIANT vLanguage,
    VARIANT vComment,
    VARIANT vText1,
    VARIANT vFrmType,
    VARIANT vChannel,
    VARIANT vDocType,
    VARIANT vDocVariant,
    VARIANT vToInvoice
)
 
Parameters
vValue1
[in] A VARIANT stating the free numerical value of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= 0.0)
DOUBLE (VT_R8) Use the given value

vFrmNum
[in] A VARIANT stating the firm number of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= 0)
DWORD (unsigned long) (VT_UI4) Use the given value

vFrmSubNum
[in] A VARIANT stating the firm subnumber of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= 0)
DWORD (unsigned long) (VT_UI4) Use the given value

vCtcNum
[in] A VARIANT stating the contact number of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= 0)
DWORD (unsigned long) (VT_UI4) Use the given value

vUsedTime
[in] A VARIANT stating the used time (expressed in seconds) of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= 60)
DWORD (unsigned long) (VT_UI4) Use the given value

vDocNum
[in] A VARIANT stating the document number of the document referenced in the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= 0)
DWORD (unsigned long) (VT_UI4) Use the given value

vActionDateTime
[in] A VARIANT stating the action date and time of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= blank date and time)
DATE (VT_DATE) Use the given value

vDocAccYear
[in] A VARIANT stating the accounting year of the document referenced in the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= 0)
WORD (unsigned short) (VT_UI2) Use the given value

vDocBook
[in] A VARIANT stating the document book of the document referenced in the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= "")
BSTR (VT_BSTR) Use the given value

vLanguage
[in] A VARIANT stating the language of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= language of the contact if one is given, otherwise the user language)
BSTR (VT_BSTR) Use the given value

vComment
[in] A VARIANT stating the contents of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= "")
BSTR (VT_BSTR) Use the given value

vText1
[in] A VARIANT stating the free text value of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= "")
BSTR (VT_BSTR) Use the given value

vFrmType
[in] A VARIANT stating the type of firm (see eFirmType for possible values) of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= eFirmType.ftNone))
BYTE (unsigned char) (VT_UI1) Use the given value

vChannel
[in] A VARIANT stating the channel (see eChannel for possible values) of the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= determined by the user configuration / initially eChannel.chInternal)
BYTE (unsigned char) (VT_UI1) Use the given value

vDocType
[in] A VARIANT stating the document type (see eInvDocType for possible values) of the document referenced in the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= eInvDocType.idtNone)
BYTE (unsigned char) (VT_UI1) Use the given value

Remarks
The enum values 'idtStc', 'idtTrn' and 'idtCmp' cannot be used, otherwise an exception will be thrown!

vDocVariant
[in] A VARIANT stating the document print variant of the document referenced in the project detail. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= 0)
BYTE (unsigned char) (VT_UI1) Use the given value

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 C-Logic variants 'A' to 'Z'.

vToInvoice
[in] A VARIANT stating whether this project detail has to be invoiced or not. The type of this VARIANT determines the action to be taken by the SDK:
Subtype Action
VT_EMPTY Use the programmatorical default (= true)
BOOLEAN (VT_BOOL) Use the given value
 
Return value
A SHORT containing the sequence number of the inserted project detail.
 
Remarks
How to pass a VARIANT of type VT_EMPTY?
C++
Define a VARIANT and set the type to VT_EMPTY (vEmpty.vt = VT_EMPTY).
Pass this VARIANT.
C#
Pass 'null'.
VBS
Pass 'Empty'.
VB.NET
Pass 'Nothing'.
 
See Also
CreateProject
Handling projects using the SDK
PrepareProject
CancelProject
WriteProject
 
Samples
 
C++
 
// Insert a project detail to the current project. Only the minimum required fields are given and all other data is completed by the SDK.
VARIANT vEmpty;
vEmpty.vt = VT_EMPTY;

pProject->PrepareProject (paUpdate);

pProject->InsertDetailSel (vEmpty, vEmpty, vEmpty, 17, vEmpty, vEmpty, vEmpty, vEmpty, vEmpty, "Nld", "Inserted via the SDK", vEmpty, ftNone, vEmpty, vEmpty, vEmpty, vEmpty);

pProject->WriteProject (rmFullReport);

C#
 
// Insert a project detail to the current project. Only the minimum required fields are given and all other data is completed by the SDK.
oProject.PrepareProject (ePrepareAction.paUpdate);

oProject.InsertDetailSel (null, null, null, 17, null, null, null, null, null, "Nld", "Inserted via the SDK", null, eFirmType.ftNone, null, null, null, null);

oProject.WriteProject (eReportMode.rmFullReport);

VBS
 
' Insert a project detail to the current project. Only the minimum required fields are given and all other data is completed by the SDK.
Call oProject.PrepareProject(paUpdate)

Call oProject.InsertDetailSel(Empty, Empty, Empty, 17, Empty, Empty, Empty, Empty, Empty, "Nld", "Inserted via the SDK", Empty, eFirmType.ftNone, Empty, Empty, Empty, Empty)

Call oProject.WriteProject(rmFullReport)

VB.NET
 
' Insert a project detail to the current project. Only the minimum required fields are given and all other data is completed by the SDK.
oProject.PrepareProject(ePrepareAction.paUpdate)

oProject.InsertDetailSel(Nothing, Nothing, Nothing, 17, Nothing, Nothing, Nothing, Nothing, Nothing, "Nld", "Inserted via the SDK", Nothing, eFirmType.ftNone, Nothing, Nothing, Nothing, Nothing)

oProject.WriteProject(eReportMode.rmFullReport)