Hi Sebastian,
I don't want the report to have a private datasession, becasue I need to manipulate the view it uses before the report is printed (one thing I need to do is to index the view before printing, I need different indexes for different reports from the same view, so I can't just order the view in the view designer).
ThisForm.oMyReportObject = CREATEOBJECT( "MyReportSessionClass" )
This is what I'm trying to find out how to do. How do I create "MyReportSessionClass" and use it in a form?
As fas as I can determine, I need to create a prg to hold the definition, and run a prg to create it:
ds.prg
Return CreateObject('private_ds')
DEFINE CLASS private_ds as session
..... open view
ENDDEFINE
Form.Method()
local lo
lo = ds()
..... index view
Report Form whatever
but the new datasession doesn't release when lo goes out of scope.
>Hi, Bill!
>
>Follow Garretts advice and use the reports "private datasession" setting!
>
>BTW: Some background infos about datasessions:
>- Every object is unbreakable related to that datasession, which was the active datasession at the time of instantiation of the object!
>That means all controls an a form are related to the forms datasession!
>- To have a separate datasession for your report you have to associate a session object instead of aggregation:
ThisForm.oMyReportObject = CREATEOBJECT( "MyReportSessionClass" )
>And all stuff you have coded in "MyReportSessionClass", e.g. the REPORT commend, runs in the separate private datasession!
Bill Morris