lunedì 30 gennaio 2017

Esportare un file di Excel in formato XML

*----------------------------------------------------------------------*
* DECLARATIONS                                                         *
*----------------------------------------------------------------------*
DATA: BEGIN OF gs_out,
        [...]
      END OF gs_out.

DATA: gt_out LIKE STANDARD TABLE OF gs_out.

*----------------------------------------------------------------------*
* LAYOUT                                                               *
*----------------------------------------------------------------------*
PARAMETERS: pa_file TYPE STRING.

*----------------------------------------------------------------------*
* FORM OUTPUT_XLS                                                      *
*----------------------------------------------------------------------*
FORM output_XLS.

  DATA: lv_xml     TYPE STRING,
        lo_xml_doc TYPE REF TO CL_XML_DOCUMENT,
        lv_file    TYPE LOCALFILE.

  CALL TRANSFORMATION id
     SOURCE data_node = gt_out
     RESULT XML lv_xml.

  CREATE OBJECT lo_xml_doc.
  lo_xml_doc->parse_string( lv_xml ).
  lv_file = pa_file.
  lo_xml_doc->export_to_file( lv_file ).

ENDFORM.                    "output_xls

*----------------------------------------------------------------------*

domenica 29 gennaio 2017

Il giorno dei Trifidi, John Wyndham

Il giorno dei Trifidi
Di John Wyndham
Editore: Fanucci


Lingua: Italiano | Numero di pagine: 313 | Isbn-10: 8834710177 | Data di pubblicazione: 2004-xx-xx | Traduttore: Maurizio Nati | Genere: Narrativa & Letteratura - Horror - Fantascienza

giovedì 26 gennaio 2017

Copiare le varianti

*----------------------------------------------------------------------*
* DECLARATIONS                                                         *
*----------------------------------------------------------------------*
TABLES: ltdx.

DATA: gt_ltdx  LIKE ltdx  OCCURS 0,
      gt_ltdxt LIKE ltdxt OCCURS 0,
      gs_ltdx  LIKE LINE OF gt_ltdx,
      gs_ltdxt LIKE LINE OF gt_ltdxt,
      gt_vari  LIKE vari  OCCURS 0,
      gt_varit LIKE varit OCCURS 0,
      gt_varid LIKE varid OCCURS 0,
      gv_msg   TYPE string.

*----------------------------------------------------------------------*
* LAYOUT                                                               *
*----------------------------------------------------------------------*
PARAMETERS: pa_repid LIKE ltdx-report OBLIGATORY,
            pa_rfc   LIKE rfcdes-rfcdest.
SELECTION-SCREEN SKIP.
PARAMETERS: rb_vari RADIOBUTTON GROUP rbg1,
            pa_vari LIKE vari-variant.
SELECTION-SCREEN SKIP.
PARAMETERS: rb_ltdx  RADIOBUTTON GROUP rbg1,
            pa_lvari LIKE ltdx-variant,
            pa_user  LIKE ltdx-username.
SELECT-OPTIONS so_user FOR ltdx-username.

*----------------------------------------------------------------------*
* EVENTS                                                               *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
  IF so_user[] IS NOT INITIAL AND
     pa_user IS INITIAL.
    MESSAGE 'Scegliere un utente da cui copiare' TYPE 'E'.
  ENDIF.

*----------------------------------------------------------------------*
* PROGRAM BODY                                                         *
*----------------------------------------------------------------------*
START-OF-SELECTION.

  IF rb_ltdx = 'X'.

    CALL FUNCTION 'ZRFC_READ_LTDX'
      DESTINATION pa_rfc
      EXPORTING
        i_repid    = pa_repid
        i_username = pa_user
        i_variant  = pa_lvari
      TABLES
        t_ltdx     = gt_ltdx
        t_ltdxt    = gt_ltdxt.

    IF gt_ltdx[] IS NOT INITIAL.
      LOOP AT so_user.
        LOOP AT gt_ltdx INTO gs_ltdx WHERE username = pa_user.
          gs_ltdx-username = so_user-low.
          APPEND gs_ltdx TO gt_ltdx.
        ENDLOOP.
        LOOP AT gt_ltdxt INTO gs_ltdxt WHERE username = pa_user.
          gs_ltdxt-username = so_user-low.
          APPEND gs_ltdxt TO gt_ltdxt.
        ENDLOOP.
      ENDLOOP.
      MODIFY ltdx FROM TABLE gt_ltdx.
      MODIFY ltdxt FROM TABLE gt_ltdxt.
      gv_msg = 'Copia completata'.
    ELSE.
      gv_msg = 'Nessun dato da copiare'.
    ENDIF.

  ELSE.

    CALL FUNCTION 'ZRFC_READ_VARI'
      DESTINATION pa_rfc
      EXPORTING
        i_repid   = pa_repid
        i_variant = pa_vari
      TABLES
        t_vari    = gt_vari
        t_varit   = gt_varit
        t_varid   = gt_varid.

    IF gt_vari[] IS NOT INITIAL.
      MODIFY vari FROM TABLE gt_vari.
      MODIFY varit FROM TABLE gt_varit.
      MODIFY varid FROM TABLE gt_varid.
      gv_msg = 'Copia completata'.
    ELSE.
      gv_msg = 'Nessun dato da copiare'.
    ENDIF.

  ENDIF.

