The answer required me to group by location_cd and create variables to sum the occurances of the desc_cd values(1-9)
$F{desc_cd}==1?1:0
etc. for 2-9. Reset type was by group. Same for the Y/N columns.
$F{y_n_1}.equals("Y")?1:0
Instead of putting them in the details row I put the text fields in the group footer, put some column titles in the column header and the rest in the page header.
I still need to find a way to sub-group some of my groups but that is for another question.