Repeating vs. Multiple Choice Variables

rated by 0 users

This post has
5
Replies |
0
Followers

What are the differences --- and similarities --- between Repeating Variables ("Repeated Variables"?) and Multiple Choice Variables?

Are they the same, but created in different ways? Or are they categorically different?

Here's why I'm asking: I'm having a heck of a time figuring out how to make HD (2008 Pro, for use in Pro and Standard) manipulate variable content received directly from Time Matters (9.0). Setting up user-driven dialogs to load content into Multiple Choice variables is clear enough. But how to make it happen automatically using content already loaded into TM is much less clear. Murky even, if (like me) you're not an experienced programmer. (For example, I'm assuming there's no need to save "Answer files" via HD because TM is the answer source, and that saved "Answer files" in HD would just set up a second storage place for info that should be stored in only one place to ensure consistency. I'm sure these are all terribly simple questions, but since the HD documentation --- both HD's own Help and in the various Web sources --- doesn't talk much about automatic manipulation of content from databases, I'm not sure.)

Anyway, if Repeating Variables are just MC Variables that are loaded in a different (automated) way, then I think (nothing in life is certain, is it?) . . . I think I know what to do!

Multiple choice variables and repeating variables are almost entirely different things and serve different purposes, although there is a slight overlap between select any multiple choice variables (both can store multiple values in a single variable). That's where the similarity ends, however.

You might want to describe precisely what you're trying to do. For example, are you trying to link multiple fields in Time Matters record to a single "Select any" multiple choice variable?

What I’m still trying to bumble into is this: I am merging from TM (9.0) to HD (2008 Pro, and then Standard also) and ending in a WordPerfect X3 document.

As to any given merge, the TM fields may — or may not — hold data for more than one person.

All I’m shooting for is code that will insert data from a first set of TM fields for one person (no compound or Special assembly-required fields), then test-and-merge-from a sequence of additional TM fields.

After the initial fields are merged, the code would test a key field of the second set of TM fields, and IF, but only IF, data is found in it, the data from that set of fields would be merged, then the key field of the next set would be tested, and merged if populated, then the next, and the next, etc.).

FWIW, I DO know that I CAN do what I’m trying to do with clunky IF / ELSE IF / ENDIF statements. I know because I did it within WordPerfect 6.1's merge and macro languages. (That WP version came out in 1994. It didn’t have any such animal as "ELSE IF" — just "ELSE"; you had to put a brand new "IF" after an "ELSE" if you needed more logic there.)

Anyway, if I had to use this method, I would hope to be able to "hide" this ugly, "user-hostile" code in scripts for calculated variables rather than having to put it right in the text of the templates themselves.

But my hope is that the sleek, powerful abilities of HotDocs 2008 Pro will allow me to get these same results — and even more — in ways that are much more elegant and versatile than my old, 1994 era, word processing-only, methodology.

Surely this is true, but since I’m not a seasoned programmer, I’m beginning to think that I’d be better off just doing what I already know how to do — ugly though it may be — just to be able to get on with my work (and get some sleep!). For all I know, "link[ing] multiple fields in Time Matters record to a single "Select any" multiple choice variable" might be part of the solution to my problem. Obviously, I don't understand multiple choice variables, or repeating variables for that matter, well enough to know! (Then there are the pronouns associated with the relevant parties as well!)

If all this is going to require the equivalent of an online correspondence course in programming, just say so and that will save us both a lot of time and trouble. Presumably, I could figure out a way to put these things in calculated variables of some kind. (But speaking of that, since the amount of data in one variable could get to be pretty large, wouldn’t I run into trouble with maximum character limits in those calculated variables? That would be another problem to solve.)

There is no simple way to link multiple fields in Time Matters to a single multiple choice variable in HotDocs. It could be done with some scripting in HotDocs, but for your purposes, I don't think it would be worth it.

Your best bet is probably to use IF..END IF logic to test on the key values you're looking for. One thing you probably need to know is that you can test on whether a variable has an answer in HotDocs by using IF ANSWERED(Variable name). I'm not sure what Time Matters passes over, if anything, when a field is empty, but if sends no value (an unanswered variable), IF ANSWERED will do the trick. You may have to experiment a bit with your IF statements to make sure you're testing on the right thing.

Time Matters supports One to One Mapping between a single TM Field and a non-repeating HotDocs field. Thus if the adoption form calls for a listing of siblings, you would have Sibling1 Name TE in HotDocs matched to Sibliing1 in TM and Sibling2 Name TE matched to Sibling2 in Time Matters.

Here is where the fun begins. Most likely HotDocs works better if you have a repeat called SIBLING RPT which contains a repeating field called SIBLING Name TE. The trick is getting the non-repeating Time Matters fields intothe repeating HotDocs field.

To do this, you want to use a dialog element called a Script Link that run a computation. The computation will process the data imported from Time Matters and then populate the Repeat.

ASK NONE// Set values in RepeatIF ANSWERED(Sibling1 Name TE) SET SIBLING Name TE[1] TO Sibling1 Name TEEND IFIF ANSWERED(Sibling2 Name TE)
SET SIBLING Name TE[2] TO Sibling2 Name TE
END IF
IF ANSWERED(Sibling3 Name TE)
SET SIBLING Name TE[3] TO Sibling3 Name TE
END IF