END-OF-SELECTION.
  MESSAGE gv_msg TYPE 'I'.



FUNCTION zrfc_read_ltdx.
*"----------------------------------------------------------------------
*"*"Interfaccia locale:
*"  IMPORTING
*"     VALUE(I_REPID) TYPE  REPID
*"     VALUE(I_USERNAME) TYPE  SLIS_USER
*"     VALUE(I_VARIANT) TYPE  SLIS_VARI
*"  TABLES
*"      T_LTDX STRUCTURE  LTDX
*"      T_LTDXT STRUCTURE  LTDXT
*"----------------------------------------------------------------------

  RANGES: lr_user FOR ltdx-username,
          lr_vari FOR ltdx-variant.

  IF i_username IS NOT INITIAL.
    lr_user-sign   = 'I'.
    lr_user-option = 'EQ'.
    lr_user-low = i_username.
    APPEND lr_user.
  ENDIF.
  IF i_variant IS NOT INITIAL.
    lr_vari-sign   = 'I'.
    lr_vari-option = 'EQ'.
    lr_vari-low = i_variant.
    APPEND lr_vari.
  ENDIF.

  SELECT *
    FROM ltdx
    INTO TABLE t_ltdx
   WHERE report   = i_repid
     AND username IN lr_user
     AND variant  IN lr_vari.

  SELECT *
    FROM ltdxt
    INTO TABLE t_ltdxt
   WHERE report   = i_repid
     AND username IN lr_user
     AND variant  IN lr_vari.

ENDFUNCTION.



FUNCTION ZRFC_READ_VARI.
*"----------------------------------------------------------------------
*"*"Interfaccia locale:
*"  IMPORTING
*"     VALUE(I_REPID) TYPE  VARI_REPRT
*"     VALUE(I_VARIANT) TYPE  VARIANT
*"  TABLES
*"      T_VARI STRUCTURE  VARI
*"      T_VARIT STRUCTURE  VARIT
*"      T_VARID STRUCTURE  VARID
*"----------------------------------------------------------------------

  RANGES: lr_vari FOR vari-variant.

  IF i_variant IS NOT INITIAL.
    lr_vari-sign   = 'I'.
    lr_vari-option = 'EQ'.
    lr_vari-low = i_variant.
    APPEND lr_vari.
  ENDIF.

  SELECT *
    FROM vari
    INTO TABLE t_vari
   WHERE report  = i_repid
     AND variant IN lr_vari.

  SELECT *
    FROM varit
    INTO TABLE t_varit
   WHERE report  = i_repid
     AND variant IN lr_vari.

  SELECT *
    FROM varid
    INTO TABLE t_varid
   WHERE report  = i_repid
     AND variant IN lr_vari.

ENDFUNCTION.

mercoledì 25 gennaio 2017

L'ultima profezia del mondo degli uomini - L'epilogo, Silvana De Mari

L'ultima profezia del mondo degli uomini - L'epilogo
Di Silvana De Mari
Editore: Fanucci Editore


Lingua: Italiano | Numero di pagine: 297 | Isbn-13: 9788834721186 | Data di pubblicazione: 2012-11-xx | Genere: Fantasy

giovedì 12 gennaio 2017

Stardust, Neil Gaiman

Stardust
Di Neil Gaiman
Editore: Arnoldo Mondadori (Oscar Bestsellers, 1569)


Lingua: Italiano | Numero di pagine: 252 | Isbn-10: 8804547103 | Data di pubblicazione: 2005-05-xx | Traduttore: Maurizio Bartocci | Genere: Narrativa & Letteratura - Fantasy - Adolescenti

martedì 10 gennaio 2017

La bambina che salvava i libri, Markus Zusak

La bambina che salvava i libri
Di Markus Zusak
Editore: Frassinelli (Narrativa; 330)


Lingua: Italiano | Numero di pagine: 564 | Isbn-13: 9788888320397 | Data di pubblicazione: 01/01/2009 | Traduttore: Gian M. Giunghese | Genere: Narrativa & Letteratura - Storia - Fantasy