No, you don't need to tell. But all these problems are because of embedded printer info. And it's easy to get rid of that, Now there even is a native feature for that in the VFP report designer, you don't need to clean the first record of such conflicting info. The conflicts simply arise, if developer has a printer the customer hasn't. And this is the normal case.
But there really is no FRX problem any more, if printers with a window GDI+ printer driver (the standard way of printer drivers today) is involved.
There still are two types of printers with and without such a printer driver. Label printers still rather come as COM serial printers you print to with control codes ESC+Printer command or pure ASCII, instead of USB plug&play driver driven printers, which you can address from any application including VFP with FRX reports.
Some people refuse the comfort and better possibilities of graphically designed reports.
I use FRX in my application using a wide variety of printers from laser, ink jet and dot matrix, in a large corp with hundreds of printers. And it works. All I offer the end user is SET PRINTER TO NAME (GETRINTER()) and that's it. And I make extensive use of on the fly FRX changes on the fly to allow font sizing, optional printing of fields, etc. It's cumbersome, sometimes, as the layout of report controls on top of each other isn't very comfortable, but it's not the range of different printers making this complicated. As long as a printer has a windows printer driver it works.
What I only partly understand is, if you have a USB/GDI plug and play printer and try to force the serial communication on it. You can recycle code. But I wouldn't write new code doing so, not even just out of habit.
Bye, Olaf.