crear y validar un check

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • dayanareyes
    Member
    • jul
    • 36

    #1

    crear y validar un check

    HOLA. antes que nada recuerdo que soy algo nueva en todo esto de SAP

    TENGO UN DUDA, TENGO UN LISTADO ALV AHORA ME PIDEN QUE AGREGUE UN CAMPO CON LA FECHA DE CONTABILIZACION Y QUE COLOQUE UN CHECK EN LA PANTALLA PARA SELECCIONAR SI SE QUIEREN VER LAS CONTABILIZADAS O NO.

    Me dicen que si esta contabilizada la factura, esta en la bseg, por lo que PRIMERA PREGUNTA DEBO HACER DOS SELECT??? POR UN IF??? A VER ALGO ASI COMO

    IF "CHECK ESTA ACTIVO"
    ACA EL SELECT CON RESPECTO A LA BSEG
    ELSE
    ACA EL SELECT CON LA VBRK
    ENDIF.

    PODRIA HACERLO ASI????????

    SEGUNDA PREGUNTA COMO DEBO DEFINIR EL CAMPO DE ESE CHECK PARA USARLO EN EL PROGRAMA Y PARA VISUALIZARLO EN LA PANTALLA DE SELECCION?????

    GRACIASSSSS
  • robert_milan
    Senior Member
    • jun
    • 315

    #2
    Primero que facturas las de FI o de SD, segundo no puedes entrar tan directamente a la bseg por que es tabla cluster debes usar la cabecera BKPF o las tablas indices bsad, bsak, bsik, bsid, bsas, bsis.

    El chec solo es un check box como parametro


    si escribes checkbox y luego F1, veras la documentacion que te guiara a usarlo correctamente

    espero te sirva.
    Un Huevon No Inútil


    Solo di lo que piensas, a la mejor tienes la mejor respuesta....

    Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

    Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

    Consultor FI jr/ABAP Sr.

    Comentario

    • dayanareyes
      Member
      • jul
      • 36

      #3
      Originalmente publicado por robert_milan
      Primero que facturas las de FI o de SD, segundo no puedes entrar tan directamente a la bseg por que es tabla cluster debes usar la cabecera BKPF o las tablas indices bsad, bsak, bsik, bsid, bsas, bsis.

      El chec solo es un check box como parametro


      si escribes checkbox y luego F1, veras la documentacion que te guiara a usarlo correctamente

      espero te sirva.

      hola....

      mira este es el codigo q estoy usando.... podrias orientarme en la parte que esta en rojo digo, en referencia a la tabla q deberia usar para mostrar las contabilizadas?????

      gracias


      *&---------------------------------------------------------------------*
      *& Report ZPS_LISTADO_VBRK *
      *& *
      *&---------------------------------------------------------------------*
      *& *
      *& *
      *&---------------------------------------------------------------------*
      REPORT zps_listado_facturas .

      *--Definición de las tablas
      TABLES: vbrk, kna1, bkpf, bseg.

      *--Definición de las Tipos, datos y TI
      TYPES: BEGIN OF t_vbrk,
      fkdat LIKE vbrk-fkdat, "Fecha de la Factura
      vbeln LIKE vbrk-vbeln, "Numero de la Factura
      belnr LIKE vbrk-belnr, "Numero de Factura
      zuonr LIKE vbrk-zuonr, "Codigo Analitico
      kunag LIKE vbrk-kunag, "Codigo Solicitante Cliente
      name1 LIKE kna1-name1, "Nombre Cliente
      opera LIKE vbrk-vbeln, "Operacion
      netwr LIKE vbrk-netwr, "Importe - Valor Neto
      waerk LIKE vbrk-waerk, "Moneda
      fksto LIKE vbrk-fksto, "Anulada
      budat LIKE bkpf-budat, "Fecha de Contabilizacion
      xblnr LIKE bkpf-xblnr, "
      fkart LIKE vbrk-fkart, "Clase de Documento
      BELNR like bseg-BELNR,
      END OF t_vbrk.


      DATA: wa_factura TYPE STANDARD TABLE OF t_vbrk WITH HEADER LINE.
      DATA: it_fact TYPE STANDARD TABLE OF t_vbrk WITH HEADER LINE.

      *DATA: contab TYPE c.

      *DATA: it_output TYPE STANDARD TABLE OF t_vbrk WITH HEADER LINE,
      *p_tipo(10).



      *
      **--Selección de la pantalla principal

      SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
      SELECT-OPTIONS: so_vbeln FOR vbrk-vbeln.
      SELECT-OPTIONS: so_fkdat FOR vbrk-fkdat.
      SELECT-OPTIONS: so_kunag FOR vbrk-kunag.
      SELECT-OPTIONS: so_fkart FOR vbrk-fkart.
      PARAMETER: so_fksto LIKE vbrk-fksto.
      PARAMETER: conta AS CHECKBOX DEFAULT ' '.

      SELECTION-SCREEN: END OF BLOCK b1.


      *En relación a las facturas contabilizadas. En la pantalla de selección
      *se debe poner un checkbox que indique si la factura está contabilizada
      *o no y ya dentro del listado incluir la fecha de contabilización que es
      * el BUDAT.
      *
      *Una factura está contabilizada si está almacenda en la BSEG. De manera
      *que si te piden las facuras contabilizadas debes accceder a la BSEG y
      *ver si está allí almacenada.
      *
      *El checkbox de la pantalla de selección lo puedes guardar en una
      *variable y luego haces el chequeo antes de acceder a la BSEG.
      *
      *Si quieres mañana hablamos por si tienes dudas.



      *&---------------------------------------------------------------------*
      *& Form seleccion_datos
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      * -->IT_ text
      *----------------------------------------------------------------------*
      FORM seleccion_datos TABLES it_vbrk STRUCTURE it_fact. "it_output.

      *--Seleccionando los datos de la BD

      IF conta = 'X'.

      SELECT *
      FROM ( vbrk inner join kna1
      on vbrk~kunag = kna1~kunnr )
      INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr
      INTO CORRESPONDING FIELDS OF TABLE wa_factura
      WHERE vbeln IN so_vbeln AND
      fkdat IN so_fkdat AND
      kunag IN so_kunag AND
      fksto = so_fksto.
      ELSE.

      SELECT *
      FROM ( vbrk INNER JOIN kna1
      ON vbrk~kunag = kna1~kunnr )
      INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr
      INTO CORRESPONDING FIELDS OF TABLE wa_factura
      WHERE vbeln IN so_vbeln AND
      fkdat IN so_fkdat AND
      kunag IN so_kunag AND
      fksto = so_fksto.
      ENDIF.


      *--Si trae la información de la BD, clasificar la información
      IF sy-subrc = 0.
      *--Interactuando con la WA donde se guardo la información extraida de BD
      LOOP AT wa_factura.
      *--Moviendo la información de la WA a la TI que se mostrará en el ALV
      MOVE-CORRESPONDING wa_factura TO it_fact.
      *--Agregando la información a la TI
      APPEND it_fact.
      ENDLOOP.
      ENDIF.
      ENDFORM. "selección



      *--Definiendo el primer evento del reporte
      START-OF-SELECTION.
      *-Llamando a las subrutinas y pasandole la TI que se mostraran en el ALV
      PERFORM seleccion_datos TABLES it_fact. "it_output.
      PERFORM alv_create TABLES it_fact. "it_output.


      *Type Pool donde vienen definidas todas las estructuras y tablas
      TYPE-POOLS: slis.

      DATA:
      * Catálogo de campos: contiene la descripción de los campos de salida
      alv_git_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      alv_git_fieldcat_par TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      w_field TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      alv_sort TYPE slis_t_sortinfo_alv,
      t_spec_groups TYPE slis_t_sp_group_alv,

      * Descripción de la estructura de salida
      alv_gwa_layout TYPE slis_layout_alv,
      * alv_gwa_print type slis_print_alv,

      * Cabecera del reporte
      alv_git_heading TYPE slis_t_listheader WITH HEADER LINE,

      * Eventos
      alv_git_events TYPE slis_t_event WITH HEADER LINE,
      alv_gc_save(1) TYPE c,
      alv_gc_exit(1) TYPE c,
      alv_gx_variant LIKE disvariant,
      alv_gx_tmpvariant LIKE disvariant,
      sp_group TYPE slis_sp_group_alv,


      * Nombre de la Tabla con los datos para el ALV
      alv_it_data TYPE slis_formname VALUE 'IT_ALV',

      * Nombre del programa
      alv_gx_repid LIKE sy-repid.


      *-------------------------------------------------------------------*
      * Declaración de constantes
      *-------------------------------------------------------------------*
      CONSTANTS:

      * FORM para escribir el encabezado
      alv_formname_top_of_page TYPE slis_formname VALUE 'ALV_TOP_OF_PAGE',
      * * alv_formname_user_command TYPE slis_formname VALUE 'USER_COMMAND',
      alv_formname_end_of_list TYPE slis_formname VALUE 'ALV_END_OF_LIST'.


      INITIALIZATION.

      * NOMBRE DEL PROGRAMA VARIABLE ALV
      alv_gx_repid = sy-repid.
      PERFORM initialize_variant.
      * gs_print-no_print_listinfos = 'X'.


      *Subrutinas del ALV
      *---------------------------------------------------------------------*
      * FORM alv_build_eventtab *
      *---------------------------------------------------------------------*
      * ........ *
      *---------------------------------------------------------------------*
      FORM alv_build_eventtab.

      FREE alv_git_events.
      *Llamada de la funcion
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
      EXPORTING
      i_list_type = 0
      IMPORTING
      et_events = alv_git_events[].

      *Llamada del Top_of_page
      READ TABLE alv_git_events WITH KEY name = slis_ev_top_of_page.

      IF sy-subrc = 0.
      MOVE alv_formname_top_of_page TO alv_git_events-form.
      APPEND alv_git_events.
      ENDIF.


      *Llamada del End_of_list
      READ TABLE alv_git_events WITH KEY name = slis_ev_end_of_list.

      IF sy-subrc = 0.
      MOVE alv_formname_end_of_list TO alv_git_events-form.
      APPEND alv_git_events.
      ENDIF.

      ENDFORM. "alv_build_eventtab


      *&---------------------------------------------------------------------*
      *& Form alv_ini_layout
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      FORM alv_ini_layout.
      * alv_gwa_layout-box_fieldname = 'SEL'.
      * alv_gwa_layout-edit = 'X'.
      *
      *Indica como se vera la pantalla de salida.
      * zebra = 'X' (Lista los registros con dos colores, uno por linea).
      * zebra = ' ' (Lista los registro de un solo color).

      alv_gwa_layout-zebra = 'X'.

      *Detail_popup = ' ' (Al pulsar doble-click en un registro de la lista
      *principal, se presenta otra lista con el detalle).
      *Detail_popup = 'X' (Al pulsar doble-click en un registro de la lista
      *principal, se presenta una ventana con el detalle).
      *
      alv_gwa_layout-detail_popup = ' '.
      ENDFORM. "alv_ini_layout

      *&---------------------------------------------------------------------*
      *& Form alv_ini_fieldcat
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      FORM alv_ini_fieldcat.
      * Mediante esta tabla vamos a definir los campos que se quiere mostrar
      * en el listado de salida.

      *COLUMNAS CLAVES
      CLEAR alv_git_fieldcat.
      REFRESH alv_git_fieldcat.
      alv_git_fieldcat-tabname = alv_it_data.
      alv_git_fieldcat-fix_column = space. "# Dejar campos Fijos

      *--Fecha
      alv_git_fieldcat-fieldname = 'FKDAT'.
      alv_git_fieldcat-seltext_l = text-002.
      alv_git_fieldcat-just = 'C'.
      alv_git_fieldcat-col_pos = '0'.
      alv_git_fieldcat-outputlen = '15'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

      *--Numero de la Factura
      alv_git_fieldcat-fieldname = 'VBELN'.
      alv_git_fieldcat-seltext_l = text-003.
      alv_git_fieldcat-just = 'C'.
      alv_git_fieldcat-col_pos = '1'.
      alv_git_fieldcat-outputlen = '20'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

      *--Numero de la Factura 2
      alv_git_fieldcat-fieldname = 'BELNR'.
      alv_git_fieldcat-seltext_l = text-003.
      alv_git_fieldcat-just = 'C'.
      alv_git_fieldcat-col_pos = '1'.
      alv_git_fieldcat-outputlen = '20'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.


      *--Codigo Analitico
      alv_git_fieldcat-fieldname = 'ZUORN'.
      alv_git_fieldcat-seltext_l = text-004.
      alv_git_fieldcat-just = 'L'.
      alv_git_fieldcat-col_pos = '2'.
      alv_git_fieldcat-outputlen = '20'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

      *--Cliente
      alv_git_fieldcat-fieldname = 'NAME1'. "'KUNAG'.
      alv_git_fieldcat-seltext_l = text-005.
      alv_git_fieldcat-just = 'L'.
      alv_git_fieldcat-col_pos = '3'.
      alv_git_fieldcat-outputlen = '40'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

      *--Operacion
      alv_git_fieldcat-fieldname = 'VBELN'.
      alv_git_fieldcat-seltext_l = text-006.
      alv_git_fieldcat-just = 'L'.
      alv_git_fieldcat-col_pos = '4'.
      alv_git_fieldcat-outputlen = '20'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

      *--Importe
      alv_git_fieldcat-fieldname = 'NETWR'.
      alv_git_fieldcat-seltext_l = text-007.
      alv_git_fieldcat-just = 'L'.
      alv_git_fieldcat-col_pos = '5'.
      alv_git_fieldcat-outputlen = '7'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

      *--Moneda local
      alv_git_fieldcat-fieldname = 'WAERK'.
      alv_git_fieldcat-seltext_l = text-007.
      alv_git_fieldcat-just = 'L'.
      alv_git_fieldcat-col_pos = '5'.
      alv_git_fieldcat-outputlen = '7'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

      *--Anulada
      alv_git_fieldcat-fieldname = 'FKSTO'.
      alv_git_fieldcat-seltext_l = text-008.
      alv_git_fieldcat-just = 'L'.
      alv_git_fieldcat-col_pos = '5'.
      alv_git_fieldcat-outputlen = '7'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.


      *--Fecha de Contabilizacion
      alv_git_fieldcat-fieldname = 'BUDAT'.
      alv_git_fieldcat-seltext_l = text-010.
      alv_git_fieldcat-just = 'L'.
      alv_git_fieldcat-col_pos = '5'.
      alv_git_fieldcat-outputlen = '15'.
      APPEND alv_git_fieldcat. CLEAR alv_git_fieldcat.

      ENDFORM. "alv_ini_fieldcat
      *&---------------------------------------------------------------------*
      *& Form alv_build_comment
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      FORM alv_build_comment.

      *Definicion del contenido del top_of_page
      DATA: aux_1(100) TYPE c,
      aux_2(100) TYPE c,
      empresa_nombre TYPE t001-butxt,
      fch1(10) TYPE c,
      fch2(10) TYPE c.

      DATA: divi(100) TYPE c,
      div_asignada TYPE c.

      FREE alv_git_heading.

      CLEAR aux_1.
      aux_1 = ' '.
      alv_git_heading-typ = 'H'.
      alv_git_heading-key = aux_1.
      alv_git_heading-info = aux_1.
      APPEND alv_git_heading.


      CLEAR aux_1.
      aux_1 = 'Listado de Facturas'.
      alv_git_heading-typ = 'H'.
      * alv_git_heading-key = aux_1.
      alv_git_heading-info = aux_1.
      APPEND alv_git_heading.

      * Fecha
      alv_git_heading-typ = 'S'.
      DATA fecha(10).
      PERFORM format_date USING sy-datum CHANGING fecha.
      alv_git_heading-key = 'Fecha: '.
      alv_git_heading-info = fecha.
      APPEND alv_git_heading.

      ENDFORM. "alv_build_comment
      *&---------------------------------------------------------------------*
      *& Form format_date
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      * -->P_SY_DATUM text
      * <--P_FECHA text
      *----------------------------------------------------------------------*
      FORM format_date USING fecha_entrada LIKE sy-datum
      CHANGING fecha_salida TYPE c.

      *Definicion formato de la fecha
      CONCATENATE fecha_entrada+6(2) fecha_entrada+4(2) fecha_entrada+0(4)
      INTO fecha_salida SEPARATED BY '/'.


      ENDFORM. " format_date

      *&---------------------------------------------------------------------*
      *& Form alv_listado
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      * -->P_IT_ALV text
      *----------------------------------------------------------------------*
      FORM alv_listado TABLES it_fact. "p_it_alv.

      DATA: lc_glay TYPE lvc_s_glay.

      lc_glay-edt_cll_cb = 'X'.

      *Llamado de la funcion del ALV



      ***************
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
      * I_INTERFACE_CHECK = ' '
      * I_BYPASSING_BUFFER = ' '
      i_buffer_active = ' '
      i_callback_program = alv_gx_repid "g_repid
      * i_callback_pf_status_set = 'ALV_PF_STATUS_SET'
      * i_callback_user_command = 'USER_COMMAND'
      i_structure_name = 'it_fact' "alv_it_data "'T_DATOS'
      is_layout = alv_gwa_layout "gs_layout
      it_fieldcat = alv_git_fieldcat[] "gt_fieldcat[]
      * I_CALLBACK_PROGRAM = ' '
      * 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 =
      * IT_FIELDCAT =
      * IT_EXCLUDING =
      * IT_SPECIAL_GROUPS =
      it_sort = alv_sort[]
      * IT_FILTER =
      * IS_SEL_HIDE =
      i_default = 'A' " 'X'
      i_save = alv_gc_save "'A'
      is_variant = alv_gx_variant "gx_variant
      it_events = alv_git_events[] "gt_events[]
      * IT_EVENT_EXIT =
      * IS_PRINT =ls_print
      * IS_REPREP_ID =
      * I_SCREEN_START_COLUMN = 0
      * I_SCREEN_START_LINE = 0
      * I_SCREEN_END_COLUMN = 0
      * I_SCREEN_END_LINE = 0
      * IT_ALV_GRAPHICS =
      * IT_HYPERLINK =
      * IT_ADD_FIELDCAT =
      * IT_EXCEPT_QINFO =
      * I_HTML_HEIGHT_TOP =
      * I_HTML_HEIGHT_END =
      * IMPORTING
      * E_EXIT_CAUSED_BY_CALLER =
      * ES_EXIT_CAUSED_BY_USER =
      TABLES
      t_outtab = it_fact "t_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. "alv_listado
      *&---------------------------------------------------------------------*
      *& Form alv_top_of_page
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      FORM alv_top_of_page.

      *Llamado de la funcion del top_of_page
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
      it_list_commentary = alv_git_heading[].
      * I_LOGO =
      * I_END_OF_LIST_GRID =

      ENDFORM. "alv_top_of_page
      *&---------------------------------------------------------------------*
      *& Form alv_create
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      FORM alv_create TABLES it_fact. "p_it_output.

      *Llamados de las subrutinas del ALV
      *** PERFORM ordenar_por USING alv_sort[].
      PERFORM alv_build_eventtab.
      PERFORM alv_ini_layout.
      PERFORM alv_ini_fieldcat.
      PERFORM alv_build_comment.
      PERFORM alv_listado TABLES it_fact. "p_it_output.


      ENDFORM. "alv_create
      *&---------------------------------------------------------------------*
      *& Form initialize_variant
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      FORM initialize_variant.

      *Llamado de la variable de inicializacion del programa
      alv_gc_save = 'A'.
      CLEAR alv_gx_variant.
      alv_gx_variant-report = alv_gx_repid.
      alv_gx_variant = alv_gx_variant.

      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
      EXPORTING
      i_save = alv_gc_save
      CHANGING
      cs_variant = alv_gx_variant
      EXCEPTIONS
      not_found = 2.
      IF sy-subrc = 0.
      vari = alv_gx_variant-variant.
      ENDIF.

      ENDFORM. "initialize_variant

      **&---------------------------------------------------------------------
      *
      **& Form ordenar_por
      **&---------------------------------------------------------------------
      *
      ** text
      **----------------------------------------------------------------------
      *
      ** -->P_SORT text
      **----------------------------------------------------------------------

      ***FORM ordenar_por USING p_sort TYPE slis_t_sortinfo_alv.
      ***
      *** DATA: wa_sort TYPE slis_sortinfo_alv.
      *** CLEAR wa_sort.
      *** wa_sort-fieldname = 'vbeln'.
      *** wa_sort-spos = 1.
      *** wa_sort-up = 'X'.
      *** wa_sort-subtot = 'X'.
      *** APPEND wa_sort TO p_sort.
      ***
      ***
      ***ENDFORM. " ordenar_por

      *&---------------------------------------------------------------------*
      *& Form alv_pf_status_set
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      * -->EXTAB text
      *----------------------------------------------------------------------*
      *FORM alv_pf_status_set USING extab TYPE slis_t_extab."TABLES
      *p_it_output
      *
      * SET PF-STATUS 'ESTANDAR_NEW_II'. " EXCLUDING p_it_output.
      *
      *ENDFORM. "alv_pf_status_set

      *&---------------------------------------------------------------------*
      *& Form refresca_alv
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      * -->U_SELFIELD text
      *----------------------------------------------------------------------*
      FORM refresca_alv USING u_selfield TYPE slis_selfield.

      u_selfield-refresh = 'X'.
      u_selfield-col_stable = 'X'.
      u_selfield-row_stable = 'X'.

      ENDFORM. "refresca_alv

      *&---------------------------------------------------------------------*
      *& Form ALV_END_OF_LIST
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      *FORM alv_end_of_list.
      *
      **Seleccion del end_of_list
      ** DATA: aux_5(100) TYPE c.
      **
      ** FREE alv_git_heading.
      ** aux_5 = 'Días'.
      ** alv_git_heading-typ = 'S'.
      ** alv_git_heading-key = aux_5.
      *** alv_git_heading-info = suma.
      ** APPEND alv_git_heading.
      **
      ** CLEAR aux_5.
      *** FREE alv_git_heading.
      ** aux_5 = 'Promedio de días'.
      ** alv_git_heading-typ = 'S'.
      ** alv_git_heading-key = aux_5.
      *** alv_git_heading-info = promedio.
      ** APPEND alv_git_heading.
      **
      * CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      * EXPORTING
      * it_list_commentary = alv_git_heading[]
      * i_end_of_list_grid = 'end'.
      **
      **
      **
      *ENDFORM. "ALV_END_OF_LIST

      Comentario

      • dayanareyes
        Member
        • jul
        • 36

        #4
        Alguien Me Puede Ayudarrrrr

        Comentario

        • bisonye
          Senior Member
          • ago
          • 635

          #5
          Hola,

          Tienes un problema de concepto que debería solucionarte tu consultor

          Si la factura de SD está contabilizada efectivamente se guarda la factura FI en la BKPF y en la BSEG. Si no me equivoco el número de documento es el mismo en FI y en SD por lo que lo que tienes que hacer para comprobar que la factura está contabilizada es mirar en la tabla BKPF si existe el número de documento.

          Podrías hacerlo con un INNER JOIN así:

          vbak INNER JOIN bkpf ON vbak~vbeln = bkpf~belnr

          O bien con selects anidados para cada factura SD hacer el select a la bkpf.

          Espero te sirva.

          Saludos
          http://sapymas.blogspot.com/

          Comentario

          • dayanareyes
            Member
            • jul
            • 36

            #6
            Originalmente publicado por bisonye
            Hola,

            Tienes un problema de concepto que debería solucionarte tu consultor

            Si la factura de SD está contabilizada efectivamente se guarda la factura FI en la BKPF y en la BSEG. Si no me equivoco el número de documento es el mismo en FI y en SD por lo que lo que tienes que hacer para comprobar que la factura está contabilizada es mirar en la tabla BKPF si existe el número de documento.

            Podrías hacerlo con un INNER JOIN así:

            vbak INNER JOIN bkpf ON vbak~vbeln = bkpf~belnr

            O bien con selects anidados para cada factura SD hacer el select a la bkpf.

            Espero te sirva.

            Saludos
            AAAAAAAAAAAA

            y si ya tengo esto:


            SELECT *
            FROM ( vbrk inner join kna1 on vbrk~kunag = kna1~kunnr )
            INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr

            INTO CORRESPONDING FIELDS OF TABLE wa_factura
            WHERE vbeln IN so_vbeln AND
            fkdat IN so_fkdat AND
            kunag IN so_kunag AND
            fksto = so_fksto.

            como hago para colocar otro inner o es q esto q tengo esta mal?????

            Comentario

            • bisonye
              Senior Member
              • ago
              • 635

              #7
              Perdona pero no había visto el segundo inner Join.

              En principio lo tienes hecho ¿que problema tienes ahora?
              http://sapymas.blogspot.com/

              Comentario

              • dayanareyes
                Member
                • jul
                • 36

                #8
                Pleasee

                Originalmente publicado por bisonye
                Perdona pero no había visto el segundo inner Join.

                En principio lo tienes hecho ¿que problema tienes ahora?
                a ver....

                coloque esto asi

                IF conta = 'X'.

                SELECT *
                FROM ( vbrk INNER JOIN kna1
                ON vbrk~kunag = kna1~kunnr )
                INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr
                INTO CORRESPONDING FIELDS OF TABLE wa_factura
                WHERE vbeln IN so_vbeln AND
                fkdat IN so_fkdat AND
                kunag IN so_kunag AND
                fksto = so_fksto.

                ELSE.


                SELECT *
                FROM ( vbrk INNER JOIN kna1
                ON vbrk~kunag = kna1~kunnr )
                INNER JOIN bkpf ON vbrk~xblnr = bkpf~xblnr
                INTO CORRESPONDING FIELDS OF TABLE wa_factura
                WHERE vbeln IN so_vbeln AND
                fkdat IN so_fkdat AND
                kunag IN so_kunag AND
                fksto = so_fksto.
                ENDIF.

                evidentemente los dos selecte q tengo

                en el if y el else son identicos.... ya lo se....

                PERO EL PROBLEMA QUE TENGO ES PRESCISAMENTE COMO VALIDO QUE UNA FACTURA A SIDO CONTABILIZADA???? OSEA SI EL CHECK = 'X' COMO PUEDO VALIDAR ESO????

                ME HE LIADO BASTANTE... MI JEFA ME DICE ESTO:
                Una factura está contabilizada si está almacenda en la BSEG. De manera que si te piden las facuras contabilizadas debes accceder a la BSEG y ver si está allí almacenada.

                El checkbox de la pantalla de selección lo puedes guardar en una variable y luego haces el chequeo antes de acceder a la BSEG.

                Y ENTIOENDO QUE LA BSEG ES CLOSTER Y NO SE PUEDE ACCEDER DIRECTAMENTE... BUENO ESO ME LO DIJERON ACA


                ASI QUE NO TENGO IDEA COMO HACER ESA VALIDACION

                Comentario

                • bisonye
                  Senior Member
                  • ago
                  • 635

                  #9
                  Bueno veo dos casos:

                  1.- Quieres ver todas las facturas o solo las contabilizadas:
                  Si el check es X tu select es el que tienes. En caso de que quieras ver todas le quitas el inner join a la BKPF

                  2.- Quieres ver las que no están contabilizadas o todas
                  Si el check es x es el select que tienes(todas). En el otro caso tienes que recuperar todas las facturas y comprobar en la BKPF si existe el documento. Si existe no lo muestras.

                  Con esto creo que lo tienes todo.

                  Saludos
                  Editado por última vez por bisonye; 27/02/2008, 17:01:03.
                  http://sapymas.blogspot.com/

                  Comentario

                  • Rodolfo Montiel Rivera
                    Member
                    • oct
                    • 92

                    #10
                    Dejame tu correo

                    Si puedes dejarme tu correo Ok mas bien cheka tus mensajes privados de aqui de sap te deje una solucion el FORM extraccion es todo lo que necesitas.
                    Editado por última vez por Rodolfo Montiel Rivera; 27/02/2008, 21:36:19.
                    01010000
                    01001010
                    10011000
                    10100001

                    De Byte a Beat.

                    Comentario

                    • bisonye
                      Senior Member
                      • ago
                      • 635

                      #11
                      Originalmente publicado por Rodolfo Montiel Rivera
                      Si puedes dejarme tu correo Ok mas bien cheka tus mensajes privados de aqui de sap te deje una solucion el FORM extraccion es todo lo que necesitas.
                      Si pones la solución aqui cualquiera que tenga el mismo problema podrá encontrar la solución más fácilmente.

                      Saludos
                      http://sapymas.blogspot.com/

                      Comentario

                      • dayanareyes
                        Member
                        • jul
                        • 36

                        #12
                        Por Favor



                        HOLA NECESITO ES MODIFICAR MI CODIGO, AGREGAR LA OPCION DE CONTABILIZADA O NO......... NO CAMBIAR tttttoooooodoooo EL CODIGO, POR FAVOR SI PUEDEN AYUDARME....

                        GRACIAS

                        Comentario

                        • bisonye
                          Senior Member
                          • ago
                          • 635

                          #13
                          Originalmente publicado por dayanareyes


                          HOLA NECESITO ES MODIFICAR MI CODIGO, AGREGAR LA OPCION DE CONTABILIZADA O NO......... NO CAMBIAR tttttoooooodoooo EL CODIGO, POR FAVOR SI PUEDEN AYUDARME....

                          GRACIAS

                          Mucho grito y mucho monigote pero no veo ningun esfuerzo por tu parte. Te he dado dos posibles soluciones y no has dicho ni siquiera si lo has probado. Si lo que pretendes es que te pasemos el código corregido y adaptado a tu empresa lo tienes un poco dificil......
                          http://sapymas.blogspot.com/

                          Comentario

                          • LouieBoy
                            Member
                            • ago
                            • 86

                            #14
                            Buenas, creo que bisonye te esta dando la solcion, por que no lo pruebas??

                            Saludos,

                            LouieBoy

                            Comentario

                            Trabajando...