Rene's on the right track - and there's a way to do the sorting as well.
So firstly Rene's bit. While you can make a local variable, it's not necessary. The 'Display' field (which is usually blank for a browse column) can contain an expression. If empty the "Field:" value is used (obviously) but regardless of the field, anything can go in the Display setting.
In Ben's case a rather complex expression would work very well. Something like this;
Choose(Len(Clip(Inv:Desc))>52, Sub(Inv:Desc,1,49) & '...' , Inv:Desc)
By bypassing the local variable, the sorting problem Kevin raises goes away - however there will be times when a local variable IS appropriate. In those cases go to the SORT tab for the browse column, and enter the custom sort there. Now obviously you're limited to sorting on the fields in the database - so if your expression does something really different (like say decrypt a string) then you're fresh out of luck. However in Ben's case, if he did the Local Variable thing, he'd still be able to sort on Inv:Desc
Cheers
Bruce