Pete,
I use a generic xBrowse builder that builds lists based on items from a database (defined by my clients) so the report would have to look at the current state of the browse which it is sort of doing at the moment, so i'd rather get this fixed rather than re-inventing the wheel.
If you mean that they are selecting the data, then you can easily use your own report on the current database by just specifiying the workarea. If you mean that the users are building the configuration of the browse (which columns) then it would be more difficult.
I have not looked at the Report method of XBrowse but column widths are generally setup using the width of a string of capital W's or M's because those are the widest letters. This insures that all strings of the width of the field will fit the column. Of course, it would be extremely rare that any field would contain a string of W's or M's, so the column will almost always be too wide.
One could make the column slightly narrower by multiplying the W width by 0.9 or 0.8 or somesuch but you do then run the risk that some data will be cut off.
Perhaps xBrowse could have such a instance variable that the programmer could adjust. It would default to 1 but then the programmer could adjust this down depending on the level of risk of data cutoff they were willing to risk.
James