Segundo Día con SAP

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • BluehScouth
    Junior Member
    • may
    • 13

    #1

    Segundo Día con SAP

    Buenos día he comenzado desde el día de ayer con el mundo de SAP.

    ya se como crear una tabla en S11,Datos sin Dominio y datos con Dominio,Actualizarla en el sistema para después poder actualizar los datos desde SM30 y he hecho un pequeño programa para obtener datos con un select...ahora el siguiente paso seria hacer un mantenimiento en un report ya que se que hay una funcion para hacerlo automaticamente pero me interesa hacerlo desde el report y que me liste los datos en un ALV...es un poco dificil encontrar ejemplos...

    Para los que quieren comenzar esto es lo que tengo...


    Código:
    REPORT  Z_PROGRAMA_PRUEBA.
    
    ***************************************************
    * DECLARACION DE DATOS
    ***************************************************
    data wa_flights like ZTABLA_PRUEBA.
    parameters pa_carr like ZTABLA_PRUEBA-cod_empl.
    ***************************************************
    * LOGICA DEL PROGRAMA
    ***************************************************
    * Selección de datos
    
    select cod_empl nomb_ape std_com
    from ZTABLA_PRUEBA
    into corresponding fields of wa_flights
      where cod_empl = pa_carr.
    * salida de datos
    write:/ wa_flights-cod_empl , 
    wa_flights-nomb_ape , 
    wa_flights-std_com.
    
    endselect.
    Saludos!
  • fa.luis
    Member
    • ene
    • 66

    #2
    Hola,
    Hice este ALV para ti muy rapido, es de tipo reporte, si lo corres en tu ambiente incluso de desarrollo te mostrara un ALV con 3 columnas y datos, no puse Top include para asi poder ejemplificar de manera mas simple, correlo y dime si tienes alguna duda. Saludos
    Código:
    *&---------------------------------------------------------------------*
    *& Report  ZEJEMPLOALV
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*
    
    REPORT  ZEJEMPLOALV.
    
     types:     BEGIN OF TY_ALV,
              CARRID TYPE  SFLIGHT-CARRID,
              PRICE TYPE SFLIGHT-PRICE,
              SEATMAX TYPE SFLIGHT-SEATSMAX,
            END OF TY_ALV.
    
    
    DATA WA_ALV TYPE TY_ALV. "Creamos la workarea
    DATA TI_ALV TYPE STANDARD TABLE OF TY_ALV.
    
    
    SELECT  CARRID
            PRICE
            SEATSMAX
      FROM SFLIGHT
      INTO CORRESPONDING FIELDS OF TABLE TI_ALV
      WHERE CARRID EQ 'AA'.
    
    
    
    
        TYPE-POOLS: SLIS.
        DATA: t_fieldcat TYPE slis_t_fieldcat_alv.
        DATA: i_layout TYPE slis_layout_alv.
        DATA: wa_fieldcat TYPE slis_fieldcat_alv.
    
        CLEAR wa_fieldcat.
        wa_fieldcat-fieldname = 'CARRID'. " NOMBRE CAMPO
        wa_fieldcat-tabname = 'IT_ALV'. " NOMBRE DE NUESTRA  TABLA
        wa_fieldcat-seltext_s = 'ID'. " NOMBRE DEL CAMPO CORTO
        wa_fieldcat-seltext_m = 'ID'. " NOMBRE DEL CAMPO MEDIO
        wa_fieldcat-seltext_l = 'ID'. " NOMBRE DEL CAMPO LARGO
        APPEND wa_fieldcat TO t_fieldcat.
    
        CLEAR wa_fieldcat.
        wa_fieldcat-fieldname = 'PRICE'.
        wa_fieldcat-tabname = 'IT_ALV'.
        wa_fieldcat-seltext_s = 'PRECIO'.
        wa_fieldcat-seltext_m = 'PRICE'.
        wa_fieldcat-seltext_l = 'PRECIO VUELO'.
        APPEND wa_fieldcat TO t_fieldcat.
    
    
    
        CLEAR wa_fieldcat.
        wa_fieldcat-fieldname = 'SEATMAX'.
        wa_fieldcat-tabname = 'IT_ALV'.
        wa_fieldcat-seltext_s = 'Asientos'.
        wa_fieldcat-seltext_m = 'ASIENTOS MAXIMOS'.
        wa_fieldcat-seltext_l = 'Numero maximo asientos'.
        APPEND wa_fieldcat TO t_fieldcat.
    
    
    
    
    
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            I_CALLBACK_PROGRAM = sy-repid
            IS_LAYOUT          = I_LAYOUT
            I_SAVE             = 'A'
            it_fieldcat        = t_fieldcat
          TABLES
            T_OUTTAB           = TI_ALV.

    Comentario

    • ximena251
      Member
      • nov
      • 54

      #3
      Originalmente publicado por BluehScouth
      Buenos día he comenzado desde el día de ayer con el mundo de SAP.

      ya se como crear una tabla en S11,Datos sin Dominio y datos con Dominio,Actualizarla en el sistema para después poder actualizar los datos desde SM30 y he hecho un pequeño programa para obtener datos con un select...ahora el siguiente paso seria hacer un mantenimiento en un report ya que se que hay una funcion para hacerlo automaticamente pero me interesa hacerlo desde el report y que me liste los datos en un ALV...es un poco dificil encontrar ejemplos...

      Para los que quieren comenzar esto es lo que tengo...


      REPORT Z_PROGRAMA_PRUEBA.

      ************************************************** *
      * DECLARACION DE DATOS
      ************************************************** *
      data wa_flights like ZTABLA_PRUEBA.
      parameters pa_carr like ZTABLA_PRUEBA-cod_empl.
      ************************************************** *
      * LOGICA DEL PROGRAMA
      ************************************************** *
      * Selección de datos

      select cod_empl nomb_ape std_com
      from ZTABLA_PRUEBA
      into corresponding fields of wa_flights
      where cod_empl = pa_carr.
      * salida de datos
      write:/ wa_flights-cod_empl ,
      wa_flights-nomb_ape ,
      wa_flights-std_com.

      endselect.

      Saludos!
      Qué tiene tú tabla ztablaprueba quizá así podamos ayudarte mejor...
      Los escritores somos seres heridos por ello creamos otra realidad

      Comentario

      • BluehScouth
        Junior Member
        • may
        • 13

        #4
        Originalmente publicado por ximena251
        Qué tiene tú tabla ztablaprueba quizá así podamos ayudarte mejor...
        Es una tabla muy basica solo tiene tres campos cod_empl, nomb_emp , std_emp(con dominio - Rango Activo - Inactivo)

        El unico problema es que nose como llamar digamos a la sentencia select o insert desde un botton algo asi como el action performed..

        Comentario

        • BluehScouth
          Junior Member
          • may
          • 13

          #5
          Originalmente publicado por fa.luis
          Hola,
          Hice este ALV para ti muy rapido, es de tipo reporte, si lo corres en tu ambiente incluso de desarrollo te mostrara un ALV con 3 columnas y datos, no puse Top include para asi poder ejemplificar de manera mas simple, correlo y dime si tienes alguna duda. Saludos

          disculpa olvide darte las gracias amigo luis en cuento lo pruebe te digo como me fue.

          Saludos!

          Comentario

          • ximena251
            Member
            • nov
            • 54

            #6
            Originalmente publicado por BluehScouth
            Es una tabla muy basica solo tiene tres campos cod_empl, nomb_emp , std_emp(con dominio - Rango Activo - Inactivo)

            El unico problema es que nose como llamar digamos a la sentencia select o insert desde un botton algo asi como el action performed..

            REPORT Z_ALV_2B.
            TABLES: ZTABLA_PRUEBA

            DATA :

            TYPES: BEGIN OF tt_salida,
            cod_empl type ztabla_prueba-cod_empl
            nomb_emp type ztabla_prueba-nom_emp
            std_emp type ztabla_prueba-std_emp
            (aquí le puedes agregar los campos que quieras mostrar en el ALV)
            END OF tt_salida.


            DATA: BEGIN OF gt_prueba OCCURS 0,
            cod_empl type ztabla_prueba-cod_empl
            nomb_emp type ztabla_prueba-nom_emp
            std_emp type ztabla_prueba-std_emp
            END OF gt_prueba


            DATA: gt_salida TYPE STANDARD TABLE OF tt_salida,
            wa_salida TYPE tt_salida,
            gt_prueba TYPE STANDARD TABLE OF tt_salida,
            wa_prueba TYPE tt_salida,

            lv_columns TYPE REF TO cl_salv_columns_table,
            lv_column TYPE REF TO cl_salv_column,
            lv_alv_object TYPE REF TO cl_salv_table,
            g_functions TYPE REF TO cl_salv_functions,
            gr_display type ref to cl_salv_display_settings.







            Clear:
            gt_prueba[],
            gt_salida[].

            SELECT

            cod_empl
            nomb_emp
            std_emp
            FROM ztabla_prueba
            INTO CORRESPONDING FIELDS OF TABLE gt_prueba
            WHERE cod_empl = 'valor' and nomb = 'valor2'.

            IF gt_salida[] IS NOT INITIAL.

            "CL_SALV_TABLE. Con ella podemos contruirnos un informe con tan solo llamar a un método el factory y luego al displa
            cl_salv_table=>factory(
            IMPORTING
            r_salv_table = lv_alv_object
            CHANGING
            t_table = gt_salida
            ).

            g_functions = lv_alv_object->get_functions( ).
            g_functions->set_all( abap_true ).

            lv_columns = lv_alv_object->get_columns( ).
            lv_columns->set_optimize( 'X' ).

            gr_display = lv_alv_object->get_display_settings( ).
            gr_display->set_striped_pattern( cl_salv_display_settings=>true ).
            gr_display->set_list_header( 'alv prueba' ).


            ** Visualizamos el ALV
            lv_alv_object->display( ).
            ELSE.
            MESSAGE 'No tiene datos'

            ENDIF.
            Los escritores somos seres heridos por ello creamos otra realidad

            Comentario

            Trabajando...