MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Alguien m ayuda con un DUMP? (foro/showthread.php?t=9253)

Driau 21/11/07 13:46:37

Alguien m ayuda con un DUMP?
 
Hola a todos. He realizado un pequeño programa. Le he modificado un poco los botones del ALV para que cuando le doy a 'PROCESAR' me genere un fichero. Éste es el codigo:




El problema es que en cuanto le doy al boton de GENERAR me da un error del siguiente tipo:

Err.tmpo.ejec. MOVE_TO_LIT_NOTALLOWED_NODATA

Assignment error: Overwriting a protected field.

The program tried to assign a new value to the field "<L_BOX>" even though
it is protected against changes.


La verdad es que no se que hacer...alguien se ha encontrado con lo mismo alguna vez????

Gracias!

nenuke 22/11/07 14:44:50

Prueba a quitar la linea RS-REFRESH = 'X'.

Saludos.

su86 06/03/08 16:13:43

A mi me pasa lo mismo y no se que hacer

larmadovr 06/03/08 16:29:05

Que tal:
 
Intenta hacer algo como lo siguiente:

Crea una estructura con los datos de la tabla it_out
Y despues has lo siguiente:

TYPES: BEGIN OF st_output.
INCLUDE STRUCTURE ztablaquetucreas.
TYPES: END OF st_output.

DATA: it_out TYPE STANDARD TABLE OF st_output WITH HEADER LINE.


NOTA: Es muy probable que tu problema es por los tipos de datos, en caso de que no se solucione tu problema me comentas y lo sigo analizando.

Saludos.

abapconsultoria 06/03/08 17:27:40

Podrias pegar el dump entero ??

Saludos.

DavidXD_XD 06/03/08 18:04:15

El problema del programa es el PF-STATUS, dame un toq y t paso como deberias hacerlo :D

DavidXD_XD 06/03/08 18:58:41

Ya ta corregido, el problema era por la constante CHECKBOX que colocabas en el layout.

REPORT ZPRUEBA_1 MESSAGE-ID SABAPDOCU.
**************************************************
**********************
* TAULES DE BASE DE DADES *
**************************************************
**********************

TABLES: AFRU.
**************************************************
**********************
* TYPES *
**************************************************
**********************

**************************************************
**********************
* TYPE-POOLS *
**************************************************
**********************

TYPE-POOLS: SLIS.

**************************************************
**********************
* VARIABLES *
**************************************************
**********************

DATA: V_LINES TYPE I.
DATA: G_REPID LIKE SY-REPID.

*VARIABLES ALV
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: WA_FIELDCAT TYPE LINE OF SLIS_T_FIELDCAT_ALV.

**************************************************
**********************
* TAULES INTERNES *
**************************************************
**********************


DATA: BEGIN OF IT_AFRU OCCURS 0,
AUFNR LIKE AFRU-AUFNR,
RMZHL LIKE AFRU-RMZHL,
LMNGA LIKE AFRU-LMNGA,
MEINH LIKE AFRU-GMEIN,
END OF IT_AFRU.

DATA: BEGIN OF IT_OUT OCCURS 0,
AUFNR LIKE AFRU-AUFNR,
RMZHL LIKE AFRU-RMZHL,
LMNGA LIKE AFRU-LMNGA,
MEINH LIKE AFRU-MEINH,
END OF IT_OUT.

**************************************************
**********************
* PANTALLA DE SELECCIÓ *
**************************************************
**********************

*INSERTAR NUMERO DE OF

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_AUFNR LIKE AFRU-AUFNR. "NÚMERO DE OF
SELECTION-SCREEN END OF BLOCK b1.

**************************************************
***********************
* AT SELECTION-SCREEN *
**************************************************
***********************


**************************************************
***********************
* PROGRAMA PRINCIPAL *
**************************************************
***********************

START-OF-SELECTION.

G_REPID = SY-REPID.
SELECT AUFNR RMZHL LMNGA MEINH
FROM AFRU
INTO CORRESPONDING FIELDS OF TABLE IT_AFRU
WHERE AUFNR = P_AUFNR.

LOOP AT IT_AFRU.
IT_AFRU-MEINH = 'UN'.
APPEND IT_AFRU TO IT_OUT.
ENDLOOP.

