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 04/04/16, 18:27:53
victor94 victor94 is offline
Junior Member
 
Fecha de Ingreso: abr 2016
Mensajes: 11
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.
Responder Con Cita
  #2  
Viejo 05/04/16, 20:28:34
Avatar de Jesicka_21
Jesicka_21 Jesicka_21 is offline
Junior Member
 
Fecha de Ingreso: sep 2013
Mensajes: 15
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..."
Responder Con Cita
  #3  
Viejo 06/04/16, 05:47:16
victor94 victor94 is offline
Junior Member
 
Fecha de Ingreso: abr 2016
Mensajes: 11
Thumbs up Jesicka_21

Gracias Jesicka_21 funciono a la perfección.
Responder Con Cita
  #4  
Viejo 06/04/16, 15:44:11
Avatar de Jesicka_21
Jesicka_21 Jesicka_21 is offline
Junior Member
 
Fecha de Ingreso: sep 2013
Mensajes: 15
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..."
Responder Con Cita
  #5  
Viejo 06/04/16, 19:38:46
victor94 victor94 is offline
Junior Member
 
Fecha de Ingreso: abr 2016
Mensajes: 11
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.
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 22:34:32.


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