UNION# returns a string containing the union of two (or more) TeLiTab sets
UNION#(Telitab_1$, UnfoldPar_1$, Telitab_2$, UnfoldPar_2$, Mode%)
or
UNION#(Mode%, Telitab_1$, Telitab_2$, ...)
Arguments
Spare union of Telitab_1$ and Telitab_2$:
Telitab_1$ contains the dataset:
2 "MODELS" { 0 -4 "1" "2" "3" "4" "MODMAT$" "wood" "foam" "wood" "plywood" "LPP" 112.30 133.80 98.60 145.00 "B" 17.80 21.50 16.42 22.40 "T" 7.65 9.20 6.70 9.40 } "PROJECTS" { 1 "CLIENT$" "YardX" } |
To explain the data:
you have two objects, MODELS and PROJECTS presented as list values in Telitab_1$ containing TeLiTabs themselfs (with several parameters).
LPP is part of the MODELS object (TeLiTab).
When you unfold Telitab_1$ dataset on parameter "LPP", you get:
1 "PROJECTS" { 1 "CLIENT$" "YardX" } 0 -4 "1" "2" "3" "4" "MODMAT$" "wood" "foam" "wood" "plywood" "LPP" 112.30 133.80 98.60 145.00 "B" 17.80 21.50 16.42 22.40 "T" 7.65 9.20 6.70 9.40 |
You see that PROJECT still is a separate object (and presented as a list value in Telitab_1$). All other data (which was part of the MODELS object) now is part of Telitab_1$ and thus a table in the TeLiTab.
Telitab_2$ contains the dataset:
0 -4 "1" "2" "3" "4" "MODNO$" 5684 6231 6301 6537 "LPP" 112.30 162.70 133.80 118.50 "B" 17.80 27.80 21.50 16.70 "T" 7.65 11.20 9.20 6.80 |
and UnfolPar_2$ contains "NullString", what means that no unfolding of Telitab_2$ is performed.
To carry out the unfolding and the UNION we write:
UNION#(Telitab_1$, "LPP", Telitab_2$, "NullString", 0)
it returns:
0 6 "MODMAT$" "LPP" "B" "T" "MODNO$" "1" "wood" 112.30 17.80 7.65 "-999999" "2" "foam" 133.80 21.50 9.20 "-999999" "3" "wood" 98.60 16.42 6.70 "-999999" "4" "plywood" 145.00 22.40 9.40 "-999999" "5" "-999999" 112.30 17.80 7.65 5684 "6" "-999999" 162.70 27.80 11.20 6231 "7" "-999999" 133.80 21.50 9.20 6301 "8" "-999999" 118.50 16.70 6.80 6537 "PROJECTS" { 1 "CLIENT$" "YardX" } { 1 "CLIENT$" "YardX" } { 1 "CLIENT$" "YardX" } { 1 "CLIENT$" "YardX" } { - } { - } { - } { - } |
Please note that the union simply contains the sum of two Telitab sets and contains the combined parameters and cases of both sets (Mode%=0). Cases 4-8 have empty object values for PROJECTS.
If the union should combine the parameter values of the cases with the same value of the overlapping parameters Mode%=1 should be used:
UNION#(Telitab_1$, "LPP", Telitab_2$, "NullString", 1)
returns:
0 -6 "1" "2" "3" "4" "5" "6" "MODMAT$" "wood" "plywood" "wood" "-999999" "foam" "-999999" "LPP" 98.60 145.00 112.30 162.70 133.80 118.50 "B" 16.42 22.40 17.80 27.80 21.50 16.70 "T" 6.70 9.40 7.65 11.20 9.20 6.80 "MODNO$" "-999999" "-999999" 5684 6231 6301 6537 "PROJECTS" { 1 "CLIENT$" "YardX" } { 1 "CLIENT$" "YardX" } { 1 "CLIENT$" "YardX" } { - } { 1 "CLIENT$" "YardX" } { - } |
Case 1 and 2 of the result are cases 3 and 4 from the unfolded object MODELS in Telitab_1$.
Case 3 is a combination of of the cases 1 of both input sets.
Case 4 corresponds with case 2 from Telitab_2$.
Case 5 is again a combination of respectively the cases 2 and 3.
Case 6 corresponds with Case 4 from Telitab_2$.
The UNION# function with Mode%=1 can be used as a database manipulation function. The union of two Telitab sets as produced by this functiun completes a set of data by combining data from two source sets in a single table (see also SECTION#() ).
Quick links: Functions overview | Attribute overview | Constants overview | Dimensions overview