*PREPARAMOS EL ALV-GRID
DESCRIBE TABLE IT_OUT LINES V_LINES.
CASE V_LINES.
WHEN 0.
MESSAGE S888 WITH 'No hay nada'.
EXIT.
WHEN OTHERS.
PERFORM CATALEG_ALV.
PERFORM LAYOUT_ALV USING GS_LAYOUT.
PERFORM MOSTRAR_ALV.
ENDCASE.
**************************************************
**********************
* FORM: CATALEG_ALV *
* *
**************************************************
**********************

FORM CATALEG_ALV.
CLEAR IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'RMZHL'.
WA_FIELDCAT-SELTEXT_L = 'Nº de Palet'.
WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'LMNGA'.
WA_FIELDCAT-SELTEXT_L = 'Cantidad'.
WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MEINH'.
WA_FIELDCAT-SELTEXT_L = 'Unidad de medida'.
WA_FIELDCAT-OUTPUTLEN = 15.
WA_FIELDCAT-JUST = 'R'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
ENDFORM. "CATALEG_ALV

**************************************************
**********************
* FORM: LAYOUT_ALV *
* *
**************************************************
**********************


FORM LAYOUT_ALV USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
* LS_LAYOUT-ZEBRA = 'X'.
* LS_LAYOUT-BOX_FIELDNAME = 'CHECKBOX'.

ENDFORM. "LAYOUT_ALV

**************************************************
***********************
* FORM: FUNCIÓ PER A MOSTRAR L'ALV PER PANTALLA *
* *
**************************************************
***********************

FORM MOSTRAR_ALV.

DATA : gt_events TYPE slis_t_event,
ls_events TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events.

READ TABLE gt_events INTO ls_events WITH KEY name = 'USER_COMMAND'.
ls_events-form = 'USER_COMMAND'.
MODIFY gt_events FROM ls_events INDEX sy-tabix TRANSPORTING form.
CLEAR ls_events.
READ TABLE gt_events INTO ls_events WITH KEY name = 'PF_STATUS_SET'.
ls_events-form = 'SET_PF_STATUS'.
MODIFY gt_events FROM ls_events INDEX sy-tabix TRANSPORTING form.
* SET PF-STATUS 'STATUS_ALV'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = IT_FIELDCAT
* IS_LAYOUT = GS_LAYOUT
IT_EVENTS = gt_events[]
TABLES
T_OUTTAB = IT_OUT .
IF SY-SUBRC <> 0.
ENDIF.

ENDFORM. "MOSTRAR_ALV

**************************************************
***********************
* FORM: SET_PF_STATUS *
* *
**************************************************
***********************

FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STATUS_ALV'.
ENDFORM. " SET_PF_STATUS

**************************************************
************************
* FORM: GENERAR_FICHERO *
* *
**************************************************
************************

FORM GENERAR_FICHERO.

CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = 'C:\texto.txt'
filetype = 'ASC'
TABLES
data_tab = IT_OUT
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.

ENDFORM. "GENERAR_FICHERO
**************************************************
***********************
* FORM: USER_COMMAND *
* *
**************************************************
***********************

FORM USER_COMMAND USING RF_UCOMM LIKE SY-UCOMM
RS TYPE SLIS_SELFIELD.
CASE RF_UCOMM.
WHEN 'PROCESAR'.
RS-REFRESH = 'X'.
PERFORM GENERAR_FICHERO.
WHEN 'BACK'.
LEAVE TO LIST-PROCESSING.
ENDCASE.

ENDFORM. "user_command

Cualquier inquietud no dudes en consultar ... suerte !!! :D

viccas 21/05/14 21:27:42

Solución Alterna
 
Yo tuve el mismo inconveniente, y lo solucione, en caso de que si quieras usar las cajas de selección, declarando CHECKBOX en las variables de mi tabla interna, así ya tendremos la opción de seleccionar determinados registros.

yisus1988 09/12/14 08:37:33

Solución
 
Exacto, yo tuve el problema y lo solucioné como comenta viccas.

En la estructura de la tabla que se monta en la ALV, me faltaba declarar el parámetro (SEL) de selección, de tipo CHAR1.


Husos Horarios son GMT. La hora en este momento es 23:06:25.

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