I need to print a graphic (barcode) on multiple pages. I thought the following code should work, but it only gives me one page. I cannot get it to print more than one page.
What am I doing wrong?
Thanks,
John Tate
What am I doing wrong?
Thanks,
John Tate
Code:
#PBFORMS CREATED V1.51 '------------------------------------------------------------------------------ ' The first line in this file is a PB/Forms metastatement. ' It should ALWAYS be the first line of the file. Other ' PB/Forms metastatements are placed at the beginning and ' end of "Named Blocks" of code that should be edited ' with PBForms only. Do not manually edit or delete these ' metastatements or PB/Forms will not be able to reread ' the file correctly. See the PB/Forms documentation for ' more information. ' Named blocks begin like this: #PBFORMS BEGIN ... ' Named blocks end like this: #PBFORMS END ... ' Other PB/Forms metastatements such as: ' #PBFORMS DECLARATIONS ' are used by PB/Forms to insert additional code. ' Feel free to make changes anywhere else in the file. '------------------------------------------------------------------------------ #COMPILE EXE #DIM ALL '------------------------------------------------------------------------------ ' ** Includes ** '------------------------------------------------------------------------------ #PBFORMS BEGIN INCLUDES #IF NOT %DEF(%WINAPI) #INCLUDE "WIN32API.INC" #ENDIF #PBFORMS END INCLUDES '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Constants ** '------------------------------------------------------------------------------ #PBFORMS BEGIN CONSTANTS %IDD_DIALOG1 = 101 %IDC_LABEL1 = 1001 %IDC_BUTTON1 = 1002 %IDCANCEL = 2 %IDC_TEXTBOX1 = 1003 %IDC_LABEL2 = 1004 #PBFORMS END CONSTANTS '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Declarations ** '------------------------------------------------------------------------------ DECLARE CALLBACK FUNCTION ShowDIALOG1Proc() DECLARE FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG #PBFORMS DECLARATIONS '------------------------------------------------------------------------------ DECLARE SUB BARCODEPRINT(hDlg AS LONG) '------------------------------------------------------------------------------ ' ** Main Application Entry Point ** '------------------------------------------------------------------------------ FUNCTION PBMAIN() ShowDIALOG1 %HWND_DESKTOP END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** CallBacks ** '------------------------------------------------------------------------------ CALLBACK FUNCTION ShowDIALOG1Proc() SELECT CASE AS LONG CBMSG CASE %WM_INITDIALOG ' Initialization handler CONTROL SET TEXT CBHNDL, %IDC_LABEL1,"PLACE HALF SHEETS IN PRINTER" +$CRLF+"MAKER SURE BARCODE WILL PRINT ON PRINTED SIDE" CONTROL SET FOCUS CBHNDL, %idc_textbox1 CASE %WM_NCACTIVATE STATIC hWndSaveFocus AS DWORD IF ISFALSE CBWPARAM THEN ' Save control focus hWndSaveFocus = GetFocus() ELSEIF hWndSaveFocus THEN ' Restore control focus SetFocus(hWndSaveFocus) hWndSaveFocus = 0 END IF CASE %WM_COMMAND ' Process control notifications SELECT CASE AS LONG CBCTL CASE %IDC_LABEL1 CASE %IDC_BUTTON1 IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN 'xprint attach default barcodeprint(CBHNDL) 'xprint close MSGBOX "returned" END IF CASE %IDCANCEL IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN DIALOG END CBHNDL, 0 END IF END SELECT END SELECT END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Dialogs ** '------------------------------------------------------------------------------ FUNCTION ShowDIALOG1(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG #PBFORMS BEGIN DIALOG %IDD_DIALOG1->-> LOCAL hDlg AS DWORD DIALOG NEW hParent, "PRINT BAR CODE ON EXISTING DOCS", 70, 70, 345, 191, _ TO hDlg CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Label1", 5, 5, 260, 50 CONTROL ADD BUTTON, hDlg, %IDC_BUTTON1, "PRINT BAR CODE", 80, 120, 75, _ 15 CONTROL ADD BUTTON, hDlg, %IDCANCEL, "EXIT", 185, 120, 50, 15 CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX1, "", 140, 60, 40, 13 CONTROL ADD LABEL, hDlg, %IDC_LABEL2, "enter number of copies", 35, 60, _ 100, 10 #PBFORMS END DIALOG DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt #PBFORMS BEGIN CLEANUP %IDD_DIALOG1 #PBFORMS END CLEANUP FUNCTION = lRslt END FUNCTION '------------------------------------------------------------------------------ SUB BARCODEPRINT(hDlg AS LONG) LOCAL tempvar AS STRING LOCAL X,Y AS SINGLE LOCAL I,numcopies AS LONG CONTROL GET TEXT Hdlg,%idc_textbox1 TO tempvar numcopies = VAL(tempvar) XPRINT ATTACH DEFAULT XPRINT SCALE (1,1)-(80,66) X = 25:Y = 30 FOR I = 1 TO numcopies XPRINT SET POS (X,Y) XPRINT RENDER "rtatebar1.bmp",(x,y)- (x+20,y+ 3) XPRINT FORMFEED NEXT XPRINT CLOSE END SUB
Comment