NS BASIC Tech Note February 12, 1998
How to print Multi Page Reports
--------------------------------------------------------------------------
To do this, you need NS BASIC 3.60m or higher.
The App widget can be used to print using the Newton OS print mechanism.
It prints the contents of the current screen.
When there is more than one page to print, the screen needs to be updated
for each new page to print.
You can do this by creating a routine called printNextPage in your
program. As long as the variable moreToPrint is set to TRUE, the routine
will be called before the next page is printed.
Here's a sample program:
0010 rem print Multiple Pages
0020 LET appSpec={goto:'endProgram,title:"Demo"}
0030 window app,appSpec,"APP"
0040 show app
0050 widgetdef Layout_0:={a:{widgetType:"text",order:0,viewClass:¬
81,viewBounds:{left:67,top:39,right:243,bottom:123},viewFla¬
gs:47616,viewFormat:12625,viewJustify:0,viewLineSpacing:16,¬
text:"Text Box",viewFont:12289,tabs:[20,40,60,80,120,140,16¬
0,180]}}
0060 window wlist,Layout_0
0070 show wlist
1000 mainCode: REM
1010 LET moreToPrint=true
1020 LET i=0
1030 wait -1
8000 printNextPage: rem
8010 setvalue(layout_0.a,'text,"page " & i)
8020 LET i=i+1
8030 if i>3 then moreToPrint=nil
8040 GOTO 1030
9000 endProgram: rem
9010 hide
9020 stop