#1
|
|||
|
|||
Contar checkbox marcados en ALV
Buenas tardes , soy un usuario nuevo tanto en programación de ABAP como en el foro , nunca había posteado ya que siempre encuentro lo q necesito pero esta ves no lo eh encontrado trata de lo siguiente.
Tengo un ALV que tiene una columna de checkbox y al presionar un botón quiero saber cuantos de ellos estan marcados , gracias espero su respuesta. PD: aprovechando el post y para no publicar otra vez tengo otra duda lo que pasa es que al darle click a otro boton necesito que abra un buscador de carpetas que al seleccionar se guarde ahi mi alv pero en formato txt con un nombre predeterminado. |
#2
|
||||
|
||||
Checkbox
Buenas tardes Victor94.
Podrías pasar los registros de la tabla, a una tabla interna auxiliar, ordenar por el campo checkbox y realizar un delete a la tabla validando que los registros sean distintos a 'X'. Luego con la sentencia DESCRIBE TABLE obtenés la cantidad de registros que tiene la tabla. Quedaría algo así: it_tabla_auxiliar[] = it_tabla_alv[]. SORT it_tabla_auxiliar BY checkbox. DELETE it_tabla_auxiliar WHERE checkbox NE 'X'. IF it_tabla_auxiliar[] IS NOT INITIAL. DESCRIBE TABLE it_tabla_auxiliar LINES lv_lineas. ENDIF. LV_LINEAS tendría la cantidad de registros del ALV con el checkbox activo.
__________________
Saludos!, Jess. "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..." |
#3
|
|||
|
|||
Jesicka_21
Gracias Jesicka_21 funciono a la perfección.
|
#4
|
||||
|
||||
Formato txt con un nombre predeterminado
Con respecto a este tema, lo que se me ocurriría es que al momento de seleccionar el botón, realices lo siguiente.
Llamar al siguiente método: CALL METHOD cl_gui_frontend_services=>directory_browse EXPORTING window_title = 'Seleccionar carpeta' initial_folder = 'C:\Users\' CHANGING selected_folder = gv_directorio EXCEPTIONS cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3. Te va a mostrar el directorio desde la ubicación que le pasaste en INITIAL_FOLDER. Cuando selecciones la carpeta, vas a tener que realizar un concatenate con el nombre predeterminado que vas a usar de la siguiente forma: IF gv_directorio IS NOT INITIAL. CONCATENATE gv_directorio '\' gv_nombre_predeterminado '.txt' INTO gv_directorio. ENDIF. Luego llamar a la función GUI_DOWNLOAD de la siguiente manera: IF gv_directorio IS NOT INITIAL. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = gv_directorio TABLES data_tab = gt_tabla EXCEPTIONS FILE_WRITE_ERROR = 1 NO_BATCH = 2 GUI_REFUSE_FILETRANSFER = 3 INVALID_TYPE = 4 NO_AUTHORITY = 5 UNKNOWN_ERROR = 6 HEADER_NOT_ALLOWED = 7 SEPARATOR_NOT_ALLOWED = 8 FILESIZE_NOT_ALLOWED = 9 HEADER_TOO_LONG = 10 DP_ERROR_CREATE = 11 DP_ERROR_SEND = 12 DP_ERROR_WRITE = 13 UNKNOWN_DP_ERROR = 14 ACCESS_DENIED = 15 DP_OUT_OF_MEMORY = 16 DISK_FULL = 17 DP_TIMEOUT = 18 FILE_NOT_FOUND = 19 DATAPROVIDER_EXCEPTION = 20 CONTROL_FLUSH_ERROR = 21 OTHERS = 22. ENDIF. El código entonces te quedaría de la siguiente manera: DATA: gv_directorio TYPE string. CALL METHOD cl_gui_frontend_services=>directory_browse EXPORTING window_title = 'Seleccionar carpeta' initial_folder = 'C:\Users\' CHANGING selected_folder = gv_directorio EXCEPTIONS cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3. IF gv_directorio IS NOT INITIAL. CONCATENATE gv_directorio '\' gv_nombre_predeterminado '.txt' INTO gv_directorio. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = gv_directorio TABLES data_tab = gt_tabla EXCEPTIONS file_write_error = 1 no_batch = 2 gui_refuse_filetransfer = 3 invalid_type = 4 no_authority = 5 unknown_error = 6 header_not_allowed = 7 separator_not_allowed = 8 filesize_not_allowed = 9 header_too_long = 10 dp_error_create = 11 dp_error_send = 12 dp_error_write = 13 unknown_dp_error = 14 access_denied = 15 dp_out_of_memory = 16 disk_full = 17 dp_timeout = 18 file_not_found = 19 dataprovider_exception = 20 control_flush_error = 21 OTHERS = 22. IF sy-subrc IS NOT INITIAL. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDIF. Espero que te sirva, sino cualquier cosa avisame y lo vemos.
__________________
Saludos!, Jess. "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..." |
#5
|
|||
|
|||
descargar archivo en txt
Gracias , justo lo termine hace unas horas hice algo similar a lo que comentas dejo aquí mi solución.
Gracias por su ayuda. SELECT lifnr name1 land1 ort01 ort02 adrnr FROM lfa1 INTO TABLE gt_data. DATA: p_path_file TYPE string. DATA : lv_lineas TYPE i, ms TYPE string, num TYPE string. CLEAR lv_lineas. DESCRIBE TABLE gt_data LINES lv_lineas. num = lv_lineas. CONCATENATE 'Lista_Proveedores' num INTO ms. DATA: gd_path TYPE string. CALL METHOD cl_gui_frontend_services=>directory_browse EXPORTING window_title = 'File Directory' initial_folder = 'C:' CHANGING selected_folder = gd_path. CALL METHOD cl_gui_cfw=>flush. CONCATENATE gd_path '\' ms '.TXT' INTO mc_file. p_path_file = mc_file. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = p_path_file write_field_separator = ',' TABLES data_tab = gt_data. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|