Cambiar separador decimal a un importe (puntos o comas)

3 08 2010

Generalmente entre distintas computadoras el separador decimal de un importe puede variar. Puede ser un punto o una coma, por ejemplo 100.60 o bien 100,60 .
Como no sabemos qué configuración tiene el sistema donde se va a ejecutar nuestro programa, con lo siguiente vamos a poder poner el separador decimal correcto automáticamente.


DATA: FORMATO_DEC LIKE USR01-DCPFM.

*Obtenemos el formato decimal del sistema en la variable FORMATO_DEC
SELECT SINGLE DCPFM
INTO FORMATO_DEC
FROM USR01
WHERE BNAME = SY-UNAME.

*Cambiamos el separador decimal a la variable de importe (LV_DMBTR)
CASE FORMATO_DEC.
WHEN ‘ ‘. “Coma Decimal
REPLACE ‘.’ IN LV_DMBTR WITH ‘,’.
WHEN ‘X’. “Punto Decimal
REPLACE ‘,’ IN LV_DMBTR WITH ‘.’.
ENDCASE.





Programa que lista USER-EXITS de una transacción

3 08 2010

El siguiente reporte muestra un listado de las USER EXITS de una transacción determinada. Sólo basta ingresar el nombre de la transacción en la pantalla principal, y como resultado mostrará tanto el nombre como la descripción de la USER EXIT.

*&———————————————————————*
*& Report ZUSER_EXIT
*&
*&———————————————————————*
*&
*&
*&———————————————————————*
REPORT ZUSER_EXIT.
tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
tables : tstct.
data : jtab like tadir occurs 0 with header line.
data : field1(30).
data : v_devclass like tadir-devclass.
parameters : p_tcode like tstc-tcode obligatory.

select single * from tstc where tcode eq p_tcode.
if sy-subrc eq 0.
select single * from tadir where pgmid = ‘R3TR’
and object = ‘PROG’
and obj_name = tstc-pgmna.
move : tadir-devclass to v_devclass.
if sy-subrc ne 0.
select single * from trdir where name = tstc-pgmna.
if trdir-subc eq ‘F’.
select single * from tfdir where pname = tstc-pgmna.
select single * from enlfdir where funcname =
tfdir-funcname.
select single * from tadir where pgmid = ‘R3TR’
and object = ‘FUGR’
and obj_name eq enlfdir-area.

move : tadir-devclass to v_devclass.
endif.
endif.
select * from tadir into table jtab
where pgmid = ‘R3TR’
and object = ‘SMOD’
and devclass = v_devclass.
select single * from tstct where sprsl eq sy-langu and
tcode eq p_tcode.
format color col_positive intensified off.
write:/(19) ‘Transaction Code – ‘,
20(20) p_tcode,
45(50) tstct-ttext.
skip.
if not jtab[] is initial.
write:/(95) sy-uline.
format color col_heading intensified on.
write:/1 sy-vline,
2 ‘Exit Name’,
21 sy-vline ,
22 ‘Description’,
95 sy-vline.
write:/(95) sy-uline.
loop at jtab.
select single * from modsapt
where sprsl = sy-langu and
name = jtab-obj_name.
format color col_normal intensified off.
write:/1 sy-vline,
2 jtab-obj_name hotspot on,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
endloop.
write:/(95) sy-uline.
describe table jtab.
skip.
format color col_total intensified on.
write:/ ‘No of Exits:’ , sy-tfill.
else.
format color col_negative intensified on.
write:/(95) ‘No User Exit exists’.
endif.
else.
format color col_negative intensified on.
write:/(95) ‘Transaction Code Does Not Exist’.
endif.

at line-selection.
get cursor field field1.
check field1(4) eq ‘JTAB’.
set parameter id ‘MON’ field sy-lisel+1(10).
call transaction ‘SMOD’ and skip first screen.





Guardar archivo en formato PDF

3 08 2010

Con el siguiente código podremos generar archivos PDF.

Ya que con la función GUI_DOWNLOAD únicamente no se puede hacer. Previamente hay que realizar una conversión para luego sí guardar el fichero.PDF.


