HTML/Javascript en Reporte ABAP

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • karinastolen
    Member
    • mar
    • 60

    #1

    HTML/Javascript en Reporte ABAP

    Hola a todos!, a ver si pueden ayudarme,
    no logro entender porque se dispara dos veces el alert(val), al ejecutar
    el sig. reporte. Probé el codigo HTML en un navegador, y solo muestra el mensaje una vez, como esperaba. Alguna idea?

    Este es el código:

    Código:
    REPORT  Z_JAVASCRIPT_IN_ABAP3.
    
    CLASS lcl_class DEFINITION.
      PUBLIC SECTION.
        METHODS: main, on_html_event FOR EVENT sapevent OF
    cl_gui_html_viewer
        IMPORTING action frame getdata.
      PROTECTED SECTION.
      PRIVATE SECTION.
      DATA ob_ref TYPE REF TO cl_gui_html_viewer.
    ENDCLASS.
    
    CLASS lcl_class IMPLEMENTATION.
      METHOD main.
        DATA ob_lcl TYPE REF TO lcl_class.
        DATA html TYPE w3htmltab.
        DATA url TYPE c LENGTH 255.
        CREATE OBJECT ob_ref
        EXPORTING
          parent = cl_gui_container=>screen0.
        DATA events TYPE cntl_simple_events.
        DATA event TYPE cntl_simple_event.
        event-eventid = ob_ref->m_id_sapevent.
        event-appl_event = 'X'.
        APPEND event TO events.
        CALL METHOD ob_ref->set_registered_events
          EXPORTING
            events = events.
    
        SET HANDLER me->on_html_event FOR ob_ref.
        APPEND '<html>' TO html.
        APPEND '<SCRIPT type="text/javascript">' TO html.
        APPEND 'var val = 0; alert(val); val = val + 1; ' TO html.
        APPEND 'function fn_msg(){' TO html.
        APPEND 'alert("Ciao Mondo! :)"); alert(val);}' TO html.
        APPEND '</SCRIPT>' TO html.
        APPEND '<body bgcolor = "#999999">' TO html.
        APPEND '<font face="arial" size="2">' TO html.
        APPEND '<b> Click button display. </b>' TO html.
        APPEND '<br>' TO html.
        APPEND '</font>' TO html.
        APPEND '<form name= "form1" action="SAPEVENT:save">' TO html.
        APPEND '<br>' TO html.
        APPEND '<input type="button" onclick="fn_msg();" value="Display">'         TO html.
        APPEND '</form>' TO html.
        APPEND '</body>' TO html.
        APPEND '</html>' TO html.
        ob_ref->load_data( IMPORTING assigned_url = url
                           CHANGING data_table = html ).
        ob_ref->show_url( url = url ).
    ENDMETHOD.
    METHOD on_html_event.
      DATA: l_string TYPE string.
      l_string = getdata.
      MESSAGE i001(00) WITH l_string.
    ENDMETHOD.
    
    ENDCLASS.
    
    PARAMETERS: p_dummy TYPE c LENGTH 1.
    
    AT SELECTION-SCREEN OUTPUT.
      DATA: lcl_oref TYPE REF TO lcl_class.
      IF lcl_oref IS NOT BOUND.
        CREATE OBJECT lcl_oref.
        CALL METHOD lcl_oref->main.
      ENDIF.
    Gracias por adelantado!
    Archivos Adjuntos
    "Experience is what you get when you didn't get what you wanted." Randy Pausch
  • DCErick
    Moderator
    • mar
    • 1090

    #2
    Yo hice el siguiente cambio y ya no me sale el primer alert (al ejecutar el programa) ya solo me sale el alert despues de precionar el boton.
    Código:
    *    APPEND 'var val = 0; [B]alert(val); [/B] val = val + 1; ' TO html.
        APPEND 'var val = 0; val = val + 1; ' TO html.
    Probé el codigo HTML en un navegador, y solo muestra el mensaje una vez, como esperaba.
    En mi caso, si me sale 2 veces el Alert :P. Creo que el primer ALERT te lo bloqueo el Explorer que usaste.
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    • karinastolen
      Member
      • mar
      • 60

      #3
      Gracias por la respuesta,

      Con ese cambio estaría eliminando el mensaje, lo que busco es que
      lo muestre solo una vez, tal como funciona en una pagina html
      este mismo código:

      Código:
      <html>
      <SCRIPT type="text/javascript">
      var val = 0; alert(val); val = val + 1;
      function fn_msg(){
      alert("Ciao Mondo! :)"); alert(val);}
      </SCRIPT>
      <body bgcolor = "#999999">
      <font face="arial" size="2">
      <b> Click button to display Javascript mess age-box. </b>
      <br>
      </font>
      <form name= "form1">
      <br>
      <input type="button" onclick="fn_msg();" value="Display">
      </form>
      </body>
      </html>
      No comprendo porque lo muestra dos veces :S
      "Experience is what you get when you didn't get what you wanted." Randy Pausch

      Comentario

      • DCErick
        Moderator
        • mar
        • 1090

        #4
        A que te refieres con 2 veces?

        Yo pongo el script en un html y me sale lo siguiente:

        1.-Al cargar la página PopUp con texto "0".
        2.-Click al boton
        3.-PopUp con texto "Ciao Mondo! "
        4.-PopUp con texto "1"

        Y es lo mismo para ABAP

        1.-Al cargar el programa (F8) PopUp con texto "0".
        2.-Click al boton
        3.-PopUp con texto "Ciao Mondo! "
        4.-PopUp con texto "1"

        Como es que te sale a tí?
        -------------------
        ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

        Comentario

        • DCErick
          Moderator
          • mar
          • 1090

          #5
          Ah!!! Ya ví la imagen . No pues a mí solo me sale 1 popup. Mas triste tu caso dificil ayudarte si no puedo replicar el error .

          Tengo SAPGUi 720
          Nivel de Patch 8
          -------------------
          ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

          Comentario

          • karinastolen
            Member
            • mar
            • 60

            #6
            Gracias de nuevo por el seguimiento =), pues si esta raro, en teoría debería funcionar, bueno, al menos se que a ti te funciona como espero :P

            Tengo también esa version de SAP GUI,
            es un servidor de pruebas, donde puedo ver el nivel de patch?
            Editado por última vez por karinastolen; 04/01/2012, 15:34:30.
            "Experience is what you get when you didn't get what you wanted." Randy Pausch

            Comentario

            • DCErick
              Moderator
              • mar
              • 1090

              #7
              Originalmente publicado por karinastolen
              Gracias de nuevo por el seguimiento =), pues si esta raro, en teoría debería funcionar, bueno, al menos se que a ti te funciona como espero :P

              Tengo también esa version de SAP GUI,
              es un servidor de pruebas, donde puedo ver el nivel de patch?
              Ojo que yo te pasé los datos de mi SAPGui (SAP Logon) no de la versión de SAP instalada xD. Yo tengo SAP ECC 6.0

              waaa lo editaste :P.

              Al abrir tu SAPLogon, a un lado del título de la ventana hay un cuadrito le picas y le seleccionas la opcion Acerca de SAP Logon
              -------------------
              ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

              Comentario

              • karinastolen
                Member
                • mar
                • 60

                #8
                Ah ya encontré como hacerlo, seguí estos pasos:
                How to determine SAP GUI version installed on your client PC and know the patch level of your SAP GUI installation using SAPLOGON or SAPLOGONPAD application


                Pues el nivel de patch es 0

                Tal vez se debe a eso, aún sigo con la incógnita
                "Experience is what you get when you didn't get what you wanted." Randy Pausch

                Comentario

                • DCErick
                  Moderator
                  • mar
                  • 1090

                  #9
                  Originalmente publicado por karinastolen
                  Ah ya encontré como hacerlo, seguí estos pasos:
                  How to determine SAP GUI version installed on your client PC and know the patch level of your SAP GUI installation using SAPLOGON or SAPLOGONPAD application


                  Pues el nivel de patch es 0

                  Tal vez se debe a eso, aún sigo con la incógnita
                  Pues actualizalo y pruebas jejeje.
                  -------------------
                  ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                  Comentario

                  • karinastolen
                    Member
                    • mar
                    • 60

                    #10
                    Como lo actualizo?
                    "Experience is what you get when you didn't get what you wanted." Randy Pausch

                    Comentario

                    • DCErick
                      Moderator
                      • mar
                      • 1090

                      #11
                      Originalmente publicado por karinastolen
                      Como lo actualizo?
                      Poe hay que bajarlo del market place . O buscalo en google para ver si alguien ya lo subio a rapidshare o uno de esos servidores de pirateria instantanea descarga jejeje.
                      -------------------
                      ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                      Comentario

                      Trabajando...