Hi,
1. You can call one Formula from another just by using the formula's name. If you need to make sure the 'calling' formula runs after the 'called' formula, preface the line on which it is called with the Crystal Reports function
EvaluateAfter(<<formulaname>>);
2. Where are you running this formula? Which section is it in?
Can you not use three formulas? One gives you what I call a Running Marker:
Formula 1 - named 'MarkerFormula'
NumberVar myMarker;
WhilePrintingRecords;
If <<field1 meets condition1>> OR <<field2 meets condition2>> OR ... Then
myMarker := 1
Don't place this formula on the report.
Formula 2 - place in the Report header:
NumberVar myMarker;
WhilePrintingRecords;
myMarker := 0
Formula 3 - place in the Details section:
NumberVar myMarker;
WhilePrintingRecords;
If myMarker = 0 Then
//Run MarkerFormula
MarkerFormula
Then you can use what gets stored in the myMarker variable to indicate whether the tests have been positive or negative.
3. As has been said, an 'If' can only return one data type, which must be consistent in all parts of the If. You don't need to end the section by using a dummy variable, just type "" as the last line. Or use the ToText function to convert a Numeric value to text.
All the best,
Dave