• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 356
  • Last Modified:

Variable Value dependent on a running sum

I am using Crystal Reports 8.  I have a select case statement that calculates a point value:

Global numberVar  Points:=0 ;
Select {LaborDtl.ExpenseCode}
  case "TA0":
    Points := 0
  case "TA1":
    Points := 1
  case "TA5":
    Points := .5
    case "TABD":
    /* NEED SOME HELP HERE******/
  default:
    Points := 0

when I get to the case "TABD" I need to assign the points based on the running sum of points for the employee I am processing.

if running sum = 1, then points s/b = 6
if running sum = 2, then points s/b = 5
if running sum = 3, then points s/b = 4
if running sum = 4, then points s/b = 3
if running sum = 5, then points s/b = 2
if running sum >= 6, then points s/b = 1

How can I accomplish this?
0
ndornack
Asked:
ndornack
  • 2
1 Solution
 
mlmccCommented:
Are you calculating a value for a running total and trying to use the running total in the calculataion?

WHat you want will be done like
(
If {#RunningTotal} = 1 then
    Points := 6
Else If {#RunningTotal} = 2 then
    Points := 5
Else If {#RunningTotal} = 3 then
    Points := 4
Else If {#RunningTotal} = 4 then
    Points := 3
Else If {#RunningTotal} = 5 then
    Points := 2
Else If {#RunningTotal} = 6 then
    Points := 1
)

You could also try using
   7 - {#RunningTotal}

mlmcc
0
 
ndornackAuthor Commented:
This is what I have now, and I am getting the ERROR:

"One of operands is a running total field which is using this formula"

Global numberVar  Points:=0 ;
Select {LaborDtl.ExpenseCode}
  case "TA0":
    Points := 0
  case "TA1":
    Points := 1
  case "TA5":
    Points := .5
  case "TABD":
    (
    if {#PointsTotal} =  1 then
      Points := 6
    else if {#PointsTotal} = 2 then
      Points := 5
    else if {#PointsTotal} = 3 then
      Points := 4
    else if {#PointsTotal} = 4 then
      Points := 3
    else if {#PointsTotal} = 5 then
      Points := 2
    else if {#PointsTotal} = 6 then
      Points := 1
    )
  default:
    Points := 0
0
 
mlmccCommented:
If you are trying to use this as the basis for the PointsTotal running total, you can't.

I know statements like  a := a + 1 make sense (sort of) in a program, but a running total cannot refer to itself.
mlmcc
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now