Preguntas en curso SAP ABAP

examen
Etiquetas: #<Tag:0x00007f542d9d37e8>

#1

Buenas! Tengo estas 3 dudas, por favor me podrían ayudar a resolver?

Para qué sirve la tabla de eventos de un reporte ALV? Explique si es válido decir que es un atributo opcional.

  1. Cual seria el resultando que veriamos en la tabla interna t_mara del siguiente ejemplo:

    En la tabla MARA tengo solamente los siguientes registros:

    1 MATNR: 200000001, MATKL: 450000560, MTART: AAAA
    2 MATNR: 200000001, MATKL: 450000560, MTART: AAAB

	DATA: t_mara like mara occurs 0 with header line.					
						
	SELECT matnr, matkl FROM mara INTO CORRESPONDING FIELDS OF TABLE t_mara.
  1. Indique como quedaria el contenido de la tabla ‘dias’ en función de la ejecución del siguiente codigo:

dias feriados Resultado:
001 - Lunes | 001 - Feriado
002 - Martes | 008 - Feriado
003 - Miercoles | 006 - Feriado
004 - Jueves | 007 - Feriado
005 - Viernes |
006 - Sabado |
007 - Domingo |

TYPES:									
 BEGIN OF ty_reg,									
   id(3) type n,									
   text(20) type c,									
 END OF ty_reg.									
									
DATA:									
dias TYPE STANDARD TABLE OF ty_reg WITH HEADER LINE,									
feriados  TYPE STANDARD TABLE OF ty_reg WITH HEADER LINE.									
									
SORT: dias BY id, feriados BY id.									
LOOP AT dias									
   READ TABLE feriados WITH KEY id = dias-id BINARY SEARCH.									
   IF sy-subrc EQ 0.									
      dias-texto = feriados-texto.									
      MODIFY dias INDEX sy-tabix.									
   ENDIF.									
ENDLOOP.

#2

la tabla de eventos del alv es para programar eventos relacionados después de mostrar el alv, que haga cosas al darle click o modifique colores,etc. es opcional ya que se puede construir para solo mostrar info.

  1. en t_mara te queda las 2 filas pero solo con los campos MATNR y MATKL
    1 MATNR: 200000001, MATKL: 450000560
    2 MATNR: 200000001, MATKL: 450000560

  2. se definen ambas tablas con el mismo id y diferente texto.

SORT: dias BY id, feriados BY id.							// es requisito ordenar para el binary search
LOOP AT dias									                // recorre tabla días
   READ TABLE feriados WITH KEY id = dias-id BINARY SEARCH.	// recorre tabla feriados y compara campo id								
   IF sy-subrc EQ 0.									//si el campo id de ambas tablas son iguales
      dias-texto = feriados-texto.						// asigna el texto de feriados a días			
      MODIFY dias INDEX sy-tabix.						//esto asigna el valor de sy-tabix al id de la tabla dias cuando entra al if.		
   ENDIF.									
ENDLOOP.

resultado

dias

001 Feriado
002 Martes
003 Miercoles
004 Jueves
005 Viernes
002 Feriado
003 Feriado

feriados
001 Feriado
006 Feriado
007 Feriado
008 Feriado

NO soy programador así que podría estar equivocado u.u xD


#3

Muchas gracias :smiley: Lo de reporte ALV de dónde lo sabes? no le he encontrado por ningún lugar jaja.


#4

yo creo que del sentido común y experiencia. he pedido varias alv y el hacer cosas una vez que los generas es algo opcional hasta donde entiendo. El objetivo generalmente es generar el reporte en formato alv


#5

Entiendo. La práctica hace que uses las herramientas seguido y le encuentres sentido a las invocaciones que haces.
Muchísimas gracias :smiley:


#6

Recuerda valorizar los mensajes que te hayan ayudado con :heart: , y marcar como “solución” :ballot_box_with_check: el mensaje que cierre este debate.

¿Cómo? ¿Como marcar una solución?