Autor Tema: COPY / PASTE en table control  (Leído 18656 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
COPY / PASTE en table control
« en: 24 de Octubre de 2007, 03:12:25 pm »
Hola, tengo un table control al que le quiero poner el icono de pegar. Lo que intento es copiar desde un excel unos 200 registros y pegarlos a la vez para no tener que ir copiando y pegando de 10 en 10.  :P

No se si me he explicado lo suficiente.


Gracias.

Desconectado oscar

  • Administrador
  • Usuario Sr.
  • *****
  • Mensajes: 112
    • Ver Perfil
Re: COPY / PASTE en table control
« Respuesta #1 en: 24 de Octubre de 2007, 05:15:08 pm »
Hola Carlos.

Este es un trozo de código para hacer lo que quieres   ;)

La variable que pone hexa1 yo la utilicé para copiar varias columnas de un excel y el value '09' indica el separador de las columnas.

Código: [Seleccionar]
  DATA: file_table_clip TYPE STANDARD TABLE OF file_table.
  DATA: wa_file(1024).
  DATA: vv_menge(17).
  DATA: hexa1 TYPE x VALUE '09'.

  CALL METHOD cl_gui_frontend_services=>clipboard_import
    IMPORTING
      data                 = file_table_clip
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  IF sy-subrc = 3.

    EXIT.
  ELSEIF sy-subrc <> 0.
    EXIT.
  ENDIF.

  LOOP AT file_table_clip INTO wa_file.
    SPLIT wa_file AT hexa1 INTO i_pantalla2-matnr
                              vv_menge
                              i_pantalla2-bstme.
    MOVE: vv_menge TO i_pantalla2-menge.
    APPEND i_pantalla2.
  ENDLOOP.

Un saludo.......

Desconectado oscar

  • Administrador
  • Usuario Sr.
  • *****
  • Mensajes: 112
    • Ver Perfil
Re: COPY / PASTE en table control
« Respuesta #2 en: 30 de Mayo de 2008, 12:39:39 pm »
Me ha llegado un correo y me comentan que les da un error al compilar el ejemplo antes comentado.

El error es el siguiente:
"HEXA1" must be a character-type data object (data type C, N, D, T or STRING) .      
Solución para este problema:

Tenéis que ir a: Pasar a / Atributos

Os saltará una pantalla, pues abajo a la izquierda hay que quitar el flag Verif.unicode activas

Un saludo.

Desconectado spertaculos

  • Novato
  • *
  • Mensajes: 13
    • Ver Perfil
Re: COPY / PASTE en table control
« Respuesta #3 en: 04 de Junio de 2008, 06:10:38 pm »
Hola oscar ,
estoy intentando usar ese codigo en un programa z ( es un simple report ) , he encontrado el error
"HEXA1" must be a character-type data object (data type C, N, D, T or STRING) .     

pero cuando he quitado el flag  Verif.unicode activas , tenia otro error :
The program "Y_prog" is not Unicode-compatible, according to its program attributes

que tengo que hacer ?
muchas gracias  :)
Mehdi

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re: COPY / PASTE en table control
« Respuesta #4 en: 05 de Junio de 2008, 09:21:10 am »
Hola,
por mi parte he copiado el código y lo he pegado en un programa nuevo.

En un principio me salía el primer mensaje de error pero una vez quitado el flag me ha funcionado correctamente.

Yo he probado con la versión 6.00. Quizás sea un problema de versiones.

Un saludo.

Desconectado spertaculos

  • Novato
  • *
  • Mensajes: 13
    • Ver Perfil
Re: COPY / PASTE en table control
« Respuesta #5 en: 05 de Junio de 2008, 10:43:01 am »
hola Carlos ,
si tienes razon quizás problema de version.
sabes , en el debuger he visto que el separador es '#' .para solocionar el problema del type x , he declarado :
CONSTANTS : hexa1(1) TYPE c VALUE '#'.
pero el SPLIT no toma el esparador en cuenta y copia todo en i_pantalla2-matnr  ??? .

muchas gracias de antemano .
Mehdi

Desconectado oscar

  • Administrador
  • Usuario Sr.
  • *****
  • Mensajes: 112
    • Ver Perfil
Re: COPY / PASTE en table control
« Respuesta #6 en: 05 de Junio de 2008, 11:07:03 am »
Hola Mehdi.

Yo trabajo también con la versión 6.00.

No se me ocurre ahora mismo como solucionar tu problema. A ver si hay suerte y alguien lo sabe.

 ???

Desconectado spertaculos

  • Novato
  • *
  • Mensajes: 13
    • Ver Perfil
Re: COPY / PASTE en table control
« Respuesta #7 en: 05 de Junio de 2008, 04:29:43 pm »
Hola Oscar ,
acabo de solucionar el problema , he dejado el flag  Verif.unicode activas . y he combiado la declaracion de la variable hexa1 con eso :
Código: [Seleccionar]
hexa1(1) TYPE c VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
ahora funciona muy bien :) .

pero tambien necesito mucho saber como puedo utilizar el typo X en mis programas  :D

muchas gracias
Mehdi