cancel
Showing results for 
Search instead for 
Did you mean: 

Running Total Cannot refer to Print Time Formula

Former Member
0 Kudos

I'm using Crystal Reports version 14

Report has one grouping (Facility), details sections lists line items to price.  Price is based on a count of type of line item, once there are so many of certain types, the price changes (using access database for price table).  When I add to my pricing formula If statedments if the tye of count is <= 50... etc., I get the Print Time Foruma Error.  Everything works fine, until I try to price based on the counters.  The pricing formula is what I'm trying to modify.

Please Help.

Counters Forumula:

shared numbervar XRCounter;
shared numbervar CTCounter;
shared numbervar MRCounter;
shared numbervar NMCounter;
shared numbervar USCounter;
shared numbervar LNCounter := 0;


if {RPTPATIENTSTUDY.SCHEDULEDMODALITY} in ["CR", "DX", "XR", "RG", "XA"] then

    (if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY2" then
        (XRCounter := XRCounter + 2;
        LNCounter := 2)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY3" then
        (XRCounter := XRCounter + 3;
        LNCounter := 3)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY4" then
        (XRCounter := XRCounter + 4;
        LNCounter := 4)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY5" then
        (XRCounter := XRCounter + 5;
        LNCounter := 5)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY6" then
        (XRCounter := XRCounter + 6;
        LNCounter := 6)
    else
        (XRCounter := XRCounter + 1;
        LNCounter := 1))

else
if {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "CT" then
    (if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "ABD/PELVIS" then
        (CTCounter := CTCounter + 2;
        LNCounter := 2)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MULTI+1CT" then
        (CTCounter := CTCounter + 3;
        LNCounter := 3)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MULTI+2CT" then
        (CTCounter := CTCounter + 4;
        LNCounter := 4)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MULTI+3CT" then
        (CTCounter := CTCounter + 5;
        LNCounter := 5)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT2" then
        (CTCounter := CTCounter + 2;
        LNCounter := 2)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT3" then
        (CTCounter := CTCounter + 3;
        LNCounter := 3)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT4" then
        (CTCounter := CTCounter + 4;
        LNCounter := 4)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT5" then
        (CTCounter := CTCounter + 5;
        LNCounter := 5)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT6" then
        (CTCounter := CTCounter + 6;
        LNCounter := 6)
    else
        (CTCounter := CTCounter + 1;
        LNCounter :=1))
   

else
if {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "US" then
    (if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "US2" then
        (USCounter := USCounter + 2;
        LNCounter := 2)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "US3" then
        (USCounter := USCounter + 3;
        LNCounter := 3)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "US4" then
        (USCounter := USCounter + 4;
        LNCounter := 4)
    else
        (USCounter := USCounter + 1;
        LNCounter := 1))

else
if {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "MR" then
    (if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MR2" then
        (MRCounter := MRCounter + 2;
        LNCounter := 2)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MR3" then
        (MRCounter := MRCounter + 3;
        LNCounter := 3)
    else if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MR4" then
        (MRCounter := MRCounter + 4;
        LNCounter := 4)
    else
        (MRCounter := MRCounter + 1;
        LNCounter :=1))

else
if {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "NM" then
    (if {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "NM2" then
        (NMCounter := NMCounter + 2;
        LNCounter := 2)
    else
        (NMCounter := NMCounter + 1;
        LNCounter :=1))

Price Foruma (version that works before adding if a counter is greater than or less than.....)

IF {RPTPATIENTSTUDY.SCHEDULEDMODALITY} in ["CR", "DX", "XR", "RG", "XA"] THEN
    (IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY2" THEN {Pricing.XR 2}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY3" THEN {Pricing.XR 3}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY4" THEN {Pricing.XR 4}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY5" THEN {Pricing.XR 5}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "XRAY6" THEN {Pricing.XR 6}
    ELSE {Pricing.XR 1})

ELSE IF {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "CT" THEN
    (IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "ABD/PELVIS" THEN {Pricing.CT AB/PEL}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT-LTD" THEN {Pricing.CT LTD}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MULTI+1CT" THEN {Pricing.CT M+1}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MULTI+2CT" THEN {Pricing.CT M+2}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MULTI+3CT" THEN {Pricing.CT M+3}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT2" THEN {Pricing.CT 2}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT3" THEN {Pricing.CT 3}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT4" THEN {Pricing.CT 4}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT5" THEN {Pricing.CT 5}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CT6" THEN {Pricing.CT 6}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "CCTA" THEN {Pricing.CT CCTA}
    ELSE {Pricing.CT 1})

ELSE IF {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "US" THEN
    (IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "US2" THEN {Pricing.US 2}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "US3" THEN {Pricing.US 3}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "US4" THEN {Pricing.US 4}
    ELSE {Pricing.US 1})

ELSE IF {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "MR" THEN
    (IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MR2" THEN {Pricing.MR 2}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MR3" THEN {Pricing.MR 3}
    ELSE IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "MR4" THEN {Pricing.MR 4}
    ELSE {Pricing.MR 1})

ELSE IF {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "PT" THEN {Pricing.PT}

ELSE IF {RPTPATIENTSTUDY.SCHEDULEDMODALITY} = "NM" THEN
    (IF {RPTPATIENTSTUDY.SCHEDULEDBODYPARTEXAMINED} = "NM2" THEN {Pricing.NM 2}
    ELSE {Pricing.NM 1})

ELSE IF {RPTPATIENTSTUDY.SCHEDULEDMODALITY}= "MG" THEN {Pricing.MG 1}

ELSE $0.00

Accepted Solutions (1)

Accepted Solutions (1)

former_member292966
Active Contributor
0 Kudos

Hi Mike,

The very first line of your formula add:

WhilePrintingRecords;

This will set have Crystal evaluate the report on it's second pass of the database which is when Running Totals should be calculated. 

Unless you are getting parameters from a subreport, you do not need a Shared variable.  Just remove Shared where you are defining the variable.  Really won't make a difference in the calculation but it will in the overhead for resources. 

Good luck,

Brian

Former Member
0 Kudos

I added the whileprintingrecords command to my Counters formula and tried to add the new If statements to the Price formula and got the same error.  I then removed the new if statements from the Price formula and added the wileprintingrecords command to the Price formula, and immediatly received the Running total error. 

I've added whileprintingrecords to Counters alone, and to Counters and Price - same problem.

abhilash_kumar
Active Contributor
0 Kudos

Hi Mike,

Have you inserted a 'Summary' or a 'Running Total' against the formula?

If yes, you won't be able to do that. You would need to create a Manual Running Total in that case.

In the above formula, I don't see where you're trying to to do the summaries though.

-Abhilash

Former Member
0 Kudos

You are correct.  Many thanks.

Answers (0)