This is an example of a breakpoint report with multiple breaks printed per page. The break heading is repeated on the next page if the data for the break does not fit on the page. The report prints a page header as well as a break header and break footer.

*(PHONE3.RMD)  
*(example 3 - this example includes a page header   
  along with the break header. Multiple breaks are   
  printed per page. The break header is repeated on   
  subsequent pages if the break detail spans a page)  
DEL phone.out  
CON hifi  
CLS  
SET MESSAGE OFF  
SET PAGEMODE OFF  
SET LINES 25  
SET VAR vState TEXT  
DECLARE c1 CURSOR FOR SELECT DISTINCT state +  
  FROM salespeople   
DECLARE c2 CURSOR FOR +  
  SELECT (LastName + ',' & FirstName), Phone, Lastname +  
  FROM salespeople WHERE state = .vState +  
  ORDER BY lastname  
SET VAR vCol INT = 3, +  
        vRow INT = 2, +  
        vPage INT = 1, +  
        vPageLimit = (CVAL('lines')), +  
        vCount INT = 0  
SET PAGEMODE ON  
OUTPUT phone.out   
WRITE 'Employee Phone List by State' AT .vRow, 25  
SET VAR vRow = (.vRow + 1)  
WRITE .#date AT .vRow, 32  
WRITE 'Page:', .VPage AT .vRow, 60  
SET VAR vRow = (.vRow + 2)  
OPEN c1  
FETCH c1 INTO vState ii1  
WHILE SQLCODE <> 100 THEN  
  WRITE 'List of employees in state of:', .VState +  
    AT .vRow, .VCol  
  SET VAR vRow = (.vRow + 1)  
  WRITE '----------------------------------' +  
    AT .vRow, .vCol  
  OPEN c2  
  FETCH c2 INTO vName i1 ,vPhone i2, vLastname i3  
  WHILE SQLCODE <> 100 THEN  
    SET VAR vRow = (.vRow + 1)  
    SET VAR vCount = (.vCount + 1)  
    IF vRow >= .vPageLimit THEN  
      NEWPAGE  
      SET VAR vRow = 2, vPage = (.vPage + 1)  
      WRITE 'Employee Phone List by State' +  
        AT .vRow, 25  
      SET VAR vRow = (.vRow + 1)  
      WRITE .#date AT .vRow, 32  
      WRITE 'Page:', .vPageAT .vRow, 60  
      SET VAR vRow = (.vRow + 2)  
      WRITE 'List of employees in state of:', .VState +  
        AT .vRow, .VCol  
      SET VAR vRow = (.vRow + 1)  
      WRITE '----------------------------------' +  
        AT .vRow, .vCol  
      SET VAR vRow = (.vRow + 1)  
    ENDIF  
    WRITE .vName=21 .vPhone AT .vRow .vCol  
    FETCH c2 INTO vName i1, vPhone i2, vLastname i3  
  ENDWH  
  CLOSE c2  
  SET VAR vRow = (.vRow + 2)  
  WRITE 'Number of employees for', .vState, 'is', +  
    .vCount AT .vRow, 10  
  SET VAR vRow = (.vRow + 3), vCount = 0  
  FETCH c1 INTO vState ii1  
ENDWH  
OUTPUT screen  
DROP CURSOR c1  
DROP CURSOR c2  
SET PAGEMODE OFF  
SET LINES 20  
TYPE phone.out