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)

Jonathan Barrio Rodriguez 04/06/08 15:26:32

OK :D MUCHAS GRACIAS.

La verdad... que sí, esto del Orientado Objetos es un tedioso follon :S

Espero que tu profecía de que solo requiere tiempo se cumpla...

Gracias de nuevo

Abapor 04/06/08 15:49:52

hola y gracias amigos por vuestras respuestas,

tengo una idea pero no se si vas a funcionar , he encontrado un metodo en internet que te permite recupera lo que has copiado en el clipboard.


CALL METHOD cl_gui_frontend_services=>clipboard_import .

lo que voy a hacer es recuperar mi seleccion con este metodo y rellenar mi tabla interna con los datos ( antiguos y seleccionados desde el execl ) luego mostrar el ALV con la tabla interna actualizada :) .

que os parece :confused:

muchas gracias
Saludos.

Jonathan Barrio Rodriguez 04/06/08 15:57:23

bUENO, había oido hablar de esa sentencia pero no sé como funciona.

Peró si que sería la solución, decirle mediante estatus que se ejecute
al presionar el boton, podrás recuperar esos datos por una tabla interna
que cree esa sentencia, y luego hacer insert o append en la tabla interna,
(para que no borre los anteriores).

Me parece una idea muy buena y limpia, ¿nos cuentas como va?

pmarinab 04/06/08 16:01:36

De todas formas, cuando en un ALV OO al menos uno de los campos es modificable (campo edit = 'X' en el catalogo de campos), aparece en el boton de Pegar un listbox que te permite escoger entre pegar sobreescribiendo o pegar insertando. El funcionamiento es exactamente igual al de la SE16N cuando entras a una tabla con permisos de escritura.

No te sirve con eso??

ibecerra 04/06/08 16:11:14

CALL METHOD cl_gui_frontend_services=>clipboard_import .
Interesante ,hazlo y nos avisas como te fue.. ahhh y no olvidar de pegar el codigo.

Abapor 05/06/08 09:42:31

Hola amigos ,
creo que funciona queda solo algunas dudas , a ver si alguien tiene una solucion:)
el codigo es :



he podido recuperar los datos que he copiado desde Excel en la tabla file_table_clip .
ahora queda solo hacer un SPLIT en los campos de mi tabla interna.
El separador es '#' ( que significa '09' en hexadecimal ).
pues el problema ahora es : cuando declaro el separado de esa manera :
el sistema me da un error : "HEXA1" must be a character-type data object (data type C, N, D, T or STRING ) , la solucion de este error es :
1- ir a: Pasar a / Atributos
2- Os saltará una pantalla, pues abajo a la izquierda hay que quitar el flag Verif.unicode activas.

pero cuando quito ese flag , el sistma me da otro error :eek: :D : The program "Y_PROG" is not Unicode-compatible, according to its program attributes.
por eso he cambiado la declaracion del separador :
.
Ahora en el debuger veo que no funciona muy bien el SPLIT , todo los datos se almacenan en el primer campo de la tabla interna i_tabla-nombre :( .

NB : la forma del fichero Excel es :
Nombre Apellido
***** *****
***** *****

espero que lo explico bien :)
muchas gracias de antemano

pmarinab 05/06/08 09:56:02

Yo no creo que el caracter de separación sea '#', lo que ocurre es que seguramente se trate de un retorno de carro o algo parcido, que no se puede representar y por eso te aparece así.

Yo probaría con la clase CL_ABAP_CHAR_UTILITIES, en la que están definidos los caracteres especiales más habituales. Prueba por ejemplo con este (tabulador horizontal), y si no funciona prueba con otros.

CONSTANTS : hexa1(1) TYPE c VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.

Abapor 05/06/08 11:16:16

Hola todos ,
si tienes razon pmarinab :) con esa declaracion el programa funciona muy bien , exactamente como lo queria.


con este codigo podemos hacer Copy / Paste en ALV .
espero que va a ayudar a alguien :) .

muchismas gracias a todos por sus ayuda


Husos Horarios son GMT. La hora en este momento es 02:39:45.

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