*&—————————————————————–*
*& Report  Y_TEST
*&
*&—————————————————————–*
*&
*&
*&—————————————————————–*

REPORT y_test NO STANDARD PAGE HEADING.

**********************************************************************
*  Definición de variables                                                                   *
**********************************************************************

DATA: filesize  TYPE i,
header  LIKE thead,
options  LIKE itcpo,
result    LIKE itcpp,
otf        LIKE itcoo OCCURS 0 WITH HEADER LINE,
lines     LIKE tline OCCURS 0 WITH HEADER LINE,
lv_file   TYPE string.

**********************************************************************
*  Definición de la pantalla de selección                                              *
**********************************************************************

SELECTION-SCREEN BEGIN OF BLOCK blq1 WITH FRAME TITLE text-t01.
PARAMETERS:
p_impre TYPE pri_params-pdest OBLIGATORY,
p_file  TYPE rlgrap-filename OBLIGATORY DEFAULT ‘C:\PRUEBA.PDF’.
SELECTION-SCREEN END OF BLOCK blq1.

**********************************************************************
*  Proceso principal                                                                           *
**********************************************************************

*Se completa tabla lines con el contenido que queramos que tenga el archivo PDF
lines-tdline = ‘Este es el texto que aparecerá en el archivo PDF’.
lines-tdformat = ‘K’.
APPEND lines.

*Se obtienen y definen las opciones de formato del archivo
options-tddest = p_impre. “Nombre de impresora local
options-tdnewid = ‘X’.
options-tdgetotf = ‘X’.

CALL FUNCTION ‘PRINT_TEXT’
EXPORTING
device           = ‘PRINTER’
dialog           = ‘ ‘
application    = ‘TX’
header          = header
options         = options
IMPORTING
result         = result
TABLES
lines          = lines
otfdata      = otf
EXCEPTIONS
canceled     = 01
device        = 02
form          = 03
options      = 04
unclosed    = 05
unknown    = 06
format       = 07
textformat  = 08
communication = 09.

* Se convierte a PDF
CALL FUNCTION ‘CONVERT_OTF’
EXPORTING
format                = ‘PDF’
max_linewidth     = 132
IMPORTING
bin_filesize          = filesize
TABLES
otf                    = otf
lines                 = lines
EXCEPTIONS
err_conv_not_possible = 1.

* Bajamos el archivo
lv_file = p_file.

CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
bin_filesize = filesize
filename = lv_file
filetype = ‘BIN’
* APPEND = ‘ ‘
* CODEPAGE = ‘ ‘
* NO_BYTEORDER_MARK = ‘ ‘
* IMPORTING
* FILELENGTH = c
TABLES
data_tab = lines
* FORMAT_TAB =
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6.





Tabuladores en formularios – Abap

2 08 2010
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
PARAMETERS: p1 TYPE c LENGTH 10,
p2 TYPE c LENGTH 10,
p3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
PARAMETERS: q1 TYPE c LENGTH 10,
q2 TYPE c LENGTH 10,
q3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
TAB (20) button1 USER-COMMAND push1 DEFAULT SCREEN 100,
TAB (20) button2 USER-COMMAND push2 DEFAULT SCREEN 200,
END OF BLOCK mytab.
INITIALIZATION.
button1 = ‘Formulario 1′.
button2 = ‘Formulario 2′.

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.PARAMETERS: p1 TYPE c LENGTH 10,p2 TYPE c LENGTH 10,p3 TYPE c LENGTH 10.SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.PARAMETERS: q1 TYPE c LENGTH 10,q2 TYPE c LENGTH 10,q3 TYPE c LENGTH 10.SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,TAB (20) button1 USER-COMMAND push1 DEFAULT SCREEN 100,TAB (20) button2 USER-COMMAND push2 DEFAULT SCREEN 200,END OF BLOCK mytab.INITIALIZATION.button1 = ‘Formulario 1′.button2 = ‘Formulario 2′.





Enviar e-mail a correo externo – Abap

