:::: MENU ::::

este blog tiene como objetivo de compartir los conocimientos prácticos de cada lenguaje de programación más conocidos.

  • Lo mejor está por suceder

  • Easy to Customize

  • Customizable fonts.

martes, 27 de diciembre de 2016

En el siguiente ejemplo se requiere filtrar sólo las cuentas contables de Caja y Banco, que vienen a ser las cuentas 1200000000 a 1299999999 para el país Perú.

El código debe quedar así:

INITIALIZATION.
* PARA OBTENER LAS CUENTAS CONTABLES PARA EL LIBRO
  PERFORM CONSTANTE_RANGO USING 'CTA_0010'  CHANGING LR_SAKNR_12.

 AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_SAKNR-LOW.
  PERFORM CTAS_GLOBAL.
  PERFORM DISPLAY_F4_HKONT CHANGING S_SAKNR-LOW.

Para ello debemos realizar lo siguiente:

1. Cómo se manejarán constantes, estas se deben de manejar a nivel de la tabla de constantes, por lo tanto se crear la tabla de constantes y luego se registra la constantes según el caso:


2. Luego se cargar la constantes en el programa:
    
    PERFORM CONSTANTE_RANGO USING 'CTA_0010'  CHANGING LR_SAKNR_12.

  donde CTA_'CTA_0010'' es el nombre del campo y LR_SAKNR_12 es el rango a quien se le          pasarán las cuentas de la tabla de constantes.

FORM CONSTANTE_RANGO USING    PI_FIELD     TYPE ZPLEFIE_FLDNM
                                                   CHANGING PO_RANGE TYPE TABLE.

  REFRESHPO_RANGE.

  SELECT SIGNO AS SIGN
         OPCION AS OPTION
         VALOR1 AS LOW
         VALOR2 AS HIGH
  INTO TABLE PO_RANGE
  FROM ZPLEFITCONST
  WHERE PROGRAMA EQ 'ZPLEFIR0302'  "<- Este es el nombre del programa
    AND CAMPO EQ PI_FIELD.

ENDFORM.


3. Hacemos un select a la tabla de cuentas con los filtros:

FORM CTAS_GLOBAL .
   
CHECK LINESGTD_HKONT 0.

 " Obtenemos el plan de cuentas
  SELECT SINGLE KTOPL INTO GS_KTOPL FROM T001
    WHERE BUKRS P_BUKRS.
   
" Obtenemos la lista de cuentas
  SELECT SAKNR TXT50 INTO TABLE GTD_HKONT FROM SKAT
    WHERE SPRAS SY-LANGU          " idioma
      AND KTOPL GS_KTOPL             " <- Plan de cuentas
      AND SAKNR IN LR_SAKNR_12. "<- Rango de cuentas

ENDFORM.                    " CTAS_GLOBAL

4. Por última agregamos la rutina con la lógica del matchcode:


FORM DISPLAY_F4_HKONT  CHANGING PO_HKONT.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD        'SAKNR'
      WINDOW_TITLE    'Cuenta Contable'
      VALUE_ORG       'S'
    TABLES
      VALUE_TAB       GTD_HKONT
      RETURN_TAB      GTD_MATCH
    EXCEPTIONS
      PARAMETER_ERROR 1
      NO_VALUES_FOUND 2
      OTHERS          3.

  IF SY-SUBRC EQ 0.
    READ TABLE GTD_MATCH INDEX 1.
    IF SY-SUBRC 0.
      MOVE GTD_MATCH-FIELDVAL TO PO_HKONT.
    ENDIF.
  ENDIF.

ENDFORM.








0 comentarios:

Publicar un comentario

A call-to-action text Contact us