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 17/01/08, 13:02:34
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Como empiezo con un Table Control??

Hola a todos!

Estoy intentando hacer un table control..pero no hay manera. He encontrado un PDF con un ejemplo...pero no funciona. Alguien me podría pegar un cable??? O alguien tiene algun *.doc, *.pdf, etc...

Muchas gracias!
Responder Con Cita
  #2  
Viejo 17/01/08, 14:04:09
ibecerra
 
Mensajes: n/a
Hola fijate en este ejemplo que es muy sencillo
SE38:
RSDEMO_TABLE_CONTROL
Responder Con Cita
  #3  
Viejo 17/01/08, 14:24:54
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Ok! Esta bien pero...

Alguien me podría pegar un cable con el código de cada "Module" en el report??? Quiero decir..no explicarme linea a linea sino..a grosso modo ...que hace ese "Module". Es que sino..me cuesta seguirlo.

Gracias!
Responder Con Cita
  #4  
Viejo 17/01/08, 15:43:07
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
A ver si lo saco...

A ver..he estado mirando el ejemplo que me habeis proporcionado. He creado la tabla con el Screen Painter y he aprovechado el codigo que me habeis pasado. Lo he modificado con el siguiente código:

*&---------------------------------------------------------------------*
*& Report ZCONTROL_LOTES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZCONTROL_LOTES .
CONTROLS TABLE_CONTROL TYPE TABLEVIEW USING SCREEN 9000.
TABLES AFPO.
*DATA AFPO_ITAB LIKE STANDARD TABLE OF AFPO.

DATA: BEGIN OF AFPO_ITAB OCCURS 0,
MATNR LIKE MARA-MATNR,
CHARG LIKE AFPO-CHARG,
END OF AFPO_ITAB.

DATA INIT.
DATA OK_CODE LIKE SY-UCOMM.
DATA SAVE_OK LIKE SY-UCOMM.
DATA MARK.
DATA COL TYPE CXTAB_COLUMN.

CALL SCREEN 9000.

*&---------------------------------------------------------------------*
*& Module STATUS_09000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_09000 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
SET TITLEBAR '9000'.
IF INIT IS INITIAL.
* Datenbeschaffung
SELECT MATNR CHARG
FROM AFPO
INTO CORRESPONDING FIELDS OF TABLE AFPO_ITAB.
DESCRIBE TABLE AFPO_ITAB LINES TABLE_CONTROL-LINES.
INIT = 'X'.
ENDIF.

ENDMODULE. " STATUS_09000 OUTPUT

*&---------------------------------------------------------------------*
*& Module FILL_TABLE_CONTROL OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHANGE_SDYN_CONN OUTPUT.
* you can change the content of current table control line via
* sdyn_conn
* READ TABLE AFPO_ITAB INTO sdyn_conn INDEX table_control-current_line.

ENDMODULE. " FILL_TABLE_CONTROL OUTPUT
*&---------------------------------------------------------------------*
*& Module READ_TABLE_CONTROL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE READ_TABLE_CONTROL INPUT.
* Check input values

* IF MARK = 'X' AND SAVE_OK = 'DELETE'.
* DELETE TABLE AFPO_ITAB FROM A.
* DESCRIBE TABLE SDYN_ITAB LINES TABLE_CONTROL-LINES.
* ENDIF.
ENDMODULE. " READ_TABLE_CONTROL INPUT

*&---------------------------------------------------------------------*
*& Module USER_COMMAND_09000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_09000 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'SORT'.
DATA: FLDNAME(9000),HELP(9000).

READ TABLE TABLE_CONTROL-COLS INTO COL WITH KEY SELECTED = 'X'.
SPLIT COL-SCREEN-NAME AT '-' INTO HELP FLDNAME.
SORT AFPO_ITAB BY (FLDNAME).
ENDCASE.

ENDMODULE. " USER_COMMAND_09000 INPUT

*&---------------------------------------------------------------------*
*& Module EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE EXIT INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXIT INPUT


El código funciona i se ejecuta la pantalla (como la que os adjunto). El problema es que a mi me gustaria que elo pudiera indicar un numero de material y al tabular en la columna de "Lote" (con un desplegable...por ejemplo) se le sugirieran los lotes relacionados a ése material. Ahora mismo tengo el efecto inverso. Es decir...si pongo un lote...automàticamente se me rellena el campo de material.

No se si me explico. Que estoy haciendo mal???? Como puedo seguir??

Grácias a todos!
Imágenes Adjuntas
Tipo de Archivo: jpg TABLE CONTROL.JPG (27.5 KB, 95 visitas)
Responder Con Cita
  #5  
Viejo 18/01/08, 22:07:33
Avatar de Rodolfo Montiel Rivera
Rodolfo Montiel Rivera Rodolfo Montiel Rivera is offline
Member
 
Fecha de Ingreso: oct 2007
Mensajes: 92
Querido hermando abapero te os sugiero lo siguiente

1.- Declara 2 variables globales en tu programa ok

DATA: VAR_MATNR LIKE MARA-MATNR,
VAR_CHARG LIKE AFPO-CHARG.

2.- En el dynpro 9000 en el screen-painter crea dos cajas de E/S y asi komo hiciste para traer los campos al table-control haces lo mismo para cada caja, ves que el menu pulsaste un boton que decia traer campos desde programa a bueno pues lo mismo para las cajas te situas en la primer caja clickeas el botoncito y buscas las variables que creaste paso 1.

3.-Puedes crear un boton para poder ejecutar la funcion de estraccion de datos osea tu select esto en tu modulo user_command

*&---------------------------------------------------------------------*
*& Module USER_COMMAND_09000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_09000 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'SORT'.
DATA: FLDNAME(9000),HELP(9000).
READ TABLE TABLE_CONTROL-COLS INTO COL WITH KEY SELECTED = 'X'.
SPLIT COL-SCREEN-NAME AT '-' INTO HELP FLDNAME.
SORT AFPO_ITAB BY (FLDNAME).
****************
WHEN 'PROCESAR'
PERFORM extraccion.
****************
ENDCASE.

4.- Finalmente en tu form extraccion haces el select usando los valores que hayas ingresado en el dynpro como si fuera un select-option.

FORM extraccion.

SELECT MATNR CHARG
INTO CORRESPONDING FIELDS OF TABLE AFPO_ITAB
FROM AFPO
WHERE MATNR EQ VAR_MATNR
AND CHARG EQ VAR_CHARG.

ENDFORM.

Y listo seria todo ojo con el paso 2 debes traer esas variables desde el dynpro jalandolas como te digo en el cuadrito que dice traer campos desde programa que esta en la barra de menu del screen painter y ponerles el mismo nombre var_mantr y var_charg.

Suerte!!!
__________________
01010000
01001010
10011000
10100001

De Byte a Beat.
Responder Con Cita
  #6  
Viejo 24/01/08, 08:54:57
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
bUFFF.

He tardado mucho en contestar...lo stiento. Estoy mirando lo del paso 2. El problema es que como lo que hice lo copie de un ejemplo que viene en el propio SAP no se a qu te refieres con "raer campos desde programa a bueno pues lo mismo para las cajas te situas en la primer caja clickeas el botoncito y buscas las variables que creaste paso 1"

Me podrias ayudar???
Responder Con Cita
  #7  
Viejo 24/01/08, 10:40:03
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
oK...pero!

Ok..he visto a que te refieres. El problema es que ahora cuando le doy a "traer datos del programa" me añade una linea..pero bloqueada. De manera que no me deja marcarla ni darle al "tick". A que es debido eso???
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 20:05:30.


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