Actually I don't think IF-then Blocks also exist in CR 7 either...but I would do it Ken's suggested way too....the size of the formula is large but it operates quite fast.
I have done the formula as below for a few cycles of "=" signs...just add more blocks to extend the number of cycles
***********************************************************
WhilePrintingRecords;
numberVar intCount:=0;
numberVar intPos:=0;
numberVar intLen:=0;
numberVar GetCartCount:=0;
stringVar strWork:={OEShipping.CartsUsed};
stringvar boolFlag:= "N";
stringVar NullFlag:= "N";
If not isnull(strWork) Then
NullFlag := "Y";
if NullFlag = "N" then
intPos := InStr(1, strWork, "="

;
If NullFlag = "N" and intPos <> 0 Then
intLen := Len(strWork);
If NullFlag = "N" and intPos <> 0 Then
strWork := Mid(strWork, intPos + 1, intLen);
If NullFlag = "N" and intPos <> 0 Then
GetCartCount := GetCartCount + Val(strWork);
If NullFlag = "N" and intPos <> 0 Then
boolflag := "N"
else
boolFlag := "Y";
if boolflag = "N" and NullFlag = "N" then
intPos := InStr(1, strWork, "="

;
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
intLen := Len(strWork);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
strWork := Mid(strWork, intPos + 1, intLen);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
GetCartCount := GetCartCount + Val(strWork);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
boolflag := "N" else boolFlag := "Y";
if boolflag = "N" and NullFlag = "N" then
intPos := InStr(1, strWork, "="

;
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
intLen := Len(strWork);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
strWork := Mid(strWork, intPos + 1, intLen);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
GetCartCount := GetCartCount + Val(strWork);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
boolflag := "N" else boolFlag := "Y";
if boolflag = "N" and NullFlag = "N" then
intPos := InStr(1, strWork, "="

;
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
intLen := Len(strWork);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
strWork := Mid(strWork, intPos + 1, intLen);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
GetCartCount := GetCartCount + Val(strWork);
If boolflag = "N" and NullFlag = "N" and intPos <> 0 Then
boolflag := "N" else boolFlag := "Y";
//(** Clone as many tests(starting at the second "if Block"
// as you wish **)
......
GetCartCount;
*****************************************************
Hope this helps....jim