* Eae Pessoal, Tudo bem, me perguntaram por email porque um texto que
* ele tava passando no Smartforms só estava aparecendo somente os
* primeiros 52 caractéres, informei pra ele que era por causa do tamanho
* do frame.
* ele tava passando no Smartforms só estava aparecendo somente os
* primeiros 52 caractéres, informei pra ele que era por causa do tamanho
* do frame.
* Entendido o porque acontecia isso a mesma pessoa informou que não
* poderia mudar a dimenção da linha com a informação do texto, mas mesmo
* assim deveria mostrar toda a informação, pra isso existe uma função
* que quebra o texto conforme o tamanho necessário e joga a informação
* dentro de uma tabela, a função abaixo pode ser usado pra várias coisas.
* Valeo a dica Caroline Vaz, e continuem mandando suas dúvidas.
REPORT z_quebra_texto.DATA :
vg_textline(256) TYPE c,
it_textline LIKE TABLE OF vg_textline,
vg_t1(256) TYPE c,
vg_t2(256) TYPE c,
vg_t3(256) TYPE c
.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
p_outp TYPE i,
p_deli TYPE c AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b1.START-OF-SELECTION.
BREAK-POINT.
PERFORM z_cria_tabela.
PERFORM z_mostra_dados_tabela.
*& Form z_cria_tabela
*&---------------------------------------------------------------------*
FORM z_cria_tabela .
CONCATENATE 'Um teste de texto onde contenha caractéres'
'suficiente para ser quebrado pela função e '
'sim ver que ela funciona'
INTO vg_textline
SEPARATED BY space.* Caso não seja informado o parametro OUTPUTLEN, a função usará 35 carac
* como default.
CALL FUNCTION 'IQAPI_WORD_WRAP'
EXPORTING
textline = vg_textline " Texto a ser quebrado
delimiter = p_deli " Delimita as palavras
outputlen = p_outp " Tamanho limite da linha
IMPORTING
out_line1 = vg_t1 " Linha1 com tamanho default
out_line2 = vg_t2 " Linha2 com tamanho default
out_line3 = vg_t3 " Linha3 com tamanho default
TABLES
out_lines = it_textline " Tabela com as informações
EXCEPTIONS
outputlen_too_large = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " z_cria_tabela
*&---------------------------------------------------------------------*
*& Form z_mostra_dados_tabela
*&---------------------------------------------------------------------*
FORM z_mostra_dados_tabela .
LOOP AT it_textline INTO vg_textline.
WRITE vg_textline.
CLEAR vg_textline.
ENDLOOP.
ENDFORM. " z_mostra_dados_tabela