this means that the description field in the subreport crosstab row name does not exactly match the description field in the main report crosstab. that's one problem with using a text field instead of an ID / numeric field.
however, the syntax used in the sample actually does a loop to check the arrays which may be more than you need.
if, and only if, both the subreport crosstab and the main report have:
1) an identical number of rows
2) identical row values
3) the same order / sort for the rows
then you can simplify the display string code to this...
whileprintingrecords;
shared stringvar osrt;
stringvar array oa:= split(osrt,'||');
stringvar t:= '';
numbervar r;
r:= r + 1;
t:= split (oa[r],'|')[2];
again, the two cross-tabs must be a match for the info stated above or this will show the wrong values.