Autor Tema: Ayuda con Dynpro  (Leído 8720 veces)

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

Desconectado abapV01

  • Novato
  • *
  • Mensajes: 3
    • Ver Perfil
Ayuda con Dynpro
« en: 18 de Febrero de 2014, 01:55:48 pm »
Soy nuevo en esto de abap y estoy chocando con un programa que debo hacer. Lo que debo implementar es una pantalla donde pueda copiar los datos de un excel y pegarlos en una pantalla de sap donde queden de igual forma que excel (separados por filas y columnas) y quisiera saber si esto es posible con una table control. Ademas si seria útil algún manual o tutorial donde se implemente algo parecido, me vendría de maravilla.
Si alguien me puede ayudar le estaría muy agradecido.   :)  :)  :)

Desconectado Enrique.Borroni

  • Moderador_
  • Usuario Completo
  • *****
  • Mensajes: 89
    • Ver Perfil
Re:Ayuda con Dynpro
« Respuesta #1 en: 20 de Febrero de 2014, 04:48:33 am »
Estimado...

No me queda muy claro tu problema cuando dices :

1. Lo que debo implementar es una pantalla donde pueda copiar los datos de un excel ---> Te refieres a importar desde un archivo excel o hacer copy paste ??

Si tu respuesta es importar los datos desde un archivo excel...la respuesta es utilizar un ALV ... recuerda que puedes utilizar OLE comunicarte con excel desde ABAP.

Para mayor informacion revisa este link : http://www.abap.es/centro_OLE_Excel.html

Aqui te voy a pegar un ejemplo que encontre hace un tiempo...lo puedes modificar para que en lugar de mostrar lo datos leidos los envie a un ALV..Si necesitas mas ayuda avisame.


Aqui va Programa ejemplo para subir archivo excel

REPORT YTEST .

types: begin of ttab ,
fld1(30) type c,
fld2(30) type c,
fld3(30) type c,
fld4(30) type c,
fld5(30) type c,
end of ttab.

data: itab type table of ttab with header line.

selection-screen skip 1.
parameters: p_file type localfile default'C:\test.txt'.
selection-screen skip 1.

at selection-screen on value-request for p_file.
call function 'KD_GET_FILENAME_ON_F4'
exporting
static = 'X'
changing
file_name = p_file.

start-of-selection.

 clear itab. refresh itab.
 perform upload_data.

 loop at itab.
   write:/ itab-fld1, itab-fld2, itab-fld3, itab-fld4, itab-fld5.
 endloop.


************************************************************************
* Upload_Data
************************************************************************

form upload_data.

data: file type rlgrap-filename.
data: xcel type table of alsmex_tabline with header line.

file = p_file.

call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
  exporting
   filename = file
   i_begin_col = '1'
   i_begin_row = '1'
   i_end_col = '200'
   i_end_row = '5000'
  tables
   intern = xcel
   exceptions
   inconsistent_parameters = 1
   upload_ole = 2
   others = 3.

loop at xcel.

case xcel-col.
 when '0001'.
  itab-fld1 = xcel-value.
 when '0002'.
  itab-fld2 = xcel-value.
 when '0003'.
  itab-fld3 = xcel-value.
 when '0004'.
  itab-fld4 = xcel-value.
 when '0005'.
  itab-fld5 = xcel-value.
endcase.

at end of row.
 append itab.
 clear itab.
endat.

endloop.
endform.

Subir archivo de tipo CSV

 type-POOLs TRUXS.
 data ld_filename type string.
 data : rawdata type TRUXS_T_TEXT_DATA.

 ld_filename = DXFILE-FILENAME.

 CALL FUNCTION 'GUI_UPLOAD'
   EXPORTING
     FILENAME                      = ld_filename
    FILETYPE                      = 'ASC'
   TABLES
     DATA_TAB                      = rawdata
  EXCEPTIONS
    FILE_OPEN_ERROR               = 1
    FILE_READ_ERROR               = 2
    NO_BATCH                      = 3
    GUI_REFUSE_FILETRANSFER       = 4
    INVALID_TYPE                  = 5
    NO_AUTHORITY                  = 6
    UNKNOWN_ERROR                 = 7
    BAD_DATA_FORMAT               = 8
    HEADER_NOT_ALLOWED            = 9
    SEPARATOR_NOT_ALLOWED         = 10
    HEADER_TOO_LONG               = 11
    UNKNOWN_DP_ERROR              = 12
    ACCESS_DENIED                 = 13
    DP_OUT_OF_MEMORY              = 14
    DISK_FULL                     = 15
    DP_TIMEOUT                    = 16
    OTHERS                        = 17
           .
 IF SY-SUBRC <> 0.
   exit.
 ENDIF.
 data ls_rawdata like LINE OF rawdata.
 loop at rawdata into ls_rawdata.
   if sy-tabix = 1.  "borrar header
     delete rawdata.
     exit.
   endif.
 ENDLOOP.

 CALL FUNCTION 'TEXT_CONVERT_CSV_TO_SAP'
 EXPORTING
 I_FIELD_SEPERATOR = ';'
 I_TAB_RAW_DATA = rawdata
 TABLES
 I_TAB_CONVERTED_DATA = gt_data
 EXCEPTIONS
 CONVERSION_FAILED = 1
 OTHERS = 2
 .

TEXT_CONVERT_XLS_TO_SAP

 DATA : l_i_tab_raw_data  TYPE truxs_t_text_data.

* Read data from Excel shet
 CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
   EXPORTING
     i_tab_raw_data       = l_i_tab_raw_data
     i_filename           = p_file
   TABLES
     i_tab_converted_data = gt_data
   EXCEPTIONS
     conversion_failed    = 1
     OTHERS               = 2.
Saludos.

Atte.,
Enrique Borroni

maito : enrique.borroni@abap.es

Desconectado abapV01

  • Novato
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Ayuda con Dynpro
« Respuesta #2 en: 20 de Febrero de 2014, 04:10:29 pm »
Gracias por tu ayuda.
Lo que quiero hacer es un copy/paste a una table control y de ahi almaceno los datos guardados en una tabla cualquiera, ahora,lo he desarrollado mediante wizard (tablecontrol med. wizard) y sap trae los codigos por defecto de los botones agregar row o eliminar row, pero al ejecutar la dynpro y presionar el boton agregar o eliminar, me borra los datos por completo de la tabla, ahora estoy chocando en esas funciones de los botones. Me falta implementar bien el codigo de agregar fila o eliminar fila, ya que el que viene por defecto no funciona como se requiere.


Desconectado abapV01

  • Novato
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Ayuda con Dynpro
« Respuesta #3 en: 25 de Febrero de 2014, 09:57:13 pm »
Estimados, alguien tiene algún código donde pueda agregar o eliminar fila de una table control, ya que los que hago con el asistente del dynpro no funcionan!!!

Desconectado lcruz01

  • Novato
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Ayuda con Dynpro
« Respuesta #4 en: 24 de Marzo de 2015, 02:39:49 pm »
Hola, ya es un poco tarde, pero aqui hay mucha informacion en español sobre dynpros

http://abap.facilparami.com/category/curso-abap/creacion-de-dynpros/