Use the Use

Do you use the USE syntax function in WinCross? It is one of my favorite things, and I KNOW I “use” it the most.

What USE does is allow you to “borrow” syntax logic from a previous question. You can make minor changes by assigning new variables or new values to the Rows or changing the filter (or all three!)

How is this helpful? When you have a matrix question with several attributes yet the values are all the same, you can create one table, and then with USE, quickly create subsequent tables.

In order for the USE to work, you will need an index number. This happens automatically when you create your table in the Add Tables section. If you coded the origin table by hand you can make up your own index (as long as it is unique) OR you can save your job and re-open it; WinCross will magically populate any missing index numbers.

The syntax of the USE function always starts with the word, in all caps: USE. This is followed by the equals sign, and then the index.

If you were making another table that only changed the filter, the USE would look like this:


If you want to change a variable, you would add that after index number, like so:


If you want to change a value, you would add that logic aftger the index number:


You could do more than one action in a use, changing variable(s) AND value(s)


Where is the index number? The index number is located in the top of the table, right after the ^ sign. It is always a number.

As you can see, in the table below, the index number is 789:

 OW,ST,And Other Global (for the table) Row/Table Options here
 This is where the title goes
SAttribute 1 – This is the subtitle
 Total Respondents^TN^0
 First Row in table^VAR1 (1)^
 Second Row in Table^VAR1 (2)^
 Third Row in Table^VAR1 (3)^

Let’s say you want to add tables for three more attributes with different variables. You’d simply copy and paste the first few rows, and add the USE function, like this:

 OW,ST,And Other Global (for the table) Row/Table Options here
 This is where the title goes
SAttribute 2
 Total Respondents^TN^0
 OW,ST,And Other Global (for the table) Row/Table Options here
 This is where the title goes
SAttribute 3
 Total Respondents^TN^0
 OW,ST,And Other Global (for the table) Row/Table Options here
 This is where the title goes
SAttribute 4
 Total Respondents^TN^0

Notice that all I did was change the subtitle and variable names, now when the table is run, it will point to the variable in the USE function line. If I wanted to change the values in the rows, like if I wanted to change the First Row in Table from value (1) to value (5), all I would need to do is add ,(1)=(5) to the use line.


Of course, with anything, there are pitfalls. The obvious is copy/paste errors. That is why, when I create table syntax for a matrix with several attributes, I use a home-made Java program to generate the syntax.

Another pitfall is that if you have the wrong index (or variable/value assignments) your tables will not have the correct data. [This is why it is nice to have someone check over your tables when you are done programming them, if you have the luxury.]

The last pitfall is more like an annoyance, with the new version of WinCross (#14), WinCross is no longer allowing duplicate indexes=0. Previously WinCross allowed duplicate indexes=0, because when you re-opened the job file, it would automatically assign a proper index number for it. Now, if you are playing around with the tables, you can inadvertently make your blank indexes turn to 0s. This is fine if it only happens to one table; problematic for more than one in that the tables will not run!

Do you use the USE? What do you think about it?