#1
|
||||
|
||||
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! |
#2
|
||||
|
||||
Prueba a quitar la linea RS-REFRESH = 'X'.
Saludos. |
#3
|
|||
|
|||
A mi me pasa lo mismo y no se que hacer
|
#4
|
|||
|
|||
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.
__________________
I.S.C.T. Luis Armando Valdez Rodríguez
Consultor ABAP correo: cel: (045) 5537406023 "La vida premia la acción"
|
#5
|
|||
|
|||
Podrias pegar el dump entero ??
Saludos.
__________________
Lo importante no es saber sino saber quien es el que sabe |
#6
|
||||
|
||||
El problema del programa es el PF-STATUS, dame un toq y t paso como deberias hacerlo
__________________
David Carballido Córdova |
#7
|
||||
|
||||
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 !!!
__________________
David Carballido Córdova |
#8
|
|||
|
|||
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.
|
#9
|
|||
|
|||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|