Please note that you must have your report sorted on the Qual_ID field for this to work. Also, it looks like your ID can be of varying lengths. Try:
//{@rowlabel}:
whilereadingrecords;
numbervar cnt;
stringvar product;
if instr(product,totext(val({table.Qual_ID}),"0000000")) = 0 then
(product := product + totext(val({table.Qual_ID}),"0000000");
cnt := cnt + 1);
totext(cnt,0,"")+"- "+{table.Qual_ID}
The number of zeros should reflect the maximum number of digits in the ID field. For the last line, if you have more that 9 rows, then you should format cnt like: totext(cnt,"000").
Right click on the fields in preview mode->format field->border->color->background->x+2 and enter:
if remainder(val(gridrowcolumnvalue("@rowlabel")),2) = 0 then crgreen else crgray
Use the name of the formula between the quotes, but remove the curly brackets. You can use this formula to format the row labels, the inner cells and the totals.
An alternative method would be to use the following in the field formatting formula area.
For the row label:
whileprintingrecords;
numbervar d;
d:= if d = 200 then 255 else 200;
color(200,d,200)
For the inner cells:
whileprintingrecords;
numbervar c;
c := if c = 255 then 200 else 255;
color (200,c,200)
For the row totals:
whileprintingrecords;
numbervar e;
e := if e = 255 then 200 else 255;
color (200,e,200)
-LB