quinta-feira, 10 de janeiro de 2013

Função - IQAPI_WORD_WRAP


*  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.


*  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
(256TYPE c,
  it_textline 
LIKE TABLE OF vg_textline,
  vg_t1
(256TYPE c,
  vg_t2
(256TYPE c,
  vg_t3
(256TYPE 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
Comentários
0 Comentários

Nenhum comentário:

Postar um comentário