* 编号:A0010 * 功能:自定义报表的打印程序(定制表头、分页打印)
SET PRINT ON CHR(27)+"IB" &&设置打印报表标题的字型 SET PRINT OFF SET DEVICE TO PRINT @PROW(),10 SAY "XX厂人事信息登记表" &&打印标题 SET PRINT ON CHR(27)+"IA" &&设置打印报表的正文字型 SET PRINT OFF SET DEVICE TO PRINT @PROW()+2,30 SAY " 制表日期:"+STR(YEAR(DATE()),4)+"年"+STR(MONTH(DATE()),2); +"月"+STR(DAY(DATE()),2)+"日" 页数=1 &&页计数器置初值 行数=0 &&行计数器置初值 USE RS INDEX RSGH DO WHILE .NOT. EOF() * 控制打印页号及换页 IF 行数>=58 @PROW()+1,0 SAY "┕━━━┻━━━┻━━━┻━━━┻━━━┻━━━┛" &&表格底线 @PROW()+4,20 SAY "第"+STR(页数,3)+"页" &&打印页码 页数=页数+1 &&页计数器计数 行数=0 &&行计数器置初值 @PROW()+11,0 SAY " " EJECT &&控制打印机换页 ENDIF * 每页打印报表栏目名称 @PROW()+1,0 SAY "┍━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓" @PROW()+1,0 SAY "│工 号│姓 名│性 别│年 龄│职 称│工 资│" 行数=行数+2 * 打印职工人事内容 DO WHILE 行数<58 .AND. .NOT. EOF() @PROW()+1,0 SAY "┝━━━┿━━━┿━━━┿━━━┿━━━┿━━━┫" @PROW()+1,0 SAY "│"+GH+"│"+XM+"│"+XB+"│"+STR(NL,3)+"│"+ZHC+"│"+STR(GZ,6,2)+"│" SKIP 1 行数=行数+2 ENDDO IF 行数<>58 @PROW()+1,0 SAY "┕━━━┻━━━┻━━━┻━━━┻━━━┻━━━┛" &&表格底线 @PROW()+4,20 SAY "第"+STR(页数,3)+"页" @PROW()+1,0 SAY " " ENDIF SET DEVICE TO SCREEN USE RETURN
|