ITPUB论坛 » SAP R/3 » 系统开发及跨应用设置 » WRITE显示中 如何自动换行?
新一届的微软MVP评选已经开始,欢迎各位推荐!
2008-6-28 12:11 z7253514
WRITE显示中 如何自动换行?

各位大侠,如何在WRITE输出显示中,实现数据的自动换行?
例如100CHAR的数据,输出时分2行显示,可以节约输出的宽度。

2008-6-28 15:29 rosefish
SE38显示程序代码时,把光标放在REPORT关键字上,按F1

2008-6-28 21:03 ryq0000
列宽度设一下应该就可以了吧

2008-6-28 23:35 z7253514
补充下,我是输出若干个字段,其中对个别字段需要这种自动换行的功能,定义REPORT的长度仅仅是针对整个REPORT的长度吧。。

2008-6-29 15:08 ryq0000
[quote]原帖由 [i]z7253514[/i] 于 2008-6-28 23:35 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10799633&ptid=1013200][img]http://www.itpub.net/images/common/back.gif[/img][/url]
补充下,我是输出若干个字段,其中对个别字段需要这种自动换行的功能,定义REPORT的长度仅仅是针对整个REPORT的长度吧。。 [/quote]
这样啊,就没做过了。
不知道那个字段中加个回车符在里面行不行,没试过,楼主可以试下。

2008-6-30 16:30 dreamgift
LEN = STRLEN(STR).
IF LEN > 50.
  WRITE: 010 STR+0(50),
               /
               010 STR+50(LEN).
ELSE.
  WRITE 010 STR.
ENDIF.

不知道这样行不   LZ可以试试.

2008-6-30 19:21 ryq0000
[quote]原帖由 [i]dreamgift[/i] 于 2008-6-30 16:30 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10811931&ptid=1013200][img]http://www.itpub.net/images/common/back.gif[/img][/url]
LEN = STRLEN(STR).
IF LEN > 50.
  WRITE: 010 STR+0(50),
               /
               010 STR+50(LEN).
ELSE.
  WRITE 010 STR.
ENDIF.

不知道这样行不   LZ可以试试. [/quote]

/是什么意思?明天上班试试

2008-6-30 22:47 sorrowlich
[quote]原帖由 [i]ryq0000[/i] 于 2008-6-30 19:21 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10813110&ptid=1013200][img]http://www.itpub.net/images/common/back.gif[/img][/url]


/是什么意思?明天上班试试 [/quote]
:hit: :hit: :hit:

2008-7-1 10:27 ryq0000
[quote]原帖由 [i]sorrowlich[/i] 于 2008-6-30 22:47 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10814436&ptid=1013200][img]http://www.itpub.net/images/common/back.gif[/img][/url]

:hit: :hit: :hit: [/quote]
晕,糊涂了,这种换行也行?估计不行吧.

2008-7-1 11:32 ryq0000
这种方法不对,试了.

2008-7-2 13:32 dreamgift
[code]REPORT ZZTEST021.

TYPES: BEGIN OF TYP,
         A(10),
         B TYPE I,
       END   OF TYP.

DATA: TBL TYPE STANDARD TABLE OF TYP WITH KEY A WITH HEADER LINE.
DATA WORK_LINES TYPE I.
TBL-A = 'ABCDEFGHIJ'.
TBL-B = 1.
APPEND TBL.
TBL-A = 'A'.
TBL-B = 2.
APPEND TBL.
TBL-A = 'ABCDEFGHIJ'.
TBL-B = 3.
APPEND TBL.
TBL-A = 'B'.
TBL-B = 1.
APPEND TBL.
TBL-A = 'B'.
TBL-B = 2.
APPEND TBL.

LOOP AT TBL INTO TBL.
  WORK_LINES = STRLEN( TBL-A ).
  IF WORK_LINES > 5.
    WORK_LINES = WORK_LINES - 5.
    WRITE: /010 TBL-A+0(5),
            020 TBL-B,
           /010 TBL-A+5(WORK_LINES).
  ELSE.
    WRITE: /010 TBL-A,
            020 TBL-B.
  ENDIF.
ENDLOOP.[/code]结果:
ZZTEST021

         ABCDE              1
         FGHIJ
         A                  2
         ABCDE              3
         FGHIJ
         B                  1
         B                  2

2008-7-2 15:46 ryq0000
楼上的可以,我测试的时候咱就不行了呢,奇怪了.

2008-7-2 17:19 dreamgift
汗..  那就不晓得了!

2008-7-2 17:34 tieshou444
学学大家的思想

2008-7-22 11:20 ping4482000
諸君大德,
  
   在SAP的報表中, 用write的方式產生的報表, 不可能可以自動換行, 通常都是自行寫程式的, 因為SAP的輸出是一行一行的輸出, 所以通常這樣寫法:

loop at itab.

   write:/001 itab-matnr,
             020 itab-maktx+0(30),
             050 itab-meins,
             056 itab-labst unit itab-meins,
            /020 itab-maktx+31(20).
endloop.

讓料號說明分成兩行輸出, 自己做點手工業吧,

页: [1]


Powered by ITPUB论坛