SAP应用界面开发:5)Report List报表开发(2)
报表输出格式的控制(1)表格的制作
SAP Report List 开发中并没有表格的概念,所谓表格实现上是通过多个线条绘制而成。具体的线条输出位置,需要开发人员根据输出报表的大小,字段长短及位置来确定。
1.线条包括横线的竖线,横线的绘制语法可以指定具体位置及长度,默认为当前屏幕宽度。
ULINE AT 3(10). "绘制横线
*SKIP.
SET BLANK LINES ON.
WRITE AT 3(10) SY-ULINE. "绘制横线,两种效果一样
*WRITE AT /3(10) SY-ULINE
2.竖线的输出固定为一个字符的高度,Report List中字符大小是固定的。
WRITE POS SY-VLINE.
DO 3 TIMES.
ULINE AT 1(50).
WRITE: /1 SY-VLINE,50 SY-VLINE."位置1和位置50绘制竖线
ULINE AT /1(50).
ENDDO.
http://www.cnblogs.com/foxting/archive/2012/07/09/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbkAAAC6CAIAAAC81aRlAAAFlklEQVR4nO3Z2W9UdRjH4fPnEBAC9Z/QKMZExaDxUo0GjFHcEqs1xiUaYzTGJUEWMQQTlYIRgRALUhBRrA1al9IOFNpAgbIIXHvRM9PFU74dBDsXz5vnZs55z5nf1SeTthg7f3n15r3DY1d+HjwLQKWir39k9ea9w2cvHxo4A0ClRisv/XhkFIBKE6082H8KgEplK0+cuXTgz5PXauOdxbR54O2r7Cx+6fMptw48vnj680VRFPdu/A9HArieylYeP/P3/j9GmrfvscrMFUWx7NPJm28tm3Rrccdnk1+yo+OmGd5x03P7rulUANdZ2cqh0xe7+4ab1L2yHsoFz3ZPu3jHRxObm569eUoCF3ds6qu4W3/JxGuLZRuaPxXA9Ve28tjoxb2/nWjOh/eXRVvUsWnqrTfvuf/NxsdvOhaUa20LKva7Vy4av9q28pvG4/UEP9Pd9KkAboCylbVT5/f8erwpb9SLNj5LP6hc27uinsIV2z5ZWrbyxY2NhW0vLph+sb5WtK3Y1tyRAG6QeitPnus6PNSUT59uq/wj4+3vV+zMf/q7rsPrby9X7nu9emGo6/B3j5ZtbVwBmHtlKwdPnvu291izXru7spb3vTa+8NUL88vfjC9s6D32be+626Yt9O5plHHazH9qzzWcB+AGKVs5MHJu1y9Hr9n6VZN/Y7Y9svXorl92PzJDB4ti+avjD25tn//vm4va1/+HkwDcCGUr+0fGdvbUZmtr+7y71k6/+N7yMnYL29f11F65a6ZQFkWx/JWe2s6e2rpVS8Y/z1u1u4lvB/jfTbRyx8+1WVrz5Hjjlr/cuLilfV7ZwSUPb6nteHeim2sqdsYf3P3wwkmPzPrbAf5/9VYOj20/VJud3Q8tnOkH45KHOmvbD629dcrHus5JrZz8cWH7x7P9aoC5Ubbyr+GxbT8NzlrXg//K5S3vTL8174muKU9tfr7Rypd+Glz9xJLqNYDWU2/libGvfxwEoFLZyj9PjH11cBCAShOt3HpwAIBK9VYeP7vlhwEAKpWt/P342c4DAwBUKlvZN3Sm8/sBACqVrfz16OnO/UcAqFS28nDt9Ob9/QBUKlvZOzj65b5+ACqVrew5cuqLff0AVJr4P/icHwWgZRV9/SObtn8/euEKADOZaGXPwEkAKmklQKaVAJlWAmRaCZBpJUCmlQCZVgJkWgmQaSVAppUAmVYCZFoJkGklQKaVAJlWAmRaCZBpJUCmlQCZVgJkWgmQaSVAppUAmVYCZFoJkGklQKaVAJlWAmRaCZBpJUCmlQBZMVRMMecHAmhB5e9KAK6i6OsfGb1wBYCr0EqATCsBMq0EyLQSINNKgEwrATKtBMi0EiDTSoBMKwEyrQTItBIgm7GVhTHGtN60YivnPOQAk2klQKaVAJlWAmRaCZBpJUCmlQCZVgJkWgmQaSVAppUAmVYCZFoJkGklQKaVAJlWAmRaCZBpJUCmlQCZVgJkWgmQaSVAppUAmVYCZFoJkGklQKaVAJlWAmRaCZBpJUCmlQBZi7bSGGNabVqxlXN1JoBKWgmQaSVAppUAmVYCZFoJkGklQKaVAJlWAmRaCZBpJUCmlQCZVgJkWgmQaSVAppUAmVYCZFoJkGklQKaVAJlWAmRaCZBpJUCmlQCZVgJkWgmQaSVAppUAmVYCZFoJkGklQNairTTGmFabVmzlXJ0JoJJWAmRaCZBpJUCmlQCZVgJkWgmQaSVAppUAmVYCZFoJkGklQKaVAJlWAmRaCZBpJUCmlQCZVgJkWgmQaSVAppUAmVYCZFoJkGklQKaVAJlWAmRaCZBpJUCmlQCZVgJkWgmQtWgrjTGmpWYuMz1TKwFo0EqATCsBMq0EyLQSINNKgEwrATKtBMi0EiDTSoBMKwEyrQTItBIg00qATCsBsn8ArmFKVoogrZQAAAAASUVORK5CYII=
一个一列三行的表格就绘制完成了。
(2)按钮输出格式
1.SKIP:用于输出空行,其扩展语法如下:
SKIP n:从上行开始创建n个空行。
SKIP TO LINE n:在第n行创建一个空行。
WRITE 'LINE 1'.
SKIP 5.
WRITE 'LINE 5'.
SKIP TO LINE 8.
2.NEW-LINE:用于在Report List中产生换行,但不会产生空行。
3....NO-SCROLLING:锁定其下一行所输出的值,不会随屏幕左右移动,该定义只对语法的下一行有效,主要就用于报表输出中一些关键位的冻结功能。
4....SCROLLING:其下一行所输出的值会随屏幕左右移动。
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附加项中为其预留输出行数。页脚事件块中的输出始终出现在页面下方。
REPORTZZWEI_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'.
页:
[1]