WP INSERT DOCUMENT
WP INSERT DOCUMENT ( targetObj ; wpDoc ; mode {; rangeUpdate} )
Parameter | Type | Description | |
---|---|---|---|
targetObj | Object | → | Range or element or 4D Write Pro document |
wpDoc | Object | → | 4D Write Pro document |
mode | Integer | → | Insertion mode |
rangeUpdate | Integer | → | Range update mode |
Description
The WP INSERT DOCUMENT command inserts the wpDoc document in the targetObj according to the specified insertion mode and rangeUpdate parameters.
In targetObj, pass:
- a range, or
- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection / text box), or
- a 4D Write Pro document.
The inserted wpDoc document can be any 4D Write Pro document object created using the WP New or WP Import document command. Only the body children elements are inserted (i.e. headers, footers, text boxes and anchored pictures are not inserted). Sections and bookmarks in the destination range are preserved. In addition, the elements are copied, so wpDoc can be re-used several times.
In the mode parameter, pass one or a combination of the following constants from the 4D Write Pro Constants theme to indicate the insertion mode to be used for the document in the destination targetObj:
Constant | Type | Value | Comment |
---|---|---|---|
wk append | Integer | 2 | Insert contents at end of target |
wk prepend | Integer | 1 | Insert contents at beginning of target |
wk replace | Integer | 0 | Replace target contents |
You can combine one of the previous constants with the following insertion options:
Constant | Type | Value | Comment |
---|---|---|---|
wk freeze expressions | Integer | 64 | Freeze expressions at the moment of the insertion |
wk keep paragraph styles | Integer | 128 | Apply destination paragraph styles. In case of wk append operation, insert contents without initial paragraph break. |
- If targetObj is a range, you can use the optional rangeUpdate parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range:
Constant | Type | Value | Comment |
---|---|---|---|
wk exclude from range | Integer | 1 | Inserted contents not included in updated range |
wk include in range | Integer | 0 | Inserted contents included in updated range (default) |
If you do not pass a rangeUpdate parameter, by default the inserted contents are included in the resulting range.
- If targetObj is not a range, rangeUpdate is ignored.
Example 1
You want to replace the contents of a document by the text selected in another one:
$tempRange:=WP Get selection(WPTemplate) //we retrieve the user selection in the WPTemplate document
$doctoCopy:=WP New($tempRange) //create a new document based on WPTemplate
WP INSERT DOCUMENT(WPDoc;$doctoCopy;wk replace) //replace contents of WPDoc by the contents of the new document
Example 2
You have defined a template document with different preformatted parts, each of them being stored as a bookmark. When producing a final document from the template, you can extract any bookmark as a new document and insert it in the final document.
ARRAY TEXT($_BookmarkNames;0)
WP GET BOOKMARKS([TEMPLATES]WP;$_BookmarkNames) //get the bookmarks from the template
$targetRange:=WP New //create an empty document (will be the final document)
$p:=Find in array($_BookmarkNames;"Main_Header") //handle the main header part
If($p>0)
$Range:=WP Get bookmark range(WParea;$_BookmarkNames{$p}) //select the range
$RangeDoc:=WP New($Range) //create a new document from the range
WP INSERT DOCUMENT($targetRange;$RangeDoc;wk append+wk freeze expressions) //wk append=after replacement, $targetRange is equal to end of replaced text
End if