MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Crear TableControl con tabla interna. (foro/showthread.php?t=2456)

laura79 10/11/06 08:56:52

Crear TableControl con tabla interna.
 
Hola. Me he creado una tablecontrol con una tabla interna pero no me la llena con los datos de los campos de dicha tabla, me la he creado con el tablecontrolwizard. Esque no se muy bien como crearla. Ayuda por favor.

yoninho 10/11/06 15:26:10

El Wizard te lo hace todo, solo tiene que poner un select de la tabla en el module que te genero en el PBO para que cuando ejecutes la transaccion tu tabla ya recupere los datos, no se si me explico.

Saludos

davidsap 13/11/06 07:18:47

Te pongo una pequeña guía que creé para crear (valga la redundancia) un TC, aunque lo mejor ciertamente es hacerlo con el asistente, pero para que veas un poco como funciona:

1º Crear la dynpro: Por ejemplo 0100
En “-> Dispos” vamos al editor gráfico y creamos el table control.
Se pincha en entrada y salida y lo metemos dentro, como nombre se pone tabla-campo
Vamos creando todos los necesarios
Elegimos Texto (T) y vamos creando las cabeceras (se autoajusta)

2º En el Top
Definimos la tabla interna: it_tabla.
Definimos el table control: Controls: nombre_tc type tableview using screen ‘0100’.

3º Volvemos a la dynpro
Process Before Output.
Module Status_0100.
Loop at it_tabla with control nombre_tc cursor Nombre_tc-current_line.
Module pasar_datos.
Endloop.

Process After Input.
Loop at it_tabla.
Module grabar_datos. Siempre es igual
Endloop.

Module user_command_0100.

4º Hay que volver al include para declarar la tabla.

5º Creamos todos los modules (status, pasar_datos, grabar_datos, user_command).

6º Escribimos el código de los modules:
- En el status hacemos la select:
Select * into corresponding fields of table it_tabla from tabla_bd.

- En user_command hacemos el case con los botones:
Case sy-ucomm.
When ‘Salir’.
Leave program.
……………….
Endcase.

- En pasar_datos se pasan los valores de la tabla interna al table control:
Move-corresponding it_tabla to tabla_bd.

- En grabar_datos se pasan los datos del table control a la tabla interna:
Read table it_tabla index nombre_tc-current_line.
If sy-subrc = 0.
Move-corresponding tabla_bd to it_tabla.
Modify it_tabla index nombre_tc-current_line. (Modifica la tabla interna,
pero como se carga otravez, no se ve)
Endif.

Hay que tener cuidado con los tipos de campos, ya que a veces el table control los asigna mal.

Se pueden incluir checkbuttons dentro de un table control.

Para que se pueda saber la ficha seleccionada, hay que crear una variable tipo Char(1) dentro de la tabla interna y asignársela a la selección de línea del TC.

davidsap 13/11/06 07:18:55

Te pongo una pequeña guía que creé para crear (valga la redundancia) un TC, aunque lo mejor ciertamente es hacerlo con el asistente, pero para que veas un poco como funciona:

1º Crear la dynpro: Por ejemplo 0100
En “-> Dispos” vamos al editor gráfico y creamos el table control.
Se pincha en entrada y salida y lo metemos dentro, como nombre se pone tabla-campo
Vamos creando todos los necesarios
Elegimos Texto (T) y vamos creando las cabeceras (se autoajusta)

2º En el Top
Definimos la tabla interna: it_tabla.
Definimos el table control: Controls: nombre_tc type tableview using screen ‘0100’.

3º Volvemos a la dynpro
Process Before Output.
Module Status_0100.
Loop at it_tabla with control nombre_tc cursor Nombre_tc-current_line.
Module pasar_datos.
Endloop.

Process After Input.
Loop at it_tabla.
Module grabar_datos. Siempre es igual
Endloop.

Module user_command_0100.

4º Hay que volver al include para declarar la tabla.

5º Creamos todos los modules (status, pasar_datos, grabar_datos, user_command).

6º Escribimos el código de los modules:
- En el status hacemos la select:
Select * into corresponding fields of table it_tabla from tabla_bd.

- En user_command hacemos el case con los botones:
Case sy-ucomm.
When ‘Salir’.
Leave program.
……………….
Endcase.

- En pasar_datos se pasan los valores de la tabla interna al table control:
Move-corresponding it_tabla to tabla_bd.

- En grabar_datos se pasan los datos del table control a la tabla interna:
Read table it_tabla index nombre_tc-current_line.
If sy-subrc = 0.
Move-corresponding tabla_bd to it_tabla.
Modify it_tabla index nombre_tc-current_line. (Modifica la tabla interna,
pero como se carga otravez, no se ve)
Endif.

Hay que tener cuidado con los tipos de campos, ya que a veces el table control los asigna mal.

Se pueden incluir checkbuttons dentro de un table control.

Para que se pueda saber la ficha seleccionada, hay que crear una variable tipo Char(1) dentro de la tabla interna y asignársela a la selección de línea del TC.

martin89 13/05/09 12:27:02

Llegué un poco tarde a leer tu explicación, pero la verdad que me ayudó mucho. Muchas gracias!
Saludos,


Husos Horarios son GMT. La hora en este momento es 11:57:14.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web