MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Copiar/pegar en un ALV Grid (foro/showthread.php?t=13883)

Abapor 03/06/08 13:43:55

Copiar/pegar en un ALV Grid
 
Hola, tengo un ALV Grid al que le quiero poner el icono de pegar. Lo que intento es copiar desde excel unos 400 registros y pegarlos a la vez para guardarlos despues .
No se si me he explicado lo suficiente :) .
muchas gracias de antemano :)

ibecerra 03/06/08 22:55:08

Hola, no lo tengo muy claro, podrias explicarlo un poco mas.
saludos

Abapor 04/06/08 07:43:02

Hola ibecerra,
a ver si puedo explicar muy bien :) .
tengo un ALG Grid , y tengo un fichero Excel donde hay casi 400 registros
(los campos del AVL Grid son los mismos en el fichero Excel). lo que quiero hacer es , guardar todos los datos del Excel en mi ALV Grid , por eso necesito como puedo hacer un (" Select all "+ Copy) desde el Excel para pegar todos los registros a la vez en el ALV Grid.

muchas gracias por tu respuesta :)

pmarinab 04/06/08 07:59:32

Hola Abapor,

no tengo ni idea de si eso que dices puede hacerse o no, pero no sería mucho más facil crear un boton en el ALV que te permita subir el fichero excel y que tú te encargues por programación de leerlo y copiar cada registro a la tabla interna de tú ALV??

Yo pienso que es mucho más sencillo de hacer.

Un saludo

Abapor 04/06/08 11:17:22

Hola pmarinab ,
si tienes razon es mucho más facil subir el fichero excel ... pero si el usuario elegi solo unos registros ? en este caso todo depende de su selección .
lo que intento hacer es usar el concepto de Ctrl + C / V.

robert_milan 04/06/08 11:24:06

hazlo en dos paso uno donde carguen el fichero de excel y lo vean y otro que seleccione cual quiere en el alv.

Jonathan Barrio Rodriguez 04/06/08 12:35:26

A Ver Si....
 
BUENO, no te puedo ayudar, pero a ver si

al construir el ALV , al hacer el catalogo
se informa un campo que creo que se llama "EDIT"
(compruebalo en la tabla "slis_t_fieldcat_alv")
si lo marcas con una "X" este campo coge calidad imput,
osea puedes escribir sobre él y luego -no me acueerdo como se hacía-
se lo pasas a la tabla interna para que al volverse a mostrar el ALV, salga
así, ya actualizado con los valores qeu le habías introducido. Luego ademas
podrías hacer un UPDATE o INsert y pasarlos a una tabla Z o Standard.

Lo que no sé es si al hacer ctr + v sobre la ALV, cogerá en cada campo el
valor correspondiente o solo lo cogerá en la primera, pero prueba (al ira a pegar sobre el ALV) primero hacer ctr + y , seleccionar la ALV entera, y luego
ctr + v.

:S no sé si me sé explicar bien.... Te pegaría un ejemplo pero no lo encuentro
:$, bueno, si lo pruebas, nos comentas si no te importa.

Saludos

FORM F_ALV_FIELD_CONFIGURATION.

* For each column to be displayed in the reprot,
* append a line in I_ALV_FIELDCAT *
I_ALV_FIELDCAT-ROW_POS = '1'.
I_ALV_FIELDCAT-COL_POS = '1'.
I_ALV_FIELDCAT-TABNAME = 'IT_DATA'.
I_ALV_FIELDCAT-FIELDNAME = 'CARRID'.
I_ALV_FIELDCAT-REF_TABNAME = 'SBOOK'.
I_ALV_FIELDCAT-REF_FIELDNAME = 'CARRID'.
I_ALV_FIELDCAT-SELTEXT_L = 'X'. " Long text

I_ALV_FIELDCAT-EDIT = "X".

APPEND I_ALV_FIELDCAT.
CLEAR I_ALV_FIELDCAT.

ibecerra 04/06/08 13:14:07

hola como dice , habiliita los campos de tu alv grid con la sentencia
1. gs_layout-edit = 'X'. osea q lo habilitas todos sin excepcion
2. la otra seria q tengas un boton q habilita y deshabilidta los campos para copiar eso lo haces con objetos..
ejemplo
ls_celltab-fieldname = 'ICON'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
ls_celltab-fieldname = 'ZUONR'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
ls_celltab-fieldname = 'GJAHR'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.

Jonathan Barrio Rodriguez 04/06/08 14:06:13

1. gs_layout-edit = 'X'. osea q lo habilitas todos sin excepcion
2. la otra seria q tengas un boton q habilita y deshabilidta los campos para copiar eso lo haces con objetos..
ejemplo
ls_celltab-fieldname = 'ICON'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
ls_celltab-fieldname = 'ZUONR'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
ls_celltab-fieldname = 'GJAHR'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.[/quote]

SOLO POR CURIOSIDAD, la verdad que esto me queda muy grande,
podrías decirnos que tabla standard correspond "ls_celltab" (xq imagino que
esa es una tablaInterna creada con un LIKE), supongo que no es pt_celltab.

Y SI no es mucho molestar... que hace las sentencia
"cl_gui_alv_grid=>mc_style_disabled." pues no veo porqué así
el icono habilita o desahabilita,

Muchas gracias poir el aporte del gs_layout-edit = X. ;)

ibecerra 04/06/08 14:18:17

ok, es un alv orientado a objetos , hay veces el codigo con objetos es medio marciano pero te acostumbraras.
te explico
ls_celltab = lvc_t_styl.

habilita y deshabilita las columnas de un grid.
cl_gui_alv_grid=>mc_style_disabled
cl_gui_alv_grid=>mc_style_enabled
te explico lo del icon(q vendria ser una columna mas)
, lo q pasa es q por defecto al inicio todos los campos estan habilidatos(disponibles para editar) , para luego deshabilitar y habilitar solo los campos q por configuracion(en forma dinamica) deseo modificar.
saludos.


Husos Horarios son GMT. La hora en este momento es 12:22:37.

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