With regards to non-numerical result values (e.g. “Pass” or “Fail”), there are at least two ways to do it. The first is simpler, but not quite as flexible. The way you do it is when you create (or edit) an analysis service, there is a tab labelled “Result Options.” When you select the tab, you can define a mapping from a set of particular numerical values to a set of particular string values. For example, you can specify that a result of 0 should be displayed as “False” and that a result of 1 should be displayed as “True.” As far as I know, this method does not allow you to specify that any result in a particular numerical range should map to a particular string value. For example, you could not define all results greater than 0 to be “Positive.”
This is where the second method comes in. With this method, you use two analysis services to display one result value. The first analysis service will take a numerical value, while the second analysis service will be the result of a calculation based on the first. Using an example from my application, I have an analysis service with the title “Barbiturate Drug Screen (Numerical)” and with the keyword “BarbEIANum.” This analysis service is set to be hidden in reports by default (This behavior can be enabled under the “Analysis” tab when you create or edit an analysis service). My second analysis service is titled “Barbiturate Drug Screen” with the keyword “BarbEIA.” I have this analysis service linked to a calculation with the formula:
"Positive" if [BarbEIANum] > 100 else "Negative"
Thus when I import numerical results from my instruments, the value for BarbEIANum is set to (for example) 112. Since 112 > 100, this triggers the calculation to set the value of “Barbiturate Drug Screen” to “Positive.” The numerical 112 value does not show up in the report, so it all works as if the result was non-numerical to begin with.
I’m afraid I can’t help with the array result, but I hope the above helps.