I have to deal with this all the time in my software apps, but I do it using a SQL statement. You might be able to work it into Crystal Reports somehow (I haven't thought about it in that way). Maybe make it a stored procedure and link it to your primary table? Here is a generic SQL statement using Max() that I use and should help get you started.
Select * From Table AS t0
WHERE t0.RatingDate =
(SELECT Max(t1.RatingDate)
FROM Table as t1
WHERE t0.ProgramId=t1.ProgramId)
If you want to stick with running totals, can you put the summary line at the end of the detail lines? If so, create a function which checks if the current date equals the Max date and if so, save the rating score in a variable. Then display that variable in the group footer.