II. DATAformTags
77
Developer handbook DATAformXTension © 1992-2004 www.gassenhuber.de
{64-65} *»« Chain
{64} *» Chain: next box
{65} *« Chain: previous box
Both these Tags make the chaining of text boxes possible.
» is the ASCII character 200 (MacOS: option-shift-Q, Windows: Alt+0200);
« is the ASCII character 199 (MacOS: option-Q, Windows: Alt+0199)
The DATAform object No. of the next box comes after *»; after *« comes the object No. of the
previous object. *»0 means: this box has no successor, it is the last in the chain. *«0 means:
this box is the first in the chain.
¶*«0*#17*»18*T3*x0*X100*F2*$box 17<\b>box 18<\b>box
19¶*«17*#18*»19*T3*x120*X220*$b¶*«18*#19*»0*T3*x240*X340*$c¶
The text with DATAformTags creates three chained text boxes. The text is transferred in full
with the first box. By the two expressions <\b>, the XPressTag for next box, the text is dis-
tributed amongst all three chained boxes.
*«0*#17*»18
Box #17 is the first in the chain (*«0), it is chained to #18 (*»18)
*«17*#18*»19
Box #18 is in the middle, its predecessor is #17 (*«17), its successor is Box
#19 (*»19)
*«18*#19*»0
Box #19 is the last in the chain (*»0), its predecessor is #18 (*«18).
The chains complete text is always transferred with the first box of the chain and is exported
the same way. If a chains middle box is exported, the result is a box information, but no text.
If the contents of chained boxes are updated, only the text of the first box is updated.
If chained text boxes are updated, the complete text of the chain is replaced by the new text.
The text is therefore transferred with the first box in the chain. Text in further DATAform
objects in the chain is skipped when updating and importing.
Building up chains
Boxes that will be chained must be transferred via an import procedure.
Boxes that are already in documents are ignored when the chain is built at the end of the import
procedure; they are not included in the chain, and you receive an error message upon import.
The same example in the 4D interface:
DX_Array{64} contains the box ID of the next box in the chain.
DX_Array{65} contains the box ID of the previous box in the chain.
The last box in the chain has the value DX_Array{64} = "0"
The first box in the chain has the value DX_Array{65} = "0"
1. boxes in the chain:
DX_Array{1}:="box 17<\c>box 18<\c>box 19"
DX_Array{2}:="17" `boxID = 17
DX_Array{5}:="3" `text box
DX_Array{64}:="18" `chained with the box No. 18
DX_Array{65}:="0" `no preceding box
2. boxes in the chain:
DX_Array{1}:=""