I have now tried to use ReportPro 2 in a migrated VO application, and have some problems.
In VO, the class RpReport can be simply instanciated - in the X# version no more because the class is defined as abstract. And there are missing some methods of the class RpReport, like SetVariableValue() and PrintPreview().
I have looked in the assembly ReportPro2.Runtime.dll.
In the next build of RP2 I have added default values for most of these parameters
METHOD PrintPreview(cJobName := "" AS STRING, cPrint2FileName := "" AS STRING, cCaption := "" AS STRING, ;
cMessage := "" AS STRING, lModal := FALSE AS LOGIC, nShowState := SW_SHOWNORMAL AS INT, ;
nZoom := ZOOM_WHOLE_PAGE AS DWORD, symPPWindow := NULL_SYMBOL AS SYMBOL) AS VOID
May I suggest another change: in VO, the report class is RpReport, and in X# the RpReport class is abstract.
I would rename the abstract class to RpReportBase (or any other name), and add three new assemblies that define stub classes called RpReport, inheriting from RpReportRDD, RpReportSQL and RpReportDesigner.
So for migrated applications everyone could decide which assembly to include, and no VO code needs to be changed.
For applications migrated from Vulcan there is no change needed.