2 08 2010
DATA: BEGIN OF i_text OCCURS 0.
INCLUDE STRUCTURE soli.
DATA: END OF i_text.
DATA: wspoolnumber   LIKE  sy-spono ,
wmailname      LIKE  sood1-objnam,
wsubject       LIKE  sood1-objdes ,
wrecepient(40) TYPE  c ,
wdli           LIKE  soos1-dlinam.
DATA: object_hd_change LIKE sood1 OCCURS 0 WITH HEADER LINE,
objpara          LIKE selc  OCCURS 0 WITH HEADER LINE,
receivers        LIKE soos1 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_receivers OCCURS 0.
INCLUDE STRUCTURE receivers.
DATA: END OF i_receivers.
wsubject     = ‘Entrega numero….1234567890.’.
wrecepient   = ‘tu_correo@algo.com’.
object_hd_change-objla  = sy-langu.
object_hd_change-objnam = wmailname.
object_hd_change-objdes = wsubject.
object_hd_change-objsns = ‘F’.
object_hd_change-vmtyp  = ‘T’.
object_hd_change-skips  = ‘X’.
object_hd_change-acnam  = ‘SP01′.
object_hd_change-objcp  = ‘X’.
REFRESH i_text.
CLEAR i_text.
i_text-line = ‘Texto del mensaje’.
APPEND i_text.
REFRESH i_receivers.
CLEAR i_receivers.
i_receivers-rcdat  = sy-datum.
i_receivers-rctim  = sy-uzeit.
i_receivers-recextnam = wrecepient.
i_receivers-recesc = ‘U’.
i_receivers-sndex  = ‘X’.     ” Express-Mail
APPEND i_receivers.
objpara-name = ‘SPI’.
objpara-low  = wspoolnumber.
APPEND objpara.
CALL FUNCTION ‘SO_OBJECT_SEND’
EXPORTING
object_hd_change           = object_hd_change
object_type                = ‘RAW’
owner                      = sy-uname
TABLES
objcont                    = i_text
receivers                  = i_receivers
EXCEPTIONS
active_user_not_exist            = 1
communication_failure            = 2
component_not_available          = 3
folder_not_exist                 = 4
folder_no_authorization          = 5
forwarder_not_exist              = 6
note_not_exist                   = 7
object_not_exist                 = 8
object_not_sent                  = 9
object_no_authorization          = 10
object_type_not_exist            = 11
operation_no_authorization       = 12
owner_not_exist                  = 13
parameter_error                  = 14
substitute_not_active            = 15
substitute_not_defined           = 16
system_failure                   = 17
too_much_receivers               = 18
user_not_exist                   = 19
originator_not_exist             = 20
x_error                          = 21
OTHERS                           = 22.
IF sy-subrc <> 0.
WRITE: /’Error al enviar el mail’.
MESSAGE ID sy-msgid TYPE ‘S’ NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
COMMIT WORK.

DATA: BEGIN OF i_text OCCURS 0.          INCLUDE STRUCTURE soli.  DATA: END OF i_text.
DATA: wspoolnumber   LIKE  sy-spono ,        wmailname      LIKE  sood1-objnam,        wsubject       LIKE  sood1-objdes ,        wrecepient(40) TYPE  c ,        wdli           LIKE  soos1-dlinam.
DATA: object_hd_change LIKE sood1 OCCURS 0 WITH HEADER LINE,        objpara          LIKE selc  OCCURS 0 WITH HEADER LINE,        receivers        LIKE soos1 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_receivers OCCURS 0.          INCLUDE STRUCTURE receivers.  DATA: END OF i_receivers.

wsubject     = ‘Entrega numero….1234567890.’.  wrecepient   = ‘tu_correo@algo.com’.

object_hd_change-objla  = sy-langu.  object_hd_change-objnam = wmailname.  object_hd_change-objdes = wsubject.  object_hd_change-objsns = ‘F’.  object_hd_change-vmtyp  = ‘T’.  object_hd_change-skips  = ‘X’.  object_hd_change-acnam  = ‘SP01′.  object_hd_change-objcp  = ‘X’.

REFRESH i_text.  CLEAR i_text.  i_text-line = ‘Texto del mensaje’.  APPEND i_text.

