PDA

Ver la Versión Completa : URGENTE AYUDA CON AlV


dayanareyes
26/02/08, 09:32:46
hola...

tengo un ALV que me estaba funcionando perfecto... lo he creado yo (anuqe no tengo nada de experiencia.....) y seguia modificandolo, agregue unos campos mas que era necesario y funciono perferto.

ya despues intente descomentar la parte de SORT Ordenar y no me funciono me saltaba errores, asi que intente reversar el cambio y ahora no se que hice que no me trae datos el ALV

AYUDA PORFAAAAAAAAAA :eek: :( :eek: :mad:

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

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

*--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
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: 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_budat LIKE bkpf-budat.
PARAMETER: so_fksto LIKE vbrk-fksto.

SELECTION-SCREEN: END OF BLOCK b1.



*1- Añadir un checkbox en la pantalla de selección para filtrar por
*las facturas contabilizadas.
*2- Añadir en el listado la columna fecha de contabilización

*Para ver la fecha de contabilización de una factura tienes que acceder
*a la tabla BKPF y mostrar el campo BUDAT. La manera de linkar la VBRK
*(cabecera Facturas) y BKPF (cabecera documento contable) es a través
*del campo , es decir con ese campo de la VBRK accedes a la BKPF y
*sacas la fecha de contabilización.

*3- Ordenar por número de factura.

*Entiendo que esto, sin problema.

*4- Poner la clase de documento en la pantalla de selección.
*
*5- Incluir una columna en el listado que sea la clase de documento.

*La clase de documento está en VBRK-FKART. Pones un SELECT-OPTION en la
*pantalla de selección y cuando hagas la selección de la VBRK haces el
*filtro por este parámetro y listos.

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

*--Seleccionando los datos de la BD
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 AND
budat = SO_BUDAT.


*--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

Gracias....

pirri
26/02/08, 09:54:17
Así por encima... ¿has mirado que te lleguen datos de la selección?

Ponle un break-point despues de la selección, quizás sólo sea que no te está encontrando datos.


Otra cosa, que no impide obtener datos pero sería bueno revisar, usas el parametro it_vbrk como tabla en seleccion_datos pero luego usas el global it_fact. Sería mejor usar it_vrk.


Un saludo.

dayanareyes
26/02/08, 11:18:29
Así por encima... ¿has mirado que te lleguen datos de la selección?

Ponle un break-point despues de la selección, quizás sólo sea que no te está encontrando datos.


Otra cosa, que no impide obtener datos pero sería bueno revisar, usas el parametro it_vbrk como tabla en seleccion_datos pero luego usas el global it_fact. Sería mejor usar it_vrk.


Un saludo.

si que trae los datos pero nada no me salen en el listado POR FAVOR tengo q entregar esto ya :eek: :eek: :eek: :eek: :eek:

larmadovr
26/02/08, 14:36:46
Avisame si todavía necesitas ayuda, para poder enviarte el código

larmadovr
26/02/08, 14:53:01
tienes el siguiente código:

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
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.


Prueba con lo siguiente:

1.- Crear estructura zvbrk con los datos que tienes en tu tabla interna del ejemplo de arriba.

2.- Declarar lo siguiente:

* Se declara tu wa del tipo estructura que creaste en el diccionario
TYPES: BEGIN OF wa_factura .
INCLUDE STRUCTURE zvbrk.
TYPES: END OF wa_factura .

* Se declara una tabla interna con referencia a tu wa
DATA: t_vbrk TYPE STANDARD TABLE OF wa_factura WITH HEADER LINE.

3.- Los datos que quieres sean mostrados, asignalos directamente a t_vbrk

4.- ejecuta el programa y listo.

Este problema es básicamente por la versión de R/3. Por que incluso yo ejecute tu mismo código en la 4.6C y si mostró datos.

Ahora prueba con este ejemplo y si no sale, me avisas para seguir analizando.

Saludos.
3.-

nenuke
26/02/08, 15:00:27
Hola,

he probado tu código y saca los datos perfectamente, prueba a cerrar todos los modos de desarrollo y volver a activar los objetos. A veces se te queda la versión anterior a la modificación activa y no estas ejecutando la ultima versión de tu programa.

Un saludo.

pirri
26/02/08, 15:13:34
Después del agonico mensaje también lo he comprobado y va bien. Alguna cosita modificaría del select y demás, pero a mi me saca los datos OK.

Lo único que te debería dar problema es el campo SO_BUDAT si no coincide la contabilización, debe ir relleno con alguna fecha. BKPF debe tener fecha de contabilización.

Un saludo.

pirri
26/02/08, 15:28:08
Creo que no se entiende mi última frase. SO_BUDAT debe tener alguna fecha ya que en la BKPF el campo BUDAT siempre contiene fecha de contabilización y con parameter obligas si no está relleno a que este vacío también en la tabla BKPF.

Si en lugar de parameter usas "SELECT-OPTIONS so_budat for bkpf-budat" te quitas el problema.

Y en el select a mí me gusta poner la tabla de cada campo

Where
vbrk~vbeln IN so_vbeln AND
vbrk~fkdat IN so_fkdat AND
vbrk~kunag IN so_kunag AND
vbrk~fksto = so_fksto AND
bkpf~budat IN so_budat.

Un saludo y espero que llegaras a tiempo.

dayanareyes
27/02/08, 07:26:58
holaaaaaaa

gracias a todos ya lo he podido respolver si era una de las validaqciones del select q me daba problema.

graciasssss