#1
|
|||
|
|||
dudas con un LOOP
Hola,
este loop no acaba de funcionarme bien, alguien me podría dar algún consejo? Muchas gracias de antemano * recorremos tabla interna cuando cliente esté informado LOOP AT it_bsid WHERE kunnr <> ''. IF bel_aux <> it_bsid-belnr. bel_aux = it_bsid-belnr. * En la selección de documentos se deberán quitar * todos los documentos que estén anulados, es decir en la tabla BKPF ( con belnr) * todos aquellos registros que tengan informado el campo STBLG. SELECT SINGLE * INTO bkpf FROM bkpf WHERE stblg <> '' AND belnr = it_bsid-belnr AND gjahr = p_gjahr AND bukrs = p_bukrs. SELECT SINGLE * INTO tgsbt FROM tgsbt WHERE gsber IN s_gsber. SELECT SINGLE * INTO vbrk FROM vbrk WHERE belnr = it_bsid-belnr AND gjahr = p_gjahr AND bukrs = p_bukrs. IF sy-subrc = 0. p_kunrg = vbrk-kunrg. ENDIF. SELECT SINGLE * INTO kna1 FROM kna1 WHERE kunnr IN rg_kunnr. IF bkpf-psoak = c_pend. MOVE-CORRESPONDING it_bsid TO it_alv. it_alv-zuonr = bsid-zuonr. it_alv-psoak = bkpf-psoak. it_alv-dokid = bkpf-dokid. it_alv-gtext = tgsbt-gtext. it_alv-vbeln = vbrk-vbeln. it_alv-name1 = kna1-name1. * it_alv-zsabe = knb1-zsabe. it_alv-blart = bsid-blart . APPEND it_alv. ELSE. * DELETE it_bsid WHERE belnr = bkpf-belnr. ENDIF. ENDIF. ENDLOOP. |
#2
|
|||
|
|||
No sé si te he entendido bien, pero yo haría algo así como esto:
* recorremos tabla interna cuando cliente esté informado LOOP AT it_bsid WHERE not kunnr is initial. IF bel_aux <> it_bsid-belnr. bel_aux = it_bsid-belnr. * En la selección de documentos se deberán quitar * todos los documentos que estén anulados, es decir en la tabla BKPF ( con belnr) * todos aquellos registros que tengan informado el campo STBLG. SELECT SINGLE * INTO bkpf FROM bkpf WHERE stblg <> '' AND belnr = it_bsid-belnr AND gjahr = p_gjahr AND bukrs = p_bukrs. * Si se encontró algún registro que cumpla con la condición, se * agrega if sy-subrc = 0. SELECT SINGLE * INTO tgsbt FROM tgsbt WHERE gsber IN s_gsber. SELECT SINGLE * INTO vbrk FROM vbrk WHERE belnr = it_bsid-belnr AND gjahr = p_gjahr AND bukrs = p_bukrs. IF sy-subrc = 0. p_kunrg = vbrk-kunrg. ENDIF. SELECT SINGLE * INTO kna1 FROM kna1 WHERE kunnr IN rg_kunnr. IF bkpf-psoak = c_pend. MOVE-CORRESPONDING it_bsid TO it_alv. it_alv-zuonr = bsid-zuonr. it_alv-psoak = bkpf-psoak. it_alv-dokid = bkpf-dokid. it_alv-gtext = tgsbt-gtext. it_alv-vbeln = vbrk-vbeln. it_alv-name1 = kna1-name1. * it_alv-zsabe = knb1-zsabe. it_alv-blart = bsid-blart . APPEND it_alv. ELSE. * DELETE it_bsid WHERE belnr = bkpf-belnr. ENDIF. else. delete it_bsid. endif. ENDIF. ENDLOOP |
#3
|
|||
|
|||
Batch Input VA01 DYNPRO SAPMV45A 8001
Hola a todos,
Tengo un pequeño gran problema, Resulta que estamos haciendo una migracion de 4.0 a ECC6.0. Tengo una maquina de test(T) y una maquina de produccion(p) cuando ejecuto un B.I en la maquina de test La pantalla que todos conocemos de la tx VA01 se vuelve pequeña a comparacion de cuando lo ejecuto el B.I en la maquina de Produccion. Lo que me gustaria sabes es que cuando hago una grabacion me sale estos campos y no se donde encontrarlos o en que performs o subrutina standar la tiene. T VA01 BS AA X F Muchas gracias.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|