REFRESH i_receivers.  CLEAR i_receivers.  i_receivers-rcdat  = sy-datum.  i_receivers-rctim  = sy-uzeit.  i_receivers-recextnam = wrecepient.  i_receivers-recesc = ‘U’.  i_receivers-sndex  = ‘X’.     ” Express-Mail  APPEND i_receivers.

objpara-name = ‘SPI’.  objpara-low  = wspoolnumber.  APPEND objpara.

CALL FUNCTION ‘SO_OBJECT_SEND’       EXPORTING            object_hd_change           = object_hd_change            object_type                = ‘RAW’            owner                      = sy-uname       TABLES            objcont                    = i_text            receivers                  = i_receivers       EXCEPTIONS       active_user_not_exist            = 1       communication_failure            = 2       component_not_available          = 3       folder_not_exist                 = 4       folder_no_authorization          = 5       forwarder_not_exist              = 6       note_not_exist                   = 7       object_not_exist                 = 8       object_not_sent                  = 9       object_no_authorization          = 10       object_type_not_exist            = 11       operation_no_authorization       = 12       owner_not_exist                  = 13       parameter_error                  = 14       substitute_not_active            = 15       substitute_not_defined           = 16       system_failure                   = 17       too_much_receivers               = 18       user_not_exist                   = 19       originator_not_exist             = 20       x_error                          = 21       OTHERS                           = 22.
IF sy-subrc <> 0.    WRITE: /’Error al enviar el mail’.    MESSAGE ID sy-msgid TYPE ‘S’ NUMBER sy-msgno            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.  ENDIF.  COMMIT WORK.





Calculadora – Abap

2 08 2010
REPORT  zcalculadora.
DATA: x_value(15) TYPE c.
CALL FUNCTION ‘FITRV_CALCULATOR’
* EXPORTING
*   INPUT_VALUE                =
*   CURRENCY                   =
*   START_COLUMN               = ’10′
*   START_ROW                  = ’10′
IMPORTING
output_value               = x_value
EXCEPTIONS
invalid_input              = 1
calculation_canceled       = 2
OTHERS                     = 3.
IF sy-subrc = 0.  ”En este ejemplo imprimimos por pantalla el resultado
WRITE:/ ‘Output Value ‘, x_value.
ENDIF.

REPORT  zcalculadora.
DATA: x_value(15) TYPE c.
CALL FUNCTION ‘FITRV_CALCULATOR’* EXPORTING*   INPUT_VALUE                =*   CURRENCY                   =*   START_COLUMN               = ’10′*   START_ROW                  = ’10′  IMPORTING    output_value               = x_value  EXCEPTIONS    invalid_input              = 1    calculation_canceled       = 2    OTHERS                     = 3.
IF sy-subrc = 0.  ”En este ejemplo imprimimos por pantalla el resultado  WRITE:/ ‘Output Value ‘, x_value.ENDIF.





Campo de Password – Abap

2 08 2010
REPORT ZCBPRUEBA3 .
PARAMETERS: P_PASSWD(8) MODIF ID VER.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = ‘VER’.
SCREEN-INVISIBLE = ’1′.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
END-OF-SELECTION.

REPORT ZCBPRUEBA3 .
PARAMETERS: P_PASSWD(8) MODIF ID VER.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.  IF SCREEN-GROUP1 = ‘VER’.
SCREEN-INVISIBLE = ’1′.      MODIFY SCREEN.    ENDIF.  ENDLOOP.
END-OF-SELECTION.





TRATAMIENTOS DE FICHEROS EN ABAP: NOMBRE DE LA RUTA SUBIR, SUBIR, ABRIR BAJAR, UPLOAD OPEN CLOSE DOWNLOAD FILES FOLDER LOG

2 08 2010

*IMPORTANTE - OPTIMIZACION DE CODIGO ISO:
*- LA SENTECIA TABLES ESTA OBSOLETA, NO USAR.
*- VERIFICAR QUE LA FUNCIÓN ESTÉ LIBERADA PARA USARLA.
*La información anterior y más en –> Optimización Código Abap ( Estándar ISO – Best Practices )
*PARA CONSEGUIR LOS TIPOS DE DATOS:
*SE37 poner el nombre de la función, o en el editor picar dos veces sobre la *función y luego: en PARAMETROS, EXPORTING, IMPORTING, TABLES: Mirar el TYPE o* *TYPE REF.
*

