Anuncio

Colapsar
No hay anuncio todavía.

extraer numero

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Neo_25
    respondió
    Esta es mi aportación:
    Escribe todos los números del 1 al 10 ambos inclusive, si no están en la tabla.

    * obtenemos los números q nos faltan de una tabla
    TYPES: BEGIN OF ty_tyl_tabla,
    numero TYPE i,
    END OF ty_tyl_tabla.
    TYPES: ty_tab_tabla TYPE SORTED TABLE OF ty_tyl_tabla WITH UNIQUE KEY numero.
    DATA: li_tabla TYPE ty_tab_tabla,
    lw_tabla TYPE ty_tyl_tabla,
    lv_contador TYPE i VALUE 1,
    lv_registros TYPE i, "nº de registros de la tabla
    lv_cont_registros TYPE i. "cuantos registros llevamos cogiendo

    FIELD-SYMBOLS: <fs_tabla> TYPE ty_tyl_tabla.

    lw_tabla-numero = 3.
    APPEND lw_tabla TO li_tabla.
    CLEAR lw_tabla.
    lw_tabla-numero = 5.
    APPEND lw_tabla TO li_tabla.

    DESCRIBE TABLE li_tabla LINES lv_registros.

    WRITE: 'Faltan:'.
    WHILE lv_contador < 11.
    IF lv_cont_registros < lv_registros.
    LOOP AT li_tabla ASSIGNING <fs_tabla>.
    ADD 1 TO lv_cont_registros.
    WHILE lv_contador < <fs_tabla>-numero.
    WRITE: / lv_contador.
    ADD 1 TO lv_contador.
    ENDWHILE.
    ADD 1 TO lv_contador.
    ENDLOOP.
    ENDIF.

    WRITE: / lv_contador.
    ADD 1 TO lv_contador.
    ENDWHILE.

    Dejar un comentario:


  • DavidXD
    respondió
    Muy deacuerdo, supongo que es entre 2 enteros, ahi va un pequeño codigo de prueba y tener en cuenta que debes de ordenar tu tabla interna

    Código:
    DATA: g_int TYPE i.
    
    SORT itab.
    
    LOOP AT itab.
      IF g_int IS INITIAL.
    * Aquí asignamos el contador inicial desde donde partirá
        g_int = itab-campo.
      ELSE.
        ADD 1 TO g_cont.
        IF g_cont <> itab-campo.
          WRITE: "Faltan:", itab-campo.
        ENDIF.
      ENDIF.
    ENDLOOP.

    Dejar un comentario:


  • bisonye
    respondió
    Funciona para cualquier caso

    Originalmente publicado por juanin_mori Ver Mensaje
    estimado BISONYE

    lo que tu me dices es lo que actualmente tengo, pero funciona cuando entre dos numeros solo falta 1 pero para cuaando se da que entre dos numeros fsltan 20 este no funciona correctamente
    Bueno eso es por que no me has entendido.
    No soy partidario de poner código ya que creo que si no escribes tú lo que tienes que hacer nunca aprendes a programar, así que te lo pongo en pseudocódigo

    Código:
    contador = 1.
    Recorre TI
    si contador = ti
    sumo 1 a contador
    si no
    mientras contador <> ti.
    escribe contador
    sumo 1 a contador
    fin mientras
    fin si
    Fin recorre
    Si le hubieras dado un par de vueltas lo habrías visto.

    Saludos

    Dejar un comentario:


  • juanin_mori
    respondió
    estimado BISONYE

    lo que tu me dices es lo que actualmente tengo, pero funciona cuando entre dos numeros solo falta 1 pero para cuaando se da que entre dos numeros fsltan 20 este no funciona correctamente

    Dejar un comentario:


  • bisonye
    respondió
    Originalmente publicado por juanin_mori Ver Mensaje
    Estimados

    estoy hace muy poco en el tema de abap y me pidieron hacer qun reporte en donde me aperescan los numeros que faltan de un correlativo

    Ej:

    1
    2
    4
    5
    8
    11


    quiero que el reporte de diga

    faltan
    3
    6
    7
    9
    10

    no se si existe alguna funcion sap


    bueno, en fin tengo en una tabla intera todos lo numeros existentes, la idea es que lea esta tabla a travez de un LOOP y me diga este el numero que falta

    alguien me puede enviar algun codigo con mi problematica

    talvez sea muy simple pera a mi me a costado

    saludos
    Eso es tan simple como recorrer la tabla con los números y comprobar con un contador. Si el número es igual que el contador le sumas uno y sigues con el loop. Si es diferente pintas el contador y le sumas uno y vuelves a hacer la comprobación.

    Saludos

    Dejar un comentario:


  • juanin_mori
    comenzado un tema extraer numero

    extraer numero

    Estimados

    estoy hace muy poco en el tema de abap y me pidieron hacer qun reporte en donde me aperescan los numeros que faltan de un correlativo

    Ej:

    1
    2
    4
    5
    8
    11


    quiero que el reporte de diga

    faltan
    3
    6
    7
    9
    10

    no se si existe alguna funcion sap


    bueno, en fin tengo en una tabla intera todos lo numeros existentes, la idea es que lea esta tabla a travez de un LOOP y me diga este el numero que falta

    alguien me puede enviar algun codigo con mi problematica

    talvez sea muy simple pera a mi me a costado

    saludos
Trabajando...
X