Hi:
Well, when the array index got to be 27, since you declared the array to be a size of 26, there was no array member at 27, 28, 29, 30...etc, etc. Also, your OUTPUT statement needed to be inside the loop in order to output each unique IDVAR.
However, you don't really need an array to create your IDVAR. A do loop can iterate over a list of character constants. That is the method I use, frequently, to generate test data.
[pre]
data testit;
length idvar $3;
do i = 'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
'v', 'w', 'x', 'y', 'z';
do j = 'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
'v', 'w', 'x', 'y', 'z';
do k = 'a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
'v', 'w', 'x', 'y', 'z';
idvar = catt(i,j,k);
output;
end;
end;
end;
run;
ods listing;
proc print data=testit;
run;
[/pre]
cynthia