MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 10/11/06, 08:56:52
laura79 laura79 is offline
Junior Member
 
Fecha de Ingreso: sep 2006
Mensajes: 4
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.
Responder Con Cita
  #2  
Viejo 10/11/06, 15:26:10
Avatar de yoninho
yoninho yoninho is offline
Junior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 14
Talking

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
__________________
Yonatan E. Díaz - Consultor Abap Sr
natanoy@hotmail.com
Responder Con Cita
  #3  
Viejo 13/11/06, 07:18:47
Avatar de davidsap
davidsap davidsap is offline
Member
 
Fecha de Ingreso: abr 2006
Mensajes: 85
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.
Responder Con Cita
  #4  
Viejo 13/11/06, 07:18:55
Avatar de davidsap
davidsap davidsap is offline
Member
 
Fecha de Ingreso: abr 2006
Mensajes: 85
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.
Responder Con Cita
  #5  
Viejo 13/05/09, 12:27:02
martin89 martin89 is offline
Member
 
Fecha de Ingreso: may 2009
Mensajes: 53
Llegué un poco tarde a leer tu explicación, pero la verdad que me ayudó mucho. Muchas gracias!
Saludos,
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 18:41:14.


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