One question...
In your actual code, you are replacing the 'string' and 'columnname' parameters with actual data, right? If not, then that may be why it doesn't work. Normally, you construct the macro as a string, substituting actual data from your LotusScript variables like this...
Dim stringvariable as string
Dim columnname as string
stringvariable = "some filter"
columnname = "some column"
evaluate({@setviewinfo[SETVIEWFILTER];"} & stringvariable & {";"} & columnname & {";1})
If you are using the temp doc trick, however, you can just refer to the field names that are contained in the temp doc.
Of course, there's always the posibility that @SetViewInfo just won't work in an Evaluate statement. I have found that most @Functions work, but @Commands don't.