Try changing it to:
If {?SELECTTRANBY} = "0" Then
{ICIVAL.TRANSDATE} <= ToNumber({?TODATE})
Else
(
{ICIVAL.FISCYEAR} < {?TOYR} OR
(
{ICIVAL.FISCYEAR} = {?TOYR} AND
{ICIVAL.FISCPERIOD} <= if isnumeric(Trim({?TOPR})) then Tonumber({?TOPR})
)
)
P.S: I hope the users enter just numbers in the {?TOPR} prompt
-Abhilash