*----------------------------------------------------------------------*
* DECLARATIONS *
*----------------------------------------------------------------------*
DATA: gr_dref TYPE REF TO data,
gr_alv TYPE REF TO cl_salv_table.
FIELD-SYMBOLS: <gf_tab> TYPE STANDARD TABLE.
*----------------------------------------------------------------------*
* LAYOUT *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS: pa_tab TYPE tabname OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
*----------------------------------------------------------------------*
* PROGRAM BODY *
*----------------------------------------------------------------------*
START-OF-SELECTION.
CREATE DATA gr_dref TYPE TABLE OF (pa_tab).
ASSIGN gr_dref->* TO <gf_tab>.
SELECT *
FROM (pa_tab)
INTO TABLE <gf_tab>.
END-OF-SELECTION.
PERFORM output_alv.
*----------------------------------------------------------------------*
* FORM OUTPUT_ALV *
*----------------------------------------------------------------------*
FORM output_alv.
TYPE-POOLS slis.
DATA: ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv,
ls_layout TYPE slis_layout_alv,
ls_glay TYPE lvc_s_glay.
CLEAR lt_fieldcat[].
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-cprog
i_structure_name = pa_tab
i_inclname = sy-cprog
CHANGING
ct_fieldcat = lt_fieldcat.
ls_fieldcat-edit = 'X'.
MODIFY lt_fieldcat FROM ls_fieldcat
TRANSPORTING edit
WHERE col_pos > 0.
ls_layout-colwidth_optimize = 'X'.
ls_layout-zebra = 'X'.
ls_glay-edt_cll_cb = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_background_id = 'ALV_BACKGROUND'
i_grid_settings = ls_glay
is_layout = ls_layout
it_fieldcat = lt_fieldcat
i_save = 'A'
TABLES
t_outtab = <gf_tab>.
ENDFORM. "output_alv
*----------------------------------------------------------------------*
* FORM PF_STATUS_SET *
*----------------------------------------------------------------------*
FORM pf_status_set USING p_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD' EXCLUDING p_extab.
ENDFORM. "pf_status_set
*----------------------------------------------------------------------*
* FORM USER_COMMAND *
*----------------------------------------------------------------------*
FORM user_command USING p_ucomm LIKE sy-ucomm
p_selfield TYPE slis_selfield.
FIELD-SYMBOLS: <lf_line> TYPE any.
CASE p_ucomm.
WHEN '&SAVE'.
DELETE FROM (pa_tab).
LOOP AT <gf_tab> ASSIGNING <lf_line>.
MODIFY (pa_tab) FROM <lf_line>.
ENDLOOP.
WHEN '&APPEND'.
APPEND INITIAL LINE TO <gf_tab>.
p_selfield-refresh = 'X'.
WHEN '&DEL'.
DELETE <gf_tab> INDEX p_selfield-tabindex.
p_selfield-refresh = 'X'.
ENDCASE.
ENDFORM. "user_command
*----------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*----------------------------------------------------------------------*
FORM top_of_page.
DATA: lt_listheader TYPE slis_t_listheader,
ls_listheader TYPE slis_listheader.
ls_listheader-typ = 'H'.
ls_listheader-info = pa_tab.
APPEND ls_listheader TO lt_listheader.
ls_listheader-typ = 'A'.
CONCATENATE sy-datum+6(2) sy-datum+4(2) sy-datum+0(4)
INTO ls_listheader-info SEPARATED BY '/'.
CONCATENATE ':' ls_listheader-info
INTO ls_listheader-info SEPARATED BY space.
CONCATENATE 'Data'(a01) ls_listheader-info
INTO ls_listheader-info.
APPEND ls_listheader TO lt_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lt_listheader
i_logo = 'BENETTON_LOGO'.
ENDFORM. "top_of_page
*----------------------------------------------------------------------*
giovedì 2 febbraio 2017
SM30 custom
Pubblicato da
F/\B!O
alle
11:00
Commenta per primo!
Etichette: ABAP
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
*----------------------------------------------------------------------*
Pubblicato da
F/\B!O
alle
11:18
Commenta per primo!
Etichette: ABAP
domenica 29 gennaio 2017
Il giorno dei Trifidi, John Wyndham
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
Pubblicato da
F/\B!O
alle
13:46
Commenta per primo!
Etichette: letture digitali, libri
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.
Pubblicato da
F/\B!O
alle
11:55
Commenta per primo!
Etichette: ABAP
mercoledì 25 gennaio 2017
L'ultima profezia del mondo degli uomini - L'epilogo, Silvana De Mari
Di Silvana De Mari
Editore: Fanucci Editore
Lingua: Italiano | Numero di pagine: 297 | Isbn-13: 9788834721186 | Data di pubblicazione: 2012-11-xx | Genere: Fantasy
Pubblicato da
F/\B!O
alle
09:30
Commenta per primo!
Etichette: letture cartacee, libri
giovedì 12 gennaio 2017
Stardust, Neil Gaiman
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
Pubblicato da
F/\B!O
alle
13:38
Commenta per primo!
Etichette: letture cartacee, libri
martedì 10 gennaio 2017
La bambina che salvava i libri, Markus Zusak
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
Pubblicato da
F/\B!O
alle
15:59
Commenta per primo!
Etichette: letture digitali, libri