turning multiple rows into 1 row can be done only by a) subreport or b) in a group footer.
either way, the idea is the same
in the detail section you place a formula like:
shared stringvar oneLine;
if instr(oneLine, {program_number}) = 0 then
oneLine := oneLine + " " + {program_number};
"" // will hide the output.
to display the value place a formula in the group footer(for example) like:
shared stringvar oneLine;
oneLine
HTH