VB/.Net (BOI syntax) to VBScript (UDS) syntax for calling Custom Report

Hi everyone, 

I see many examples of processing a report in BOI, like this one.  But all of them are VB/.NET or C#.  Could someone please help me translate the syntax to UDS work with Events like Column_PostValidate?  Below is Bret's example of Previewing a custom report.  The first "Set rpt" statement is easily replaced with oSession.AsObject(oSession.GetObject)) but how can I change the 2nd Set rpt statement? 

Set rpt = oPVX.NewObject("SY_Listing_ui", oSS) 

Set rpt = oPVX.NewObject("SY_ReportManagerGeneratedListing_rpt", oSS, "rptSalesMonth_Custom.RPT", "Sales For Previous Month")

r = oSS.nInitiateUI()

r = rpt.nProcessReport("PREVIEW")

Also, am I correct to think that that passing a value to report's query parameter isn't possible without launching a report through the Crystal runtime?  Thank you!

Ken

EDIT - 5/13/2019

I read into a little more and some have gone out to register a Sage100.Reporting.DLL to launch a report externally.  Below are some links that I followed.

https://www.sagecity.com/support_communities/sage100_erp/f/sage-100-personalization-customization-and-productivity-tools/75104/launch-custom-report-from-uds

https://www.sagecity.com/support_communities/sage100_erp/f/sage-100-business-object-interface/74820/loadreport-processreport-no-longer-working

https://www.sagecity.com/support_communities/sage100_erp/f/sage-100-personalization-customization-and-productivity-tools/37484/crystal-report-2011-no-longer-provides-runtime-component---can-t-create-runtime-object

The above is great, though not verified as of 5/13/2019 on a hosted environment, since you'd be able to pass report parameters.  

I also looked into Object references a bit deeper and found that there is an object that can be used to launch any report file as long as you know the full path to it.  Below is the script.  It works well but the report file is hard-coded so it's very vulnerable to changes, plus the parameters still can't be passed to the report in this way.

set oRpt = oSession.AsObject(oSession.GetObject("SY_ReportEngine")) 'you should run GetObject first and check if it's successful.

retval = oRpt.OpenReport("C:\Sage\2017\MAS90\Reports\ReportName.RPT") 'Define report file's full path

retval = oRpt.SetPreviewOptions("Report window title") 'Define the report window title
retval = oRpt.DatabaseLogon() 'Apply current user's security context to avoid login popup by ODBC
retval = oRpt.Preview()

Is there any magical method to pass parameter to report file like oBjName.MethodName("Parameter$",paramValue$)??  The only way I see is to use SetReportSelection method from SY_ReportCommon and basically hard-code the the selection formula, but the above method doesn't quite seem to cope with that.  (my original idea was to use GetReportSelection method to get the record selection formula and append a desired statement through UDS but the object reference specifies it being deprecated as of version 4.x...to bad)

I'd still love to get a help on my original question above on how to use SY_Listing_UI or what object to instantiate in User defined Scripts with the arguments specified in SY_Listing, in this case "SY_ReportManagerGeneratedListing_rpt", ReportFileName$, ReportNameInMenu.  Thank you!