***** Pantalla de Selección *****

SELECTION-SCREEN: BEGIN OF BLOCK datos1 WITH FRAME TITLE text-002.

PARAMETER carchivo(128) TYPE c OBLIGATORY.  ” Archivo

*  PARAMETER carchivo  like HRP1000-STEXT OBLIGATORY.  ” Archivo

SELECTION-SCREEN: END OF BLOCK datos1.

INITIALIZATION.

clear carchivo2.
break rfrusciante.
IF sy-host = ’rmcadev’.
carchivo = ’/tmp/’.
endif.
IF sy-host EQ ’rmcaqa’.
carchivo = ’/ABAP/INTERFAZ/AVERIAS/TAS/ENTRANTE/’.

concatenate ’AVERIAS’ SY-DATUM SY-UZEIT INTO CARCHIVO2
SEPARATED BY ’_’.

CONCATENATE CARCHIVO CARCHIVO2 ’.txt’ INTO CARCHIVO.
endif.

************************************************************************
*      Form  LEER_ARCHIVO                                              *
************************************************************************
*    Abre la conexión para poder leer el archivo plano.                *
************************************************************************

FORM leer_archivo  USING    p_carchivo.

DATA:   filetable    TYPE filetable,
wa_filetable LIKE file_table,
filefilter   TYPE string,
l_rc         TYPE i,
user_action  TYPE i,
ls_path      TYPE string.

CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
default_extension = ’txt’
file_filter       = filefilter
initial_directory = ls_path
CHANGING
file_table        = filetable
rc                = l_rc
user_action       = user_action
EXCEPTIONS
OTHERS            = 1.
IF user_action EQ 0.
READ TABLE filetable INTO wa_filetable INDEX 1.
MOVE: wa_filetable-filename TO p_carchivo.
REFRESH filetable.
ENDIF.

ENDFORM.                    ” leer_archivo

***********************************************************************
*                  FORM  SUBIRDATOS                                   *
***********************************************************************
* Se extraen los datos contenidos en al archivo plano TAS¨            *
* —->                                                               *
* carchivo: nombre del archivo plano                                  *
* <—-                                                               *
* record: Tabla interna con los datos del archivo plano.              *
***********************************************************************
FORM subirdatos .

*——Autorizacion para lectura tabla ZCOD_CANCELACION.

*AUTHORITY-CHECK OBJECT ’S_TABU_DIS’
*           ID ’DICBERCLS’ FIELD ’ZR02′
*           ID ’ACTVT’ FIELD ’03′.
*
*  if sy-subrc EQ 4.
*    message i920.
*    LEAVE TO TRANSACTION SY-TCODE AND SKIP FIRST SCREEN.
*  elseif sy-subrc NE 0..
*    message i921.
*     LEAVE TO TRANSACTION SY-TCODE AND SKIP FIRST SCREEN.
*  endif.

translate carchivo to lower case.
IF carchivo IS NOT INITIAL.

open dataset carchivo
for input in text mode encoding default.
if sy-subrc EQ 0.
do.
read dataset carchivo into wa_record.
if sy-subrc NE 0.
exit.
endif.
move-corresponding wa_record to record.
append record.
enddo.
endif.
close dataset carchivo.

*Utilizamos la funcion WS_UPLOAD para traernos los datos del archivo
*plano
*    CALL FUNCTION ’WS_UPLOAD’
*      EXPORTING
*        filename = carchivo
*        filetype = ’DAT’
*      TABLES
*        data_tab = record.
*    IF sy-subrc <> 0.
*      MESSAGE i368(00) WITH ’No se pudo cargar el archivo 1, verifique’
*.
*      error = ’X’.
*    ENDIF.
ENDIF.

ENDFORM.                    ” subirdatos

