3er dia con SAP

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

    #1

    3er dia con SAP

    buenos dia:

    Con algunos ejemplos he logrado armar un pequeño mantenimiento se me presentan los siguientes inconvenientes:

    1.En mi tabla de mi bd defini el campo como NUMC el cual al parecer no acepta letras, trato de cambiar este campo en la transacción se11 despues de cambiarlo ejecuto utilidades/generador actul. tab pero cuando quiero editar en la transaccion SM30 sigue sin acceptarme letras ese es el punto 1...

    2.Ahora en el punto dos tengo una columna de estados la cual la determine en dominio I-Inactivo, A- Activo al momento de querer listar este campo en un alv
    no me sale nada...ademas quisiera que en mi mantenimiento pudiera listar los dos estados en un combobox para poder actualizar posteriormente..

    aqui les pongo mi codigo:



    REPORT Z_PROGRAMA_PRUEBA.

    TABLES: ztabla_prueba.

    type-pools: slis.


    TYPES: BEGIN OF t_ztabla_prueba,
    COD_EMPL TYPE ztabla_prueba-COD_EMPL,
    NOMB_APE TYPE ztabla_prueba-NOMB_APE,
    STD_COM TYPE ztabla_prueba-STD_COM,
    END OF t_ztabla_prueba.

    DATA: it_ztabla_prueba TYPE STANDARD TABLE OF t_ztabla_prueba INITIAL SIZE 0,
    wa_ztabla_prueba TYPE t_ztabla_prueba.

    data: fieldcatalog type slis_t_fieldcat_alv with header line,
    gd_tab_group type slis_t_sp_group_alv,
    gd_layout type slis_layout_alv,
    gd_repid like sy-repid.

    START-OF-SELECTION.

    DATA: ln_tabla TYPE ztabla_prueba. "tabla: nombre de la tabla
    TABLES: sscrfields.

    SELECTION-SCREEN PUSHBUTTON 2(10) but1 USER-COMMAND usr1.
    SELECTION-SCREEN PUSHBUTTON 20(10) but2 USER-COMMAND usr2.
    SELECTION-SCREEN PUSHBUTTON 38(10) but3 USER-COMMAND usr3.
    data wa_empleados like ztabla_prueba.
    parameters Codigo like ztabla_prueba-cod_empl.
    parameters Nombre like ztabla_prueba-nomb_ape.

    perform data_retrieval.
    perform build_fieldcatalog.
    perform build_layout.
    perform display_alv_report.

    form build_fieldcatalog.



    fieldcatalog-fieldname = 'COD_EMPL'.
    fieldcatalog-seltext_m = 'COD EMPLEADO'.
    fieldcatalog-col_pos = 0.
    fieldcatalog-outputlen = 8.
    fieldcatalog-datatype = 'NUMC'.
    fieldcatalog-emphasize = 'X'.
    fieldcatalog-key = 'X'.
    * fieldcatalog-do_sum = 'X'.
    * fieldcatalog-no_zero = 'X'.
    append fieldcatalog to fieldcatalog.
    clear fieldcatalog.

    fieldcatalog-fieldname = 'NOMB_APE'.
    fieldcatalog-seltext_m = 'NOMB APELLIDO'.
    fieldcatalog-col_pos = 0.
    fieldcatalog-datatype = 'NUMC'.
    append fieldcatalog to fieldcatalog.
    clear fieldcatalog.

    fieldcatalog-fieldname = 'STD_COM'.
    fieldcatalog-seltext_m = 'ESTADO'.
    fieldcatalog-col_pos = 0.
    append fieldcatalog to fieldcatalog.
    clear fieldcatalog.

    endform. " BUILD_FIELDCATALOG

    form build_layout.
    gd_layout-no_input = 'X'.
    gd_layout-colwidth_optimize = 'X'.
    gd_layout-totals_text = 'Totals'(201).
    * gd_layout-totals_only = 'X'.
    * gd_layout-f2code = 'DISP'. "Sets fcode for when double
    * "click(press f2)
    * gd_layout-zebra = 'X'.
    * gd_layout-group_change_edit = 'X'.
    * gd_layout-header_text = 'helllllo'.
    endform.

    form display_alv_report.
    gd_repid = sy-repid.
    call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
    i_callback_program = gd_repid
    * i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
    * i_callback_user_command = 'USER_COMMAND'
    * i_grid_title = outtext
    is_layout = gd_layout
    it_fieldcat = fieldcatalog[]
    * it_special_groups = gd_tabgroup
    * IT_EVENTS = GT_XEVENTS
    i_save = 'X'
    * is_variant = z_template

    tables
    t_outtab = it_ztabla_prueba
    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.


    form data_retrieval.

    select cod_empl nomb_ape std_com
    up to 10 rows
    from ztabla_prueba
    into table it_ztabla_prueba.
    endform.

    INITIALIZATION.
    but1 = 'Insertar'.
    but2 = 'Actualizar'.
    but3 = 'Eliminar'.

    AT SELECTION-SCREEN.
    CASE sscrfields.
    WHEN 'USR1'.
    ln_tabla-cod_empl = Codigo.
    ln_tabla-nomb_ape = Nombre.
    insert into ztabla_prueba values ln_tabla.
    MESSAGE 'Datos Insertados' TYPE 'S'.
    WHEN 'USR2'.
    update ztabla_prueba set nomb_ape = Nombre Where cod_empl = Codigo.
    MESSAGE 'Datos Actualizados' TYPE 'S'.
    WHEN 'USR3'.

    delete from ztabla_prueba where cod_empl = Codigo.
    MESSAGE 'Datos Eliminados' TYPE 'S'.
    ENDCASE.
  • Ripper87
    Member
    • dic
    • 37

    #2
    Originalmente publicado por BluehScouth
    buenos dia:

    Con algunos ejemplos he logrado armar un pequeño mantenimiento se me presentan los siguientes inconvenientes:

    1.En mi tabla de mi bd defini el campo como NUMC el cual al parecer no acepta letras, trato de cambiar este campo en la transacción se11 despues de cambiarlo ejecuto utilidades/generador actul. tab pero cuando quiero editar en la transaccion SM30 sigue sin acceptarme letras ese es el punto 1...

    2.Ahora en el punto dos tengo una columna de estados la cual la determine en dominio I-Inactivo, A- Activo al momento de querer listar este campo en un alv
    no me sale nada...ademas quisiera que en mi mantenimiento pudiera listar los dos estados en un combobox para poder actualizar posteriormente..

    aqui les pongo mi codigo:
    1. Estas borrando la Vista de Actualización (completa) y volviendola a crear?

    2. Si tu tabla es de diccionario (como este caso), te recomiendo que uses la funcion:

    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    i_structure_name = 'ZTABLA_PRUEBA'
    CHANGING
    ct_fieldcat = fieldcatalog
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.

    Y ella te va a crear el catálogo automaticamente. Con eso probablemente se arregle los problemas que tienes

    Comentario

    Trabajando...