#1
|
|||
|
|||
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.
|
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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. |
#5
|
|||
|
|||
Llegué un poco tarde a leer tu explicación, pero la verdad que me ayudó mucho. Muchas gracias!
Saludos, |
Herramientas | Buscar en Tema |
Desplegado | |
|
|