METHOD CRYSTAL CLASS INFOPRU LOCAL oDlg,oCrystal, oReport, oCRWViewer, oSec, oVor, oPage, oDatabase, oTables LOCAL cTest:="" oDlg := XbpDialog():new(AppDesktop(),,{100,100},{800,600},,.F.) oDlg:taskList := .T. oDlg:drawingarea:resize := {|aO,aN| oCRWViewer:setSize(aN), oCRWViewer:invalidateRect() } //working in original oDlg:drawingarea:clipChildren := .T. oDlg:create() oDlg:Show() oCrystal := ActiveXObject():create( "CrystalRuntime.Application.11" ) oreport:=oCrystal:openreport("REPORT.RPT") oCRWViewer := xbpActiveXControl():new( oDlg:drawingArea,, {0,0}, oDlg:drawingArea:currentSize() ) oCRWViewer:clsid := "CrystalReports11.ActiveXReportViewer.1" oCRWViewer:create() oCRWViewer:reportSource := oReport oCRWViewer:EnableRefreshButton := .f. oCRWViewer:DisplayGroupTree := .f. oCRWViewer:EnableGroupTree := .f. oCRWViewer:EnableExportButton := .t. oCRWViewer:EnableProgressControl := .t. oCRWViewer:EnableSelectExpertButton:=.f. oCRWViewer:EnableAnimationCtrl := .T. oCRWViewer:EnableCloseButton := .T. oCRWViewer:EnablePrintButton := .T. oCRWViewer:EnableToolBar := .T. oCRWViewer:DisplayTabs := .f. oCRWViewer:ViewReport() /* nEvent := xbe_None DO WHILE nEvent <> xbeP_Close nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO */ oCRWViewer:destroy() oReport:destroy() oCrystal:destroy() oDlg:destroy() RETURN self