*  CALL FUNCTION ’WS_DOWNLOAD’
*      EXPORTING
**         BIN_FILESIZE        = ’ ’
**         CODEPAGE            = ’ ’
*           filename            = carchivo
*           filetype            = ’DAT’
**         filetype            = ’WK1′
**         MODE                = ’ ’
**         WK1_N_FORMAT        = ’ ’
**         WK1_N_SIZE          = ’ ’
**         WK1_T_FORMAT        = ’ ’
**         WK1_T_SIZE          = ’ ’
**         COL_SELECT          = ’ ’
**         COL_SELECTMASK      = ’ ’
**     importing
**          filelength          =
*      TABLES
*           data_tab            = t_itab3
**         FIELDNAMES          =
*      EXCEPTIONS
*           file_open_error     = 1
*           file_write_error    = 2
*           invalid_filesize    = 3
*           invalid_table_width = 4
*           invalid_type        = 5
*           no_batch            = 6
*           unknown_error       = 7
*           OTHERS              = 8.

************************************************************************
******     ESTRUCTURA RLGRAP NECESARIA PARA LOS ARCHIVOS           *****
************************************************************************
DATA: FILETYPE     TYPE RLGRAP-FILETYPE.
DATA: P_FICHERO   TYPE RLGRAP-FILENAME VALUE ’C:\EDITORIALES.TXT’.
SELECTION-SCREEN BEGIN OF BLOCK B1.
************************************************************************
******     ESTRUCTURA RLGRAP NECESARIA PARA LOS ARCHIVOS           *****
************************************************************************
PARAMETER: FICHERO TYPE RLGRAP-FILENAME DEFAULT ’C:\SOCIOS.TXT’.
************************************************************************
SELECTION-SCREEN END OF BLOCK B1.

*Conseguimos LA RUTA DE ACCESO AL FICHERO
*&———————————————————————*
*&      Form  EXAMINADOR_ARCHIVOS
*&———————————————————————*
*       text
*———————————————————————-*
*      –>P_FICHERO  text
*———————————————————————-*
FORM EXAMINADOR_ARCHIVOS  USING    P_FICHERO.
CALL FUNCTION ’WS_FILENAME_GET’
EXPORTING
DEF_PATH               = ’C:\’

MASK                   = ’.txt,*.*.’
MODE                   = ’o’
TITLE                  = ’Búsqueda del ficheros….’
IMPORTING
FILENAME               = P_FICHERO
EXCEPTIONS
INV_WINSYS             = 1
NO_BATCH               = 2
SELECTION_CANCEL       = 3
SELECTION_ERROR        = 4
OTHERS                 = 5.
IF SY-SUBRC <> 0.
*       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform.

*Conseguimos EL FICHERO, LO CARGAMOS SOBRE UNA TABLA INTERNA.
************************************************************************
******                       ’ASC’ -> ASCII                        *****
************************************************************************
FILETYPE = ’ASC’.
CALL FUNCTION ’WS_UPLOAD’
EXPORTING
FILENAME                      = P_FICHERO
FILETYPE                      = FILETYPE
TABLES
DATA_TAB                      = IT_UPLOAD.
LOOP AT IT_UPLOAD.
WRITE:/ IT_UPLOAD-COD_LIBRO,
IT_UPLOAD-NUM_EJEMPLAR,
IT_UPLOAD-COD_SOCIO,
IT_UPLOAD-FECHA_PRESTAMO,
IT_UPLOAD-FECHA_DEVOLUCION.
ENDLOOP.
ENDFORM.

