Alv...inspeccion De Materiales

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • marilinmendoza
    Junior Member
    • may
    • 17

    #1

    Alv...inspeccion De Materiales

    Hola a todos.
    Tengo el siguiente codigo ( esta completo para el que quiera copiar y
    pegar para probarlo)


    TABLES: mapl,
    makt,
    plmk,
    qpac,
    qpcd.

    TYPES: BEGIN OF ti_datos,

    matnr LIKE mapl-matnr,
    maktx LIKE makt-maktx,
    plnty LIKE mapl-plnty,
    plnnr LIKE mapl-plnnr,
    code LIKE qpac-code,
    codegruppe LIKE qpac-codegruppe,
    verwmerkm LIKE plmk-verwmerkm,
    kurztext LIKE plmk-kurztext,
    toleranzob LIKE plmk-pruefeinh,
    toleranzun LIKE plmk-pruefeinh,
    sollwert LIKE plmk-pruefeinh,
    toleranzob_text LIKE plmk-kurztext,
    toleranzun_text LIKE plmk-kurztext,
    sollwert_text LIKE plmk-kurztext,
    katab1 LIKE plmk-katab1,

    END OF ti_datos.

    DATA : datos TYPE TABLE OF ti_datos WITH HEADER LINE.
    DATA : code LIKE qpac-code,
    kurztext LIKE plmk-kurztext.

    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

    SELECT-OPTIONS: s_mate FOR mapl-matnr OBLIGATORY.

    SELECTION-SCREEN END OF BLOCK b1.

    TYPE-POOLS: slis.

    DATA: w_layout TYPE slis_layout_ alv.

    DATA: i_fieldcat TYPE slis_t_fieldcat_ alv,
    w_fieldcat TYPE slis_fieldcat_ alv.

    DATA: i_sort TYPE TABLE OF slis_sortinfo_ alv,
    w_sort TYPE slis_sortinfo_ alv.

    DATA: i_events TYPE slis_t_event,
    w_events TYPE slis_alv_event.

    DATA: report LIKE sy-repid.

    DATA: i_list_comments TYPE slis_t_listheader,
    w_list_comments LIKE LINE OF i_list_comments.

    DATA: w_disvariant TYPE disvariant,
    w_es_variant LIKE disvariant,
    w_variant_exit( 1) TYPE c.
    INITIALIZATION.
    report = sy-repid.

    START-OF-SELECTION.

    PERFORM cargar_datos .

    END-OF-SELECTION.

    PERFORM do_alv.

    *&---------- --------- --------- --------- --------- --------- ---
    -*
    *& FORM cargar_datos
    *&---------- --------- --------- --------- --------- --------- ---
    -*
    * text
    *----------- --------- --------- --------- --------- --------- --
    -*
    * --> p1 text
    * <-- p2 text
    *----------- --------- --------- --------- --------- --------- --
    -*
    FORM cargar_datos.

    SELECT matnr plnty plnnr
    FROM mapl
    INTO CORRESPONDING FIELDS OF TABLE datos
    WHERE matnr IN s_mate AND
    plnal EQ '01' AND
    loekz NE 'X'.

    IF sy-subrc = 0.

    LOOP AT datos.

    SELECT SINGLE matnr maktx
    FROM makt
    INTO CORRESPONDING FIELDS OF datos
    WHERE matnr EQ datos-matnr AND
    spras EQ 'S'.

    SELECT SINGLE codegruppe code
    FROM qpac
    INTO (datos-codegruppe, datos-code)
    WHERE bewertung = 'A'.

    SELECT SINGLE verwmerkm kurztext toleranzob toleranzun sollwert
    katab1
    FROM plmk
    INTO CORRESPONDING FIELDS OF datos
    WHERE plnnr = datos-plnnr AND
    plnty = datos-plnty AND
    loekz NE 'X'.

    MOVE datos-toleranzob TO datos-toleranzob_ text.
    MOVE datos-toleranzun TO datos-toleranzun_ text.
    MOVE datos-sollwert TO datos-sollwert_ text.

    MODIFY datos.

    ENDLOOP.

    LOOP AT datos.

    IF datos-katab1 EQ 'X'.

    datos-toleranzob_ text = '---'.
    datos-toleranzun_ text = '---'.

    SELECT SINGLE code FROM qpac INTO code
    WHERE codegruppe EQ datos-verwmerkm AND
    bewertung EQ 'A'.

    SELECT SINGLE kurztext FROM qpct INTO kurztext
    WHERE code EQ code AND
    codegruppe EQ datos-verwmerkm.
    datos-sollwert_ text = kurztext.

    MODIFY datos.

    ENDIF.

    ENDLOOP.

    ENDIF.

    ENDFORM. " cargar_datos

    *&---------- --------- --------- --------- --------- --------- ---
    -*
    *& Form do_alv
    *&---------- --------- --------- --------- --------- --------- ---
    -*
    * text
    *----------- --------- --------- --------- --------- --------- --
    -*
    * --> p1 text
    * <-- p2 text
    *----------- --------- --------- --------- --------- --------- --
    -*
    FORM do_alv .
    PERFORM do_layout.
    PERFORM do_fieldcat.
    PERFORM do_events.
    * PERFORM do_sort.
    PERFORM call_alv.
    ENDFORM. " do_alv

    *&---------- --------- --------- --------- --------- --------- ---
    -*
    *& Form do_layout
    *&---------- --------- --------- --------- --------- --------- ---
    -*
    * text
    *----------- --------- --------- --------- --------- --------- --
    -*
    * --> p1 text
    * <-- p2 text
    *----------- --------- --------- --------- --------- --------- --
    -*
    FORM do_layout .
    CLEAR w_layout.
    w_layout-zebra = 'X'. "striped pattern
    w_layout-colwidth_ optimize = 'X'.
    ENDFORM. " do_layout

    *&---------- --------- --------- --------- --------- --------- ---
    -*
    *& Form do_fieldcat
    *&---------- --------- --------- --------- --------- --------- ---
    -*
    * text
    *----------- --------- --------- --------- --------- --------- --
    -*
    * --> p1 text
    * <-- p2 text
    *----------- --------- --------- --------- --------- --------- --
    -*
    FORM do_fieldcat .

    REFRESH: i_fieldcat.
    CLEAR w_fieldcat.

    CLEAR w_fieldcat.
    w_fieldcat-fieldnam e = 'MATNR'.
    w_fieldcat-tabname = 'DATOS'.
    w_fieldcat-seltext_ l = 'Material'.
    w_fieldcat-outputle n = '12'.
    w_fieldcat-no_ zero = 'X'.
    APPEND w_fieldcat TO i_fieldcat.

    CLEAR w_fieldcat.
    w_fieldcat-fieldnam e = 'MAKTX'.
    w_fieldcat-tabname = 'DATOS'.
    w_fieldcat-seltext_ l = 'Descripción' .
    w_fieldcat-outputle n = '50'.
    APPEND w_fieldcat TO i_fieldcat.

    CLEAR w_fieldcat.
    w_fieldcat-fieldnam e = 'VERWMERKM'.
    w_fieldcat-tabname = 'DATOS'.
    w_fieldcat-seltext_ l = 'Características de Inspección'.
    w_fieldcat-outputle n = '12'.
    APPEND w_fieldcat TO i_fieldcat.

    CLEAR w_fieldcat.
    w_fieldcat-fieldnam e = 'KURZTEXT'.
    w_fieldcat-tabname = 'DATOS'.
    w_fieldcat-seltext_ l = 'Texto Breve de Características' .
    w_fieldcat-outputle n = '50'.
    APPEND w_fieldcat TO i_fieldcat.

    CLEAR w_fieldcat.
    w_fieldcat-fieldnam e = 'TOLERANZOB_ TEXT'.
    w_fieldcat-tabname = 'DATOS'.
    w_fieldcat-seltext_ l = 'Límite Superior'.
    w_fieldcat-outputle n = '6'.
    w_fieldcat-decimals _out = '2'.
    APPEND w_fieldcat TO i_fieldcat.

    CLEAR w_fieldcat.
    w_fieldcat-fieldnam e = 'TOLERANZUN_ TEXT'.
    w_fieldcat-tabname = 'DATOS'.
    w_fieldcat-seltext_ l = 'Límite Inferior'.
    w_fieldcat-outputle n = '6'.
    w_fieldcat-decimals _out = '2'.
    APPEND w_fieldcat TO i_fieldcat.

    CLEAR w_fieldcat.
    w_fieldcat-fieldnam e = 'SOLLWERT_TEXT' .
    w_fieldcat-tabname = 'DATOS'.
    w_fieldcat-seltext_ l = 'Valor Teórico'.
    w_fieldcat-outputle n = '12'.
    w_fieldcat-decimals _out = '2'.
    APPEND w_fieldcat TO i_fieldcat.

    ENDFORM. " do_fieldcat

    *&---------- --------- --------- --------- --------- --------- ---
    -*
    *& Form do_events
    *&---------- --------- --------- --------- --------- --------- ---
    -*
    * text
    *----------- --------- --------- --------- --------- --------- --
    -*
    * --> p1 text
    * <-- p2 text
    *----------- --------- --------- --------- --------- --------- --
    -*
    FORM do_events .
    REFRESH i_events.

    CALL FUNCTION 'REUSE_ALV_EVENTS_ GET'
    EXPORTING
    i_list_type = 0
    IMPORTING
    et_events = i_events
    EXCEPTIONS
    list_type_wrong = 1
    OTHERS = 2.

    CLEAR w_events.
    READ TABLE i_events INTO w_events WITH KEY name =
    slis_ev_top_ of_page.

    IF sy-subrc = 0.
    MOVE 'MI_TOP_OF_PAGE' TO w_events-form.
    MODIFY i_events FROM w_events INDEX sy-tabix.
    ENDIF.

    ENDFORM. "do_events*

    *&---------- --------- --------- --------- --------- --------- ---
    -
    *
    *& Form do_sort
    *&---------- --------- --------- --------- --------- --------- ---
    -
    *
    * text
    *----------- --------- --------- --------- --------- --------- --
    -
    *
    * --> p1 text
    * <-- p2 text
    *----------- --------- --------- --------- --------- --------- --
    -
    *
    FORM do_sort .
    CLEAR w_sort.
    REFRESH i_sort.

    w_sort-spos = '1'.
    w_sort-fieldname = 'MATNR'.
    w_sort-tabname = 'DATOS'.
    w_sort-up = 'X'.
    w_sort-subtot = 'X'.

    APPEND w_sort TO i_sort.

    ENDFORM. " do_sort

    *&---------- --------- --------- --------- --------- --------- ---
    -*
    *& Form call_alv
    *&---------- --------- --------- --------- --------- --------- ---
    -*
    * text
    *----------- --------- --------- --------- --------- --------- --
    -*
    * --> p1 text
    * <-- p2 text
    *----------- --------- --------- --------- --------- --------- --
    -*
    FORM call_alv .
    CALL FUNCTION 'REUSE_ALV_GRID_ DISPLAY'
    EXPORTING
    * I_INTERFACE_ CHECK = ' '
    * I_BYPASSING_ BUFFER = ' '
    * I_BUFFER_ACTIVE = ' '
    i_callback_program = report
    * I_CALLBACK_PF_ STATUS_SET = ' '
    * I_CALLBACK_USER_ COMMAND = ' '
    * I_CALLBACK_TOP_ OF_PAGE = ' '
    * I_CALLBACK_HTML_ TOP_OF_PAGE = ' '
    * I_CALLBACK_HTML_ END_OF_LIST = ' '
    * I_STRUCTURE_ NAME =
    * I_BACKGROUND_ ID = ' '
    * I_GRID_TITLE =
    * I_GRID_SETTINGS =
    is_layout = w_layout
    it_fieldcat = i_fieldcat
    * IT_EXCLUDING =
    * IT_SPECIAL_GROUPS =
    it_sort = i_sort
    * IT_FILTER =
    * IS_SEL_HIDE =
    * I_DEFAULT = 'X'
    i_save = 'X'
    * is_variant = w_es_variant
    it_events = i_events
    * IT_EVENT_EXIT =
    * IS_PRINT =
    * IS_REPREP_ID =
    * I_SCREEN_START_ COLUMN = 0
    * I_SCREEN_START_ LINE = 0
    * I_SCREEN_END_ COLUMN = 0
    * I_SCREEN_END_ LINE = 0
    * I_HTML_HEIGHT_ TOP = 0
    * I_HTML_HEIGHT_ END = 0
    * IT_ALV_GRAPHICS =
    * IT_HYPERLINK =
    * IT_ADD_FIELDCAT =
    * IT_EXCEPT_QINFO =
    * IR_SALV_FULLSCREEN_ ADAPTER =
    * IMPORTING
    * E_EXIT_CAUSED_ BY_CALLER =
    * ES_EXIT_CAUSED_ BY_USER =
    TABLES
    t_outtab = datos
    EXCEPTIONS
    program_error = 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. " call_alv

    **&--------- --------- --------- --------- --------- --------- ----
    --
    **
    **& Form mi_top_of_page
    **&--------- --------- --------- --------- --------- --------- ----
    --
    **
    ** text
    **---------- --------- --------- --------- --------- --------- ---
    --
    **
    ** --> p1 text
    ** <-- p2 text
    **---------- --------- --------- --------- --------- --------- ---
    --
    **

    FORM mi_top_of_page.

    DATA: fecha(10),
    fecha1(10),
    w_bztxt LIKE t171t-bztxt,
    w_zovta(35),
    w_vtext LIKE tvkot-vtext,
    w_orvta(35),
    w_cadis(35).

    CLEAR: i_list_comments[ ].

    w_list_comments- typ = 'H'. "H=Header, S=Selection, A=Action
    w_list_comments- key = ''.
    w_list_comments- info = 'MOLDEADOS ANDINOS, C.A. (MOLANCA)'.
    APPEND w_list_comments TO i_list_comments.

    w_list_comments- typ = 'H'. "H=Header, S=Selection, A=Action
    w_list_comments- key = ''.
    w_list_comments- info = 'Caractarísticas de Inspección por Material'.
    APPEND w_list_comments TO i_list_comments.

    w_list_comments- typ = 'S'. "H=Header, S=Selection, A=Action
    w_list_comments- key = 'Usuario: '.
    w_list_comments- info = sy-uname.
    APPEND w_list_comments TO i_list_comments.

    WRITE sy-datum TO fecha.

    w_list_comments- typ = 'S'. "H=Header, S=Selection, A=Action
    w_list_comments- key = 'Fecha: '.
    w_list_comments- info = fecha.
    APPEND w_list_comments TO i_list_comments.

    w_list_comments- typ = 'S'. "H=Header, S=Selection, A=Action
    w_list_comments- key = 'Página: '.
    w_list_comments- info = sy-pagno.
    APPEND w_list_comments TO i_list_comments.

    CALL FUNCTION 'REUSE_ALV_COMMENTA RY_WRITE'
    EXPORTING
    * i_logo = ' '
    it_list_commentary = i_list_comments.

    ENDFORM. "mi_top_of_page

    *&---------- --------- --------- --------- --------- --------- ---
    -*
    *& Form validate_variant
    *&---------- --------- --------- --------- --------- --------- ---
    -*
    * text
    *----------- --------- --------- --------- --------- --------- --
    -*
    * --> p1 text
    * <-- p2 text
    *----------- --------- --------- --------- --------- --------- --
    -*
    *FORM validate_variant .

    *ENDFORM.

    El problema que tengo es que no me muestra el detalle del material
    52000021 o se repite el material 42000012 y asi.

    Debe salir la caracteristica de inspeccion TER-PESO TER-ALTU
    TER-PMEC y SAL-VISU . el codigo hace que salga solo la primera
    y la ultima y no las dos del medio.

    Y por ultimo el texto breve de caracteristica se lo trae incorrectamente, es decir se trae uno pero no es el que pide el usuario.

    Por fa , Auxilio, alguien que me ayude
    Marilin Mendoza
Trabajando...