Bluepoint Design

Practical Cost-Effective Solutions


Multiple Choice Menu Save Item Value above 9 does not work properly

2009/04/22 1054

I experimented with many values and created the map below of what's happening. It's useful to see the ASCII decimal value for what is returned so I put that in the second column. First column is what appears in the creation dialog box. The right column shows what text is returned. As you can see A-9 work fine but AA does not return AA. Quite simply the ASCII values start at 65 for A and then shift down to 48 for zero. After zero the decimal value simply continues to increment until 255 after which it starts back over at zero. This means it repeats the upper case alphabet. So a user expecting AA or other such values will not get the desired results. What's worse if the end user selects HH the value returned will be A! Very dangerous.

Suggestion: Probably the easiest solution is to remove AA and above from the list and at some validation not to allow any more items but I would like ot suggest that instead of returning ingle digit letters and numbers that instead simply return an integer value corresponding to the row. Of course I can see the reverse compatibility issues here. Perhaps we need Multiple Choice Menu Enhanced command and keep the old one for reverse compatibility.

I was really hopping I could just use the ASCII decimal value but obviously that will not work as it will repeat itself. 

Note: Save Item Text appears to support unlimited values but after a few hundred items it does slow down significantly.

2009/06/04 1338 Update

A change was made in version 4.0.3 to fix this problem but there are a couple of problems with the fix. The release notes said "Made a change to the 'Multiple Choice Menu' command where options above '9' will return an ASCII character starting at character 90 and up through 255." but even this is not correct. Below is my original chart to which I added 2 more columns for version 4.0.4.

The first and most dangerous problem is that 9 in the command dialog should return a "9" but it actually returns ASCII 90 which is a "Z". This means Z is not unique in the table!

The next problem is that the command dialog lists the next line after 9 to be "AA" but instead a user will get "[". According to the release notes the correct character is being returned but the command dialog should not suggest that the value returned is "AA". EG the last label should be 9 and we should see none of the double characters.

In case anyone is wondering I plan on using the ASCII values to make a quasi row numbers by subtraction of the ranges. EG I can tell "M" is row 13 because it's ASCII value is 77 and I subtract 64. This can be used as a array pointer to retrieve multiple values in parallel arrays that I use as quasi tables.

2009/06/08 1125 ISS has opened a new tracking number 7112 for this incident.

 

4.0.?

4.0.4

Save
Item
Value
ASCII
Decimal
Returned
Text
Returned
ASCII
Decimal
Returned
Text
Returned
A 65 A 65 A
B 66 B 66 B
C 67 C 67 C
D 68 D 68 D
E 69 E 69 E
F 70 F 70 F
G 71 G 71 G
H 72 H 72 H
I 73 I 73 I
J 74 J 74 J
K 75 K 75 K
L 76 L 76 L
M 77 M 77 M
N 78 N 78 N
O 79 O 79 O
P 80 P 80 P
Q 81 Q 81 Q
R 82 R 82 R
S 83 S 83 S
T 84 T 84 T
U 85 U 85 U
V 86 V 86 V
W 87 W 87 W
X 88 X 88 X
Y 89 Y 89 Y
Z 90 Z 90 Z
0 48 0 48 0
1 49 1 49 1
2 50 2 50 2
3 51 3 51 3
4 52 4 52 4
5 53 5 53 5
6 54 6 54 6
7 55 7 55 7
8 56 8 56 8
9 57 9 90 Z
AA 58 : 91 [
BB 59 ; 92 \
CC 60 < 93 ]
DD 61 = 94 ^
EE 62 > Etc. Etc.
FF 63 ?    
GG 64 @    
HH 65 A    
II 66 B    
JJ 67 C    
KK 68 D    
LL 69 E    
MM 70 F    
NN 71 G    
OO 72 H    
PP 73 I    
QQ 74 J    
RR 75 K    
SS 76 L    
TT 77 M    
UU 78 N    
VV 79 O    
WW 80 P    
XX 81 Q    
YY 82 R    
ZZ 83 S    
00 84 T    
11 85 U    
22 86 V    
33 87 W    
44 88 X    
55 89 Y    
66 90 Z    
77 91 [    
88 92 \    
99 93 ]    
Row 73 94 ^    
Row 74 95 Etc    
Row 75 96      
Row 76 97      
Row 77 98      
Row 78 99      
Row 79 100      
Row 80 101      
Row 81 102      
Row 82 103      
Row 83 104      
Row 84 105      
Row 85 106      
Row 86 107      
Row 87 108      
Row 88 109      
Row 89 110      
Row 90 111      
Row 91 112      
Row 92 113      
Row 93 114      
Row 94 115      
Row 95 116      
Row 96 117      
Row 97 118      
Row 98 119      
Row 99 120      
Row 100 121      
Row 101 122      
Row 102 123      
Row 103 124      
Row 104 125      
Row 105 126      
Row 106 127      
Row 107 128      
Row 108 129      
Row 109 130      
Row 110 131      
Row 111 132      
Row 112 133      
Row 113 134      
Row 114 135      
Row 115 136      
Row 116 137      
Row 117 138      
Row 118 139      
Row 119 140      
Row 120 141      
Row 121 142      
Row 122 143      
Row 123 144      
Row 124 145      
Row 125 146      
Row 126 147      
Row 127 148      
Row 128 149      
Row 129 150      
Row 130 151      
Row 131 152      
Row 132 153      
Row 133 154      
Row 134 155      
Row 135 156      
Row 136 157      
Row 137 158      
Row 138 159      
Row 139 160      
Row 140 161      
Row 141 162      
Row 142 163      
Row 143 164      
Row 144 165      
Row 145 166      
Row 146 167      
Row 147 168      
Row 148 169      
Row 149 170      
Row 150 171      
Row 151 172      
Row 152 173      
Row 153 174      
Row 154 175      
Row 155 176      
Row 156 177      
Row 157 178      
Row 158 179      
Row 159 180      
Row 160 181      
Row 161 182      
Row 162 183      
Row 163 184      
Row 164 185      
Row 165 186      
Row 166 187      
Row 167 188      
Row 168 189      
Row 169 190      
Row 170 191      
Row 171 192      
Row 172 193      
Row 173 194      
Row 174 195      
Row 175 196      
Row 176 197      
Row 177 198      
Row 178 199      
Row 179 200      
Row 180 201      
Row 181 202      
Row 182 203      
Row 183 204      
Row 184 205      
Row 185 206      
Row 186 207      
Row 187 208      
Row 188 209      
Row 189 210      
Row 190 211      
Row 191 212      
Row 192 213      
Row 193 214      
Row 194 215      
Row 195 216      
Row 196 217      
Row 197 218      
Row 198 219      
Row 199 220      
Row 200 221      
Row 201 222   255 ÿ
Row 202 223   Error Error
Row 203 224   Etc. Etc.
Row 204 225      
Row 205 226      
Row 206 227      
Row 207 228      
Row 208 229      
Row 209 230      
Row 210 231      
Row 211 232      
Row 212 233      
Row 213 234      
Row 214 235      
Row 215 236      
Row 216 237      
Row 217 238      
Row 218 239      
Row 219 240      
Row 220 241      
Row 221 242      
Row 222 243      
Row 223 244      
Row 224 245      
Row 225 246      
Row 226 247      
Row 227 248      
Row 228 249      
Row 229 250      
Row 230 251      
Row 231 252      
Row 232 253      
Row 233 254      
Row 234 255      
Row 235 0      
Row 236 1      

 

 
Practical Cost-Effective Solutions