Textos Largos en SapScript

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • shinharold
    Junior Member
    • jun
    • 15

    #1

    Textos Largos en SapScript

    Hola Foro de MUNDOSAP,

    tengo un sapscript, el cual en la pagina principal uno de los recuadros o framebox(POINT2) recibe un texto, que se toma desde la SO10, mediante un include se envia el ID el OBJ, y retorna el texto, cuando es pequeno cabe dentro del framebox, pero el problema es que cuando excede el tamano del recuadro, solo se ve una parte, ahora el cliente quiere que se muestre todo el texto sin importar el tamano del texto.
    se planteo que cuando pasara esto el texto completo se generara en una nueva hoja aparte.
    debido a mi poca experiencia en sapscript, recurro al foro,
    para saber como lo harian ustedes ??

    de antemano gracias
    Editado por última vez por shinharold; 16/12/2009, 18:57:29.
  • shinharold
    Junior Member
    • jun
    • 15

    #2
    ahora es otro el problema

    hice las siguientes modificaciones al sapscript:
    primero en el recuadro del texto cambie la ventana auxiliar por un main, donde esta el siguiente codigo para generar el texto:

    /: POSITION WINDOW
    /: POSITION XORIGIN '+0' CH YORIGIN '+0' LN
    /: SIZE WIDTH '+0' CH HEIGHT '+0' LN
    /: BOX FRAME 10 TW
    PH 2º Descripción de error : <N>&IT_PRINT-QMTXT&</> ,,&VIQMEL-QMTXT&
    /: INCLUDE &IT_PRINT-QMNUM& OBJECT QMEL ID LTQM LANGUAGE 'S'


    genere una segunda ventana donde va la continuacion del texto (en caso que tenga mas de 5 lineas)el problema radica en que esta segunda ventana tiene que llevar el main para poder continuar el texto, y al colocar el main automaticamente se copia el codigo anterior, por lo cual el texto queda al final repetido 2 veces !!.
    intente colocando en la primera pagina el main y en la segunda pagina una ventana normal (WINDOW2), pero de esta forma genera el siguiente error:

    ( Salida en papel continuo o contiene demasiadas
    páginas (>3). )

    crei que ya lo habia solucionado pero nop !!
    alguien puede ayudarme ??? alguno o alguna sabe como evitar que el codigo se repita en el main ??? o alguna alternativa a este problema ??

    de antemano gracias !!!

    shinharold

    Comentario

    • shinharold
      Junior Member
      • jun
      • 15

      #3
      pregunta pregunta

      hola a todos
      alguno me puede colaborar con este codigo, resulta que me dieron una buena opcion para generar los texto pero tengo el siguiente problema.

      coloque este codigo en el programa control


      //////////////////////////////////////////////////////////////////////////

      data: it_texto like standard table of tline with header line,
      v_cont type I. "guarda el resultado del describe it_texto.

      //////////////////////////////////////////////////////////////////////////
      form que llama funcion que trae los datos de la transaccion SO10.
      form textos_so10.

      * LOOP AT IT_PRINT WHERE CHECK = 'X'.
      v_aviso = it_print-qmnum.

      *//FUNCION QUE LEE EL TEXTO DEL SAPSCRIPT.
      call function 'READ_TEXT'
      exporting
      client = sy-mandt
      id = 'LTQM'
      language = sy-langu
      name = v_aviso
      object = 'QMEL'
      * ARCHIVE_HANDLE = 0
      * LOCAL_CAT = ' '
      * IMPORTING
      * HEADER =
      tables
      lines = it_texto
      exceptions
      id = 1
      language = 2
      name = 3
      not_found = 4
      object = 5
      reference_check = 6
      wrong_access_to_archive = 7
      others = 8
      .
      if sy-subrc <> 0.
      message id sy-msgid type sy-msgty number sy-msgno
      with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.

      * ENDLOOP.
      describe table it_texto lines v_cont.

      endform. "TEXTOS_SO10.
      /////////////////////////////////////////////////////////////////////////

      funcion que permite escribir en el formulario los textos.
      se llama despues del (call fuction 'start_form')

      if v_cont > 6.
      loop at it_texto.
      call function 'WRITE_FORM'
      exporting
      element = 'ITEM_LINE' "nombre del elemento
      function = 'APPEND' "opcional, generalmente SET
      type = 'BODY'
      window = 'POINT2-1' "nombre de la ventana
      * IMPORTING
      * PENDING_LINES =
      exceptions
      element = 1
      function = 2
      type = 3
      unopened = 4
      unstarted = 5
      window = 6
      bad_pageformat_for_print = 7
      spool_error = 8
      codepage = 9
      others = 10
      .
      if sy-subrc <> 0.
      message id sy-msgid type sy-msgty number sy-msgno
      with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.



      y en el sapscript realizo el siguiente codigo:

      /E ITEM_LINE
      /: &it_texto-tdlines&

      ahora el problema que se presenta es que a pesar que la variable va cambiando el dato hasta el final del texto, no lo esta imprimiendo completamente solo imprime la ultima linea, y son el APPEND imprime 2 veces la misma linea.

      a alguien le ha pasado algo parecido que me pueda ayudar,
      le quedare eternamente agradecido.....

      shinharold

      Comentario

      Trabajando...