COMPILE SUBROUTINE Print_Notification(Dummy) /* Print Notifications Report 09/27/2005 - John C. Henry, J.C. Henry & Co., Inc. - Initial coding */ DECLARE SUBROUTINE Utility, ErrMsg, Set_Status, Set_Printer, RList DECLARE FUNCTION Set_Printer, Get_Printer, Msg, Get_Status, Printer_Select, obj_Install, Dialog_Box $INSERT OIPRINT_EQUATES $INSERT APPCOLORS $INSERT MSG_EQUATES EQU TAB$ TO \09\ EQU TARGET_ACTIVELIST$ TO 5 ErrorTitle = 'Error in stored procedure Print_Notifications' OPEN 'NOTIFICATION' TO NotificationTable ELSE ErrorMsg = 'Unable to open "NOTIFICATION" table.' ErrMsg(ErrorTitle:@SVM:ErrorMsg) RETURN END OPEN 'DICT.NOTIFICATION' TO @DICT ELSE ErrorMsg = 'Unable to open "DICT>NOTIFICATION" table.' ErrMsg(ErrorTitle:@SVM:ErrorMsg) RETURN END SELECT NotificationTable * Start of printing process FileName = 'Print Notifications by Company Report' Title = 'Printing Notifications by Company' TopMargin = 1.0 BottomMargin = 0.75 LeftMargin = 0.5 RightMargin = 0.5 Margins = LeftMargin:@FM:TopMargin:@FM:RightMargin:@FM:BottomMargin PageSetup = '1' ;* Landscape = 1 PrintSetup = '2' ;* Preview Normal PrintPath = Printer_Select() stat = Set_Printer('INIT',FileName,Title,Margins,PageSetup,PrintSetup,PrintPath) IF stat < 0 THEN GOTO OIPrintErr Header = "'D'":@VM:obj_Install('Get_Prop','CompTitle'):' Notifications Report':@VM:"Page 'P'" Header<-1> = '' ;* Blank line following heading font = 'Arial' font<2> = '10' font<4> = '1' ;* Bold stat = Set_Printer('FONTHEADFOOT',font) ; IF stat < 0 THEN GOTO OIPrintErr stat = Set_Printer('HEADER',Header) ; IF stat < 0 THEN GOTO OIPrintErr Footer = " 'D' 'T'":@VM:@VM:"Page: 'P'" stat = Set_Printer('FOOTER',Footer) ; IF stat < 0 THEN GOTO OIPrintErr @RECCOUNT= 0 FirstPass = 1 LastRecord = 0 FirstLine = 1 * Make Column Heading colHead = '' ; colFmt = '' colHead<1,1> = 'Notify ID' ; colFmt<1,1> = '<2880' colHead<1,2> = 'Description' ; colFmt<1,2> = '<5760' colHead<1,3> = 'User ID' ; colFmt<1,3> = '<1800' colHead<1,4> = 'User Name' ; colFmt<1,4> = '<2880' * Zero Accumulators For Each Break * * * * * * * ReadRecord: * * * * * * * READNEXT @ID, WhichValue ELSE LastRecord = 1 END S.NOTIFY_ID = @ID IF FirstPass AND LastRecord THEN GOTO Bail END IF LastRecord THEN GOTO Bail READO @RECORD FROM NotificationTable,@ID ELSE GOTO ReadRecord END @RECCOUNT += 1 * Calculate Value(s) For Column(s) S.NOTIFY_ID = { @ID} S.DESC = {DESC} S.USER_ID = {USER_ID} S.USER_NAME = {USER_NAME} SWAP @VM WITH CRLF$ IN S.USER_ID SWAP @VM WITH CRLF$ IN S.USER_NAME IF FirstPass THEN FirstPass= 0 colData = "" colData<1,1> = S.NOTIFY_ID colData<1,2> = S.DESC colData<1,3> = S.USER_ID colData<1,4> = S.USER_NAME GOSUB PrintTable IF LastRecord THEN GOTO Bail GOTO ReadRecord * * * * * * * Bail: * * * * * * * stat = Set_Printer('TERM',1) RETURN * * * * * * * OIPrintErr: * * * * * * * ErrMsg(ErrorTitle:@SVM:ErrorMsg) ErrMsg(ErrorTitle:@SVM:'Set_Printer returned errorcode ':stat) stat = Set_Printer('TERM',1) RETURN * * * * * * PrintTable: * * * * * * stat = Set_Printer('CALCTABLE',colFmt:@FM:colData) TableSize = Get_Printer('CALCTABLE') TableHeight = TableSize<2> Test = Get_Printer('POS')<2> IF Get_Printer('POS')<2> + TableHeight > 9.00 OR FirstLine THEN IF NOT(FirstLine) THEN stat = Set_Printer('PAGEBREAK') END FirstLine = 0 font<2> = 10 font<4> = 1 ;* Bold stat = Set_Printer('FONT',font,'100') stat = Set_Printer('ADDTABLE',colFmt,colHead,'',LTGREY$,'',0,TB_ALL) font<4> = 0 stat = Set_Printer('FONT',font,fontSpacing) stat = Set_Printer('ADDTABLE',colFmt,'',colData,LTGREY$,'',0,7) END ELSE font<2> = 10 font<4> = 0 stat = Set_Printer('FONT',font,fontSpacing) stat = Set_Printer('ADDTABLE',colFmt,'',colData,LTGREY$,'',1,TB_ALL) END RETURN