且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SAP应用界面开发:5)Report List报表开发(2)

更新时间:2022-08-16 19:47:57

  报表输出格式的控制

      (1)表格的制作
      
SAP Report List 开发中并没有表格的概念,所谓表格实现上是通过多个线条绘制而成。具体的线条输出位置,需要开发人员根据输出报表的大小,字段长短及位置来确定。
  1.线条包括横线的竖线,横线的绘制语法可以指定具体位置及长度,默认为当前屏幕宽度。
      [For Example]

   ULINE AT 3(10). "绘制横线
   *SKIP.
   SET BLANK LINES ON.
   WRITE AT 3(10) SY-ULINE. "绘制横线,两种效果一样 

   *WRITE AT /3(10) SY-ULINE

   2.竖线的输出固定为一个字符的高度,Report List中字符大小是固定的。
   [Syntax]
   WRITE POS SY-VLINE.
  
[For Example]

   DO TIMES.
    ULINE AT 1(50).
    WRITE: /1 SY-VLINE,50 SY-VLINE.  "位置1和位置50绘制竖线
    ULINE AT /1(50).
   ENDDO.
   [Rendering]
   SAP应用界面开发:5)Report List报表开发(2)
   一个一列三行的表格就绘制完成了。

   (2)按钮输出格式
    1.SKIP:
用于输出空行,其扩展语法如下:
    SKIP n:从上行开始创建n个空行。
    SKIP TO LINE n:在第n行创建一个空行。
    [For Example]

    WRITE 'LINE 1'.
    SKIP 5.
    WRITE 'LINE 5'.
    SKIP TO LINE 8.

    2.NEW-LINE:用于在Report List中产生换行,但不会产生空行。  

    3....NO-SCROLLING:锁定其下一行所输出的值,不会随屏幕左右移动,该定义只对语法的下一行有效,主要就用于报表输出中一些关键位的冻结功能。

    4....SCROLLING:其下一行所输出的值会随屏幕左右移动。
    [For Example]

    NEW-PAGE LINE-SIZE 255.
    WRITE: / 'This line will be moved'.
    NEW-LINE NO-SCROLLING.
    WRITE: / 'This Line will not be moved'"該行輸出值被鎖定,不會隨屏幕左右移動。
    WRITE: / 'This line will be moved'.

    5.NEW-PAGE:对输出报表进行分页,其扩展语法如下:
    ...NO-TITLE:
新的分页中不会有标题、日期、页码。
    ...WITH-TITLE:新的分页中继承首页的标题、日期、页码。
    ...NO-HEADING:在该报表的新分页中不会产生表头。
    ...WITH-HEADING:输出的新页中继承首页的COLUMN HEADING。
    ...LINE-COUNT lin:设置新页的行数。
    ...LINE-SIZE col:设置新页的宽度。

    6.TOP-OF-PAGE:该语法用于定义动态页眉,在所有的页面首行显示出来。

    7.END-OF-PAGE:该语法用于定义动态页脚,要触发该事件,需要在Report语句的LINE-COUNT附加项中为其预留输出行数。页脚事件块中的输出始终出现在页面下方。
    [For Example]

    REPORT  ZZWEI_REPORT_LIST LINE-SIZE 300 LINE-COUNT 12(6) NO STANDARD PAGE HEADING.

    START-OF-SELECTION.
      WRITE: / 'NAME:'10 'TOM',
             / 'AGE:',23,
             / 'Sex','Male',
             / 'ADDRESS:','BEIJING'.

    NEW-PAGE NO-HEADING NO-TITLE.
      WRITE: / 'NAME:'10 'JERY',
             / 'AGE:',25,
             / 'Sex','FeMale',
            / 'ADDRESS:','SHENZHEN'.
    *SET BLANK LINES ON.


    TOP-OF-PAGE.
      WRITE: / 'Current Page:',SYST-PAGNO.
      ULINE.

    END-OF-PAGE.
     ULINE.
     WRITE: /'THIS THE END'.