Ver Mensaje Individual
  #1  
Viejo 25/01/08, 13:19:59
Avatar de Driau
Driau Driau is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 235
Porque este TABLE CONTROL no coje valores??

Hola a todos..llevo unos dias..un poco asqueado porque intento hacer un TABLE CONTROL y no me sale. Parece que mas o menos...me sale. Pero cuando se ejecuta el SELECT del PERFORM EXTRACCION. Las variables VAR_MATNR y VAR_CHARG..no cogen ningún valor. He asociado los dos campos del TABLE CONTROL a estas dos variables con lo de "Coger datos del programa"...pero no hay manera. Alguien me pude ayudar??? Os pego aquí el código...grácias!!!

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

DATA: BEGIN OF AFPO_ITAB OCCURS 0,
MATNR LIKE AFPO-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.

DATA: V_PRUEBA LIKE AFPO_ITAB-MATNR VALUE '5'.

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

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 T_CTRL-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_0100 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 '/EECAN'.
* SELECT MATNR CHARG
* FROM AFPO
* INTO CORRESPONDING FIELDS OF TABLE AFPO_ITAB.
WHEN ' '.
PERFORM EXTRACCION.
ENDCASE.

ENDMODULE. " USER_COMMAND_09000 INPUT

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

*&---------------------------------------------------------------------*
*& Form extraccion
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM EXTRACCION.

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

* SELECT MATNR CHARG
*INTO CORRESPONDING FIELDS OF TABLE AFPO_ITAB
*FROM AFPO
*WHERE MATNR = V_PRUEBA.
Responder Con Cita