*Guardamos EL FICHERO CON LA TABLA INTERNA ACTUALIZADA.
************************************************************************
******                       ’ASC’ -> ASCII                        *****
************************************************************************
IT_DOWNLOAD[] = IT_UPLOAD[].
FILETYPE = ’ASC’.
CALL FUNCTION ’WS_DOWNLOAD’
EXPORTING
FILENAME                      = FICHERO
FILETYPE                      = FILETYPE
TABLES
DATA_TAB                      = IT_DOWNLOAD.
LOOP AT IT_SOCIOS.
WRITE:/ IT_SOCIOS-CODSOC, IT_SOCIOS-NOMBRE.
ENDLOOP.
*  CALL FUNCTION ’WS_DOWNLOAD’
*      EXPORTING
**         BIN_FILESIZE        = ’ ’
**         CODEPAGE            = ’ ’
*           filename            = carchivo
*           filetype            = ’DAT’
**         filetype            = ’WK1′
**         MODE                = ’ ’
**         WK1_N_FORMAT        = ’ ’
**         WK1_N_SIZE          = ’ ’
**         WK1_T_FORMAT        = ’ ’
**         WK1_T_SIZE          = ’ ’
**         COL_SELECT          = ’ ’
**         COL_SELECTMASK      = ’ ’
**     importing
**          filelength          =
*      TABLES
*           data_tab            = t_itab3
**         FIELDNAMES          =
*      EXCEPTIONS
*           file_open_error     = 1
*           file_write_error    = 2
*           invalid_filesize    = 3
*           invalid_table_width = 4
*           invalid_type        = 5
*           no_batch            = 6
*           unknown_error       = 7
*           OTHERS              = 8.

*ESTO ES EN CASO QUE SE QUIERA TRATAR LA TABLA QUE HAS SUBIDO, ES SOLO UN EJEMPLO, *SE PUEDE TRATAR LA TABLA RECOGIDA DESDE EL FICHERO COMO UNO DESEE.

*&———————————————————————*
*&      Form  trata_error
*&———————————————————————*
*       text
*———————————————————————-*
*      –>P_TEXT_E01  text
*      –>P_SW_ERR  text
*———————————————————————-*
FORM trata_error  USING    texto sw_e mensaje1 linea  mensaje2 Campo valor.
DATA: l TYPE i.

READ TABLE t_file_aux WITH KEY lifnr = t_file-lifnr.

l = STRLEN( t_error-descripcion ) + 1.
t_error-lifnr = t_file_aux-lifnr.
t_error-linea = sy-tabix.
t_error-mensaje1 = ’ linea ’.
t_error-campo = campo.
t_error-mensaje2 = ’ campo ’.
t_error-valor = valor.
MOVE p_texto TO t_error-descripcion+l.
*insert t_error.
APPEND t_error.
CLEAR: t_error, p_texto.
*  CONCATENATE p_texto skip WA_T_FILE into t_error-descripcion.

sw_e = ’X’.
“ trata_error





Oficial: Windows 7 disponible el 22 de Octubre

4 06 2009

windows-7-rc

Microsoft confirmó oficialmente que la fecha del lanzamiento de Windows 7 será este próximo 22 de Octubre, cuando finalmente podrás ir a una tienda y adquirir un equipo con el sistema operativo pre-instalado o comprar una licencia original. También se conoció que Microsoft tiene previsto culminar el desarrollo de Windows 7 a mediados o finales de Julio, cuando se comenzaría la distribución de la versión RTM (Release to Manufacturing).

Si vas comprar un ordenador con Windows Vista y tienes pensado migrar a Windows 7, el fabricante ofrecerá a los usuarios una actualización a Windows 7 de forma gratuita o con un buen descuento, siempre y cuando la fecha de compra de Vista sea cercana al lanzamiento de Windows 7. Claro está que esto es sólo aplicable para todas las versiones de Windows Vista, a exepción de la Home Basic.

La estrategia de Microsoft está muy clara, lanzar un producto que ha recibido muy buenas críticas, que ha tenido un gran apoyo por parte de los usuarios que pretenden eliminar al predecesor de Windows 7, antes de las compras de Navidad es un buena forma de presentar la nueva versión de Windows.





Windows 7 introduce streaming directamente a la Xbox360

6 02 2009

Windows 7 gana la ventaja al OS X con su función streaming a la Xbox 360 directamente, sin necesidad de cargar un software especial. Gizmodo en este excelente artículo nos explica la dinámica de su funcionamiento, y a pesar de que no está listo para su difusión universal, al menos es un gran comienzo. Ahora es el turno de iTunes y la Apple TV en el OSX, si quieren tomarse en serio la distribución de películas digitales. El problema es que Apple todavía sigue calificando la Apple TV como hobby, quizás sea hora de actualizarla.

 

 








Seguir

Get every new post delivered to your Inbox.