oPrn := PrintBegin( nil, ; // document
.F., ; // luser
lPreview, nil, ; // xmodel
lModal, .F. ) // lselect
if oPrn:hDC == 0
return .f. // < --- Your program may be returning here
endif
Application
===========
Path and name: C:\work\prg\VDSWIN\VdsWin.Exe (32 bits)
Size: 2,529,792 bytes
Time from start: 0 hours 0 mins 6 secs
Error occurred at: 07/03/2008, 10:53:26
Error description: Error BASE/1004 Class: 'NIL' has no exported method: EVAL
Args:
[ 1] = U
Stack Calls
===========
[b]Called from: => EVAL(0)
Called from: RCOLUMN.PRG => TRCOLUMN:STABILIZE(0)
Called from: REPORT.PRG => (b)TREPORT:STABILIZE(0)
Called from: => AEVAL(0)
Called from: REPORT.PRG => TREPORT:STABILIZE(0)
Called from: REPORT.PRG => TREPORT:ACTIVATE(0)
Called from: XBROWSE.PRG => TXBROWSE:REPORT(0)
Called from: ASS510.prg => (b)CAW510(272)[/b]
Called from: VMenu.prg => TVMENU:EVALACTION(1700)
Called from: VMenu.prg => TVMENU:LBUTTONUP(1398)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: CONTROL.PRG => TCONTROL:HANDLEEVENT(0)
Called from: VMenu.prg => TVMENU:HANDLEEVENT(905)
Called from: WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: WINDOW.PRG => TWINDOW:ACTIVATE(0)
Called from: main.prg => TAPPLICATION:ACTIVATE(269)
Called from: main.prg => MAIN(55)
METHOD Print( lPreview, lModal, cTitle ) CLASS TXBrowse
local oPrn, oRep, oCol
local aCols
local xValue
local cAlias
local nFor, nLines, nLine, nBookMark
DEFAULT lPreview := .t.,;
lModal := .f.,;
cTitle := ::oWnd:cCaption
If Empty( cTitle )
cTitle := "No Title"
Endif
If lPreview
If lModal
PRINTER oPrn NAME cTitle PREVIEW MODAL
else
PRINTER oPrn NAME cTitle PREVIEW
Endif
else
PRINTER oPrn NAME cTitle
Endif
If oPrn:hDC == 0
return .f.
Endif
If !Empty( ::cAlias )
cAlias := DbSelectArea( ::cAlias )
Endif
REPORT oRep TITLE "*** " + cTitle + " ***", "" ;
HEADER DToC( Date() ) + "-" + Left(Time(), 5), "" RIGHT ;
FOOTER "#: " + Str( oRep:nPage, 3 ) CENTER;
TO DEVICE oPrn
aCols := ::GetVisibleCols()
for nFor := 1 to len( aCols )
If !aCols[nFor]:lHide
oCol := oRep:AddColumn( TrColumn():New( { FInfo1(aCols, nFor) } ,,;
{ FInfo2(aCols, nFor) },,,,,,,,,, oRep ) )
xValue := Eval(aCols[nFor]:bStrData)
nLines := MlCount(xValue, 250)
oCol:nPad := aCols[nFor]:nDataStrAlign + 1
If nLines > 1
oCol:aData := Array(nLines)
oCol:aPicture := Afill(Array(nLines), "")
For nLine := 1 to nLines
oCol:aData[nLine] := FInfo3(aCols, nFor, nLine)
Next
Endif
Endif
next
ENDREPORT
nBookMark := Eval( ::bBookMark )
If ::aArrayData != nil .and. len( ::aArrayData ) > 0
::nArrayAt := 1
oRep:bSkip := { || ::nArrayAt++ }
ACTIVATE REPORT oRep WHILE ::nArrayAt <= len( ::aArrayData ) ON END ::nArrayAt := 1
else
ACTIVATE REPORT oRep
Endif
Eval(::bBookMark, nBookMark )
If !Empty( cAlias )
DbSelectArea( cAlias )
Endif
return .t.
James Bott wrote:Falconi,
Since xBrowse can now also handle database objects, it would be nice if your report method could handle them too.
I also suggest adding a gotop() before the report and saving and restoring the current recno().
James
Return to FiveWin for Harbour/xHarbour
Users browsing this forum: No registered users and 66 guests