2007 Nov 14 6:42 PM
*&---------------------------------------------------------------------*
*& Report ZALV11 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
.
REPORT zalv11 LINE-SIZE 1023 MESSAGE-ID zz.
TYPE-POOLS : slis.
*----------------------------------------------------------------------*
* T A B L E S D E C L A R A T I O N S *
*----------------------------------------------------------------------*
TABLES : ce1eg01,
makt,
kna1,
t9zfprct,
tvkmt.
*----------------------------------------------------------------------*
* I N T E R N A L T A B L E D E C L A R A T I O N S *
*----------------------------------------------------------------------*
DATA : BEGIN OF itab OCCURS 0,
paledger TYPE ce1eg01-paledger, "Currency type for an operating concern
vrgar TYPE ce1eg01-vrgar, "Record Type
versi TYPE ce1eg01-versi, "Plan version (CO-PA)
perio TYPE ce1eg01-perio, "Period/year
paobjnr TYPE ce1eg01-paobjnr, "Profitability Segment no
pasubnr TYPE ce1eg01-pasubnr, "Profitability Segment changes
belnr TYPE ce1eg01-belnr, "Doc no of line item in profit
posnr TYPE ce1eg01-posnr, "Item no in CO-PA line item
hzdat TYPE ce1eg01-hzdat, "Date on which record was created
usnam TYPE ce1eg01-usnam, "Created by
gjahr TYPE ce1eg01-gjahr, "Fiscal year
perde TYPE ce1eg01-perde, "Period
kunnr LIKE ce1eg01-kndnr, "Customer
artnr TYPE ce1eg01-artnr, "Product Number
frwae TYPE ce1eg01-frwae, "Foreign currency key
kaufn TYPE ce1eg01-kaufn, "Sales order number
kdpos TYPE ce1eg01-kdpos, "Item no in Sales order
bzirk TYPE ce1eg01-bzirk, "Sales district
vkbur TYPE ce1eg01-vkbur, "Sales office
wwsap TYPE ce1eg01-wwsap, "Sales Person
ktgrm TYPE tvkmt-ktgrm, "AAG
land1 TYPE ce1eg01-land1, "Country Key
auart TYPE ce1eg01-auart, "Sales document type
kunwe TYPE ce1eg01-kunwe, "Ship-to-party
erlos TYPE ce1eg01-erlos, "Revenue
absmg TYPE ce1eg01-absmg, "Sales qty
kwfrgr TYPE ce1eg01-kwfrgr, "Freight
vvdis TYPE ce1eg01-vvdis, "Discounts
zprdgrp TYPE t9zfprct-zprdgrp, "Product group
name1 TYPE kna1-name1, "Customer Name
maktx TYPE makt-maktx, "Material Description
vtext TYPE tvkmt-vtext, "Description
name2 TYPE kna1-name1, "Sales Person Name
END OF itab.
DATA : BEGIN OF itab1 OCCURS 0,
perio TYPE ce1eg01-perio, "Period/year5
kunnr TYPE ce1eg01-kndnr, "Customer
artnr TYPE ce1eg01-artnr, "Product Number 21
kaufn TYPE ce1eg01-kaufn, "Sales order number28
kdpos TYPE ce1eg01-kdpos, "Item no in Sales order29
bzirk TYPE ce1eg01-bzirk, "Sales district58
vkbur TYPE ce1eg01-vkbur, "Sales office59
ktgrm TYPE tvkmt-ktgrm, "AAG 61
land1 TYPE ce1eg01-land1, "Country Key 63
auart TYPE ce1eg01-auart, "Sales document type68
kunwe TYPE ce1eg01-kunwe, "Ship-to-party71
zprdgrp TYPE t9zfprct-zprdgrp, "Product group
paledger TYPE ce1eg01-paledger, "Currency type for an operating concern
versi TYPE ce1eg01-versi, "Plan version (CO-PA)4
paobjnr TYPE ce1eg01-paobjnr, "Profitability Segment no6
pasubnr TYPE ce1eg01-pasubnr, "Profitability Segment changes7
belnr TYPE ce1eg01-belnr, "Doc no of line item in profit 8
posnr TYPE ce1eg01-posnr, "Item no in CO-PA line item 9
hzdat TYPE ce1eg01-hzdat, "Date on which record was created10
usnam TYPE ce1eg01-usnam, "Created by11
gjahr TYPE ce1eg01-gjahr, "Fiscal year12
perde TYPE ce1eg01-perde, "Period13
frwae TYPE ce1eg01-frwae, "Foreign currency key23
wwsap TYPE ce1eg01-wwsap, "Sales Person 60
erlos TYPE ce1eg01-erlos, "Revenue76
absmg TYPE ce1eg01-absmg, "Sales qty85
kwfrgr TYPE ce1eg01-kwfrgr, "Freight97
vvdis TYPE ce1eg01-vvdis, "Discounts98
name1 TYPE kna1-name1, "Customer Name
maktx TYPE makt-maktx, "Material Description
vtext TYPE tvkmt-vtext, "Description
name2 TYPE kna1-name1, "Sales Person Name
END OF itab1.
DATA : BEGIN OF itab2 OCCURS 0,
perio TYPE ce1eg01-perio, "Period/year
hzdat TYPE ce1eg01-hzdat, "Date on which record was created
usnam TYPE ce1eg01-usnam, "Created by
gjahr TYPE ce1eg01-gjahr, "Fiscal year
perde TYPE ce1eg01-perde, "Period
kunnr LIKE ce1eg01-kndnr, "Customer
artnr TYPE ce1eg01-artnr, "Product Number
frwae TYPE ce1eg01-frwae, "Foreign currency key
kaufn TYPE ce1eg01-kaufn, "Sales order number
kdpos TYPE ce1eg01-kdpos, "Item no in Sales order
bzirk TYPE ce1eg01-bzirk, "Sales district
vkbur TYPE ce1eg01-vkbur, "Sales office
wwsap TYPE ce1eg01-wwsap, "Sales Person
ktgrm TYPE tvkmt-ktgrm, "AAG
land1 TYPE ce1eg01-land1, "Country Key
auart TYPE ce1eg01-auart, "Sales document type
kunwe TYPE ce1eg01-kunwe, "Ship-to-party
erlos TYPE ce1eg01-erlos, "Revenue
absmg TYPE ce1eg01-absmg, "Sales qty
kwfrgr TYPE ce1eg01-kwfrgr, "Freight
vvdis TYPE ce1eg01-vvdis, "Discounts
zprdgrp TYPE t9zfprct-zprdgrp, "Product group
name1 TYPE kna1-name1, "Customer Name
maktx TYPE makt-maktx, "Material Description
vtext TYPE tvkmt-vtext, "Description
name2 TYPE kna1-name1, "Sales Person Name
END OF itab2.
DATA : BEGIN OF i_kna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF i_kna1.
DATA : BEGIN OF i_kna2 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF i_kna2.
DATA : BEGIN OF i_makt OCCURS 0,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
END OF i_makt.
DATA : wa_t9zfprct TYPE t9zfprct,
i_t9zfprct LIKE STANDARD TABLE OF wa_t9zfprct WITH HEADER LINE.
DATA : wa_tvkmt TYPE tvkmt,
i_tvkmt LIKE STANDARD TABLE OF wa_tvkmt WITH HEADER LINE.
DATA: wa_itab like itab.
DATA: wa_itab2 like itab2.
*----------------------------------------------------------------------*
* D A T A D E C L A R A T I O N F O R A L V *
*----------------------------------------------------------------------*
TYPE-POOLS: slis. "ALV Declarations
DATA: t_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
tt_fieldcat TYPE slis_t_fieldcat_alv,
x_fieldcat TYPE slis_fieldcat_alv.
*
DATA : mycat TYPE slis_t_fieldcat_alv ,
scat TYPE slis_fieldcat_alv,
gt_events TYPE slis_t_event.
*
DATA: g_repid LIKE sy-repid,
gd_layout TYPE slis_layout_alv,
gt_sort TYPE slis_t_sortinfo_alv,
gd_prntparams TYPE slis_print_alv,
rs_variant LIKE disvariant.
data: p_file TYPE rlgrap-filename value 'TEST3.txt'.
data: wa_tab2 like tab2.
*----------------------------------------------------------------------*
* D A T A D E C L A R A T I O N *
*----------------------------------------------------------------------*
DATA : t_lineno LIKE sy-tabix,
ld_linesc(10) TYPE c.
DATA : w_erlos TYPE ce1eg01-erlos,
w_absmg TYPE ce1eg01-absmg,
w_kwfrgr TYPE ce1eg01-kwfrgr,
w_vvdis TYPE ce1eg01-vvdis.
*----------------------------------------------------------------------*
* S E L E C T I O N S C R E E N *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_curr FOR ce1eg01-paledger ,
s_vrgar FOR ce1eg01-vrgar,
s_perio FOR ce1eg01-perio,
s_spras FOR makt-spras NO INTERVALS,
s_auart FOR ce1eg01-auart,
s_kaufn FOR ce1eg01-kaufn.
PARAMETERS: p_layout TYPE slis_vari.
SELECTION-SCREEN END OF BLOCK blk1.
*----------------------------------------------------------------------*
* A T S E L E C T I O N S C R E E N *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.
PERFORM alv_variant_f4 CHANGING p_layout.
*----------------------------------------------------------------------*
* S T A R T O F S E L E C T I O N
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM data_select.
DESCRIBE TABLE itab LINES t_lineno.
IF t_lineno = 0.
MESSAGE i000 WITH 'NO RECORD FOUND'.
ELSE.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM build_events.
PERFORM build_print_params.
* PERFORM calculate.
PERFORM call_alv.
PERFORM dataset.
ENDIF.
*&---------------------------------------------------------------------*
*& Form DATA_SELECT
*&---------------------------------------------------------------------*
FORM data_select.
SELECT paledger vrgar versi perio paobjnr pasubnr belnr posnr hzdat usnam gjahr perde kndnr artnr frwae kaufn kdpos bzirk
vkbur wwsap ktgrm land1 auart kunwe erlos absmg kwfrgr vvdis
FROM ce1eg01 INTO TABLE itab
WHERE paledger IN s_curr
AND vrgar IN s_vrgar
AND perio IN s_perio
AND kaufn IN s_kaufn
AND auart IN s_auart.
IF sy-subrc = 0.
SELECT matnr maktx FROM makt INTO TABLE i_makt
FOR ALL ENTRIES IN itab
WHERE matnr = itab-artnr
AND spras IN s_spras.
* Reading sales person
SELECT kunnr name1 FROM kna1 INTO TABLE i_kna1
FOR ALL ENTRIES IN itab
WHERE kunnr = itab-kunnr.
* Reading ship to party
SELECT kunnr name1 FROM kna1 INTO TABLE i_kna2
FOR ALL ENTRIES IN itab
WHERE kunnr = itab-wwsap. "kunwe.
SELECT * FROM t9zfprct INTO TABLE i_t9zfprct
FOR ALL ENTRIES IN itab
WHERE ktgrm = itab-ktgrm.
SELECT * FROM tvkmt INTO TABLE i_tvkmt
FOR ALL ENTRIES IN itab
WHERE ktgrm = itab-ktgrm.
SORT i_kna1 BY kunnr.
SORT i_kna2 BY kunnr.
SORT i_t9zfprct BY ktgrm.
SORT i_tvkmt BY ktgrm.
LOOP AT itab.
MOVE-CORRESPONDING itab TO itab1.
READ TABLE i_kna1 WITH KEY kunnr = itab-kunnr BINARY SEARCH.
IF sy-subrc = 0.
itab1-name1 = i_kna1-name1.
ENDIF.
*
READ TABLE i_kna2 WITH KEY kunnr = itab-wwsap BINARY SEARCH.
IF sy-subrc = 0.
itab1-name2 = i_kna2-name1.
ENDIF.
*
READ TABLE i_t9zfprct WITH KEY ktgrm = itab-ktgrm BINARY SEARCH.
IF sy-subrc = 0.
itab1-zprdgrp = i_t9zfprct-zprdgrp.
ENDIF.
*
READ TABLE i_tvkmt WITH KEY ktgrm = itab-ktgrm BINARY SEARCH.
IF sy-subrc = 0.
itab1-ktgrm = i_tvkmt-ktgrm.
itab1-vtext = i_tvkmt-vtext.
ENDIF.
*
READ TABLE i_makt WITH KEY matnr = itab-artnr.
IF sy-subrc = 0.
itab1-maktx = i_makt-maktx.
ENDIF.
APPEND itab1.
CLEAR itab1.
ENDLOOP.
REFRESH itab.
SORT itab1 BY perio kunnr artnr kaufn kdpos bzirk vkbur ktgrm land1 auart kunwe zprdgrp paledger.
CLEAR : w_erlos ,w_absmg ,w_kwfrgr ,w_vvdis.
*
LOOP AT itab1.
MOVE-CORRESPONDING itab1 TO itab.
SHIFT itab-wwsap LEFT DELETING LEADING '0'.
SHIFT itab-kunnr LEFT DELETING LEADING '0'.
SHIFT itab-kaufn LEFT DELETING LEADING '0'.
SHIFT itab-kunwe LEFT DELETING LEADING '0'.
SHIFT itab-belnr LEFT DELETING LEADING '0'.
w_erlos = w_erlos + itab1-erlos.
w_absmg = w_absmg + itab1-absmg.
w_kwfrgr = w_kwfrgr + itab1-kwfrgr.
w_vvdis = w_vvdis + itab1-vvdis.
AT END OF paledger.
MOVE : w_erlos TO itab-erlos,
w_absmg TO itab-absmg,
w_kwfrgr TO itab-kwfrgr,
w_vvdis TO itab-vvdis.
APPEND itab.
CLEAR itab.
CLEAR : w_erlos ,w_absmg ,w_kwfrgr ,w_vvdis.
ENDAT.
ENDLOOP.
ENDIF.
clear itab.
loop at itab.
move-corresponding itab to itab2.
append itab2.
endloop.
ENDFORM. "data_select
*&---------------------------------------------------------------------*
*& Form build_fieldcatalog
*&---------------------------------------------------------------------*
* Fill field catalog and sort catelog with output fields
*----------------------------------------------------------------------*
FORM build_fieldcatalog.
* PERFORM append_fldcat USING 'PALEDGER' 'ITAB' 'Currency type' 01 .
PERFORM append_fldcat USING 'ZPRDGRP' 'ITAB' 'Product group' 01 .
PERFORM append_fldcat USING 'KUNNR' 'ITAB' 'Customer' 02 .
PERFORM append_fldcat USING 'NAME1' 'ITAB' 'Customer Name' 03 .
PERFORM append_fldcat USING 'ARTNR' 'ITAB' 'Product Number' 04 .
PERFORM append_fldcat USING 'MAKTX' 'ITAB' 'Material Description' 05 .
PERFORM append_fldcat USING 'KTGRM' 'ITAB' 'AAG' 06 .
PERFORM append_fldcat USING 'VTEXT' 'ITAB' 'Description' 07 .
PERFORM append_fldcat USING 'WWSAP' 'ITAB' 'Sales Person' 08 .
PERFORM append_fldcat USING 'NAME2' 'ITAB' 'Sales Person Name' 09 .
PERFORM append_fldcat USING 'VKBUR' 'ITAB' 'Sales office' 10 .
PERFORM append_fldcat USING 'LAND1' 'ITAB' 'Country Key' 11 .
PERFORM append_fldcat USING 'KAUFN' 'ITAB' 'Sales order number' 12 .
PERFORM append_fldcat USING 'KDPOS' 'ITAB' 'Item no in Sales order' 13 .
PERFORM append_fldcat USING 'PERIO' 'ITAB' 'Period/year' 14 .
PERFORM append_fldcat USING 'HZDAT' 'ITAB' 'Date on which record was created' 15 .
PERFORM append_fldcat USING 'ABSMG' 'ITAB' 'Sales qty' 16 .
PERFORM append_fldcat USING 'ERLOS' 'ITAB' 'Revenue' 17 .
PERFORM append_fldcat USING 'VVDIS' 'ITAB' 'Discounts' 18 .
PERFORM append_fldcat USING 'KWFRGR' 'ITAB' 'Freight' 19 .
PERFORM append_fldcat USING 'FRWAE' 'ITAB' 'Foreign currency key' 20 .
PERFORM append_fldcat USING 'AUART' 'ITAB' 'Sales document type' 21 .
PERFORM append_fldcat USING 'KUNWE' 'ITAB' 'Ship-to-party' 22 .
PERFORM append_fldcat USING 'BZIRK' 'ITAB' 'Sales district' 23 .
* PERFORM append_fldcat USING 'BELNR' 'ITAB' 'Doc no of line item in profit' 24 .
* PERFORM append_fldcat USING 'VERSI' 'ITAB' 'Plan version (CO-PA)' 25 .
* PERFORM append_fldcat USING 'PAOBJNR' 'ITAB' 'Profitability Segment no' 26 .
* PERFORM append_fldcat USING 'PASUBNR' 'ITAB' 'Profitability Segment changes' 27 .
* PERFORM append_fldcat USING 'POSNR' 'ITAB' 'Item no in CO-PA line item' 28 .
PERFORM append_fldcat USING 'USNAM' 'ITAB' 'Created by' 29 .
PERFORM append_fldcat USING 'GJAHR' 'ITAB' 'Fiscal year' 30 .
PERFORM append_fldcat USING 'PERDE' 'ITAB' 'Period' 31 .
ENDFORM. "build_T_FIELDCAT
*&---------------------------------------------------------------------*
*& Form build_layout
*&---------------------------------------------------------------------*
FORM build_layout .
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
ENDFORM. " build_layout
*&---------------------------------------------------------------------*
*& Form build_events
*&---------------------------------------------------------------------*
FORM build_events .
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events[].
READ TABLE gt_events WITH KEY name = slis_ev_end_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_PAGE' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
READ TABLE gt_events WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_LIST' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
READ TABLE gt_events
WITH KEY name = slis_ev_user_command INTO ls_event.
IF sy-subrc = 0.
ls_event-name = 'USER_COMMAND'.
ls_event-form = 'USER_COMMAND'.
APPEND ls_event TO gt_events.
ENDIF.
ENDFORM. " build_events
*&---------------------------------------------------------------------*
*& Form BUILD_PRINT_PARAMS
*&---------------------------------------------------------------------*
* Setup print parameters
*----------------------------------------------------------------------*
FORM build_print_params.
gd_prntparams-reserve_lines = '3'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
ENDFORM. " BUILD_PRINT_PARAMS
*&---------------------------------------------------------------------*
*& Form call_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM call_alv .
g_repid = sy-repid.
rs_variant-variant = p_layout.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
is_layout = gd_layout
it_fieldcat = t_fieldcat[]
it_events = gt_events
is_print = gd_prntparams
i_save = 'X'
is_variant = rs_variant
TABLES
t_outtab = itab2
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " call_alv
*-------------------------------------------------------------------*
* Form TOP-OF-PAGE *
*-------------------------------------------------------------------*
* ALV Report Header *
*-------------------------------------------------------------------*
FORM top-of-page.
*ALV Header declarations
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
t_line LIKE wa_header-info.
* Title
wa_header-typ = 'H'.
wa_header-info = 'PA Sales Book Summary report'.
APPEND wa_header TO t_header.
CLEAR wa_header.
* Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
APPEND wa_header TO t_header.
CLEAR: wa_header.
* Total No. of Records Selected
DESCRIBE TABLE itab LINES t_lineno.
ld_linesc = t_lineno.
CONCATENATE 'Total No. of Records Selected: ' ld_linesc
INTO t_line SEPARATED BY space.
wa_header-typ = 'A'.
wa_header-info = t_line.
APPEND wa_header TO t_header.
CLEAR: wa_header, t_line.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. "top-of-page
*&---------------------------------------------------------------------*
*& Form END_OF_PAGE
*&---------------------------------------------------------------------*
FORM end_of_page.
DATA: listwidth TYPE i,
ld_pagepos(10) TYPE c,
ld_page(10) TYPE c.
WRITE: sy-uline(50).
SKIP.
WRITE:/40 'Page:', sy-pagno .
ENDFORM. "END_OF_PAGE
*&---------------------------------------------------------------------*
*& Form END_OF_LIST
*&---------------------------------------------------------------------*
FORM end_of_list.
DATA: listwidth TYPE i,
ld_pagepos(10) TYPE c,
ld_page(10) TYPE c.
SKIP.
WRITE:/40 'Page:', sy-pagno .
ENDFORM. "END_OF_LIST
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELDtext
*---------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
IF r_ucomm = '&IC1'.
CASE rs_selfield-fieldname.
WHEN 'KUNNR'.
SET PARAMETER ID 'KUN' FIELD rs_selfield-value.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDIF.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form append_fldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM append_fldcat USING par_fldname par_tabname par_seltext pos.
t_fieldcat-tabname = par_tabname.
t_fieldcat-fieldname = par_fldname .
* t_fieldcat-seltext_s = par_seltext.
* t_fieldcat-seltext_m = par_seltext.
t_fieldcat-seltext_l = par_seltext.
t_fieldcat-reptext_ddic = par_seltext.
t_fieldcat-col_pos = pos.
* t_fieldcat-just = 'R'.
t_fieldcat-lzero = ' '.
APPEND t_fieldcat.
ENDFORM. " append_fldcat
*&--------------------------------------------------------------------*
*& Form ALV_VARIANT_F4
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->PA_VARI text
*---------------------------------------------------------------------*
FORM alv_variant_f4 CHANGING p_layout.
DATA nof4 TYPE c.
CLEAR nof4.
LOOP AT SCREEN.
IF screen-name = 'P_LAYOUT'.
IF screen-input = 0.
nof4 = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
rs_variant-report = sy-repid.
rs_variant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = rs_variant
i_save = 'A'
IMPORTING
es_variant = rs_variant
EXCEPTIONS
OTHERS = 1.
IF sy-subrc = 0 AND nof4 EQ space.
p_layout = rs_variant-variant.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form dataset
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form dataset .
OPEN DATASET P_FILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
*--- Display error messages if any.
IF sy-subrc NE 0.
MESSAGE e001(zsd_mes).
EXIT.
ELSE.
*---Data is downloaded to the application server file path
LOOP AT itab2.
TRANSFER itab2 TO p_file.
ENDLOOP.
ENDIF.
*--Close the Application server file (Mandatory).
CLOSE DATASET p_file.
endform. " dataset
When I execute this code and move back it shows the following error.I want to move the output to p_file in application server.Plz suggest what to do.
Only character-type data objects are supported at the argument
position "f" for the statement
"TRANSFER f TO ...".
In this case, the operand "f" has the non-character-type "u". The
current program is flagged as a Unicode program. In the Unicode context,
type X fields are seen as non-character-type, as are structures that
contain non-character-type components.
*&---------------------------------------------------------------------*
*& Report ZALV11 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
.
REPORT zalv11 LINE-SIZE 1023 MESSAGE-ID zz.
TYPE-POOLS : slis.
*----------------------------------------------------------------------*
* T A B L E S D E C L A R A T I O N S *
*----------------------------------------------------------------------*
TABLES : ce1eg01,
makt,
kna1,
t9zfprct,
tvkmt.
*----------------------------------------------------------------------*
* I N T E R N A L T A B L E D E C L A R A T I O N S *
*----------------------------------------------------------------------*
DATA : BEGIN OF itab OCCURS 0,
paledger TYPE ce1eg01-paledger, "Currency type for an operating concern
vrgar TYPE ce1eg01-vrgar, "Record Type
versi TYPE ce1eg01-versi, "Plan version (CO-PA)
perio TYPE ce1eg01-perio, "Period/year
paobjnr TYPE ce1eg01-paobjnr, "Profitability Segment no
pasubnr TYPE ce1eg01-pasubnr, "Profitability Segment changes
belnr TYPE ce1eg01-belnr, "Doc no of line item in profit
posnr TYPE ce1eg01-posnr, "Item no in CO-PA line item
hzdat TYPE ce1eg01-hzdat, "Date on which record was created
usnam TYPE ce1eg01-usnam, "Created by
gjahr TYPE ce1eg01-gjahr, "Fiscal year
perde TYPE ce1eg01-perde, "Period
kunnr LIKE ce1eg01-kndnr, "Customer
artnr TYPE ce1eg01-artnr, "Product Number
frwae TYPE ce1eg01-frwae, "Foreign currency key
kaufn TYPE ce1eg01-kaufn, "Sales order number
kdpos TYPE ce1eg01-kdpos, "Item no in Sales order
bzirk TYPE ce1eg01-bzirk, "Sales district
vkbur TYPE ce1eg01-vkbur, "Sales office
wwsap TYPE ce1eg01-wwsap, "Sales Person
ktgrm TYPE tvkmt-ktgrm, "AAG
land1 TYPE ce1eg01-land1, "Country Key
auart TYPE ce1eg01-auart, "Sales document type
kunwe TYPE ce1eg01-kunwe, "Ship-to-party
erlos TYPE ce1eg01-erlos, "Revenue
absmg TYPE ce1eg01-absmg, "Sales qty
kwfrgr TYPE ce1eg01-kwfrgr, "Freight
vvdis TYPE ce1eg01-vvdis, "Discounts
zprdgrp TYPE t9zfprct-zprdgrp, "Product group
name1 TYPE kna1-name1, "Customer Name
maktx TYPE makt-maktx, "Material Description
vtext TYPE tvkmt-vtext, "Description
name2 TYPE kna1-name1, "Sales Person Name
END OF itab.
DATA : BEGIN OF itab1 OCCURS 0,
perio TYPE ce1eg01-perio, "Period/year5
kunnr TYPE ce1eg01-kndnr, "Customer
artnr TYPE ce1eg01-artnr, "Product Number 21
kaufn TYPE ce1eg01-kaufn, "Sales order number28
kdpos TYPE ce1eg01-kdpos, "Item no in Sales order29
bzirk TYPE ce1eg01-bzirk, "Sales district58
vkbur TYPE ce1eg01-vkbur, "Sales office59
ktgrm TYPE tvkmt-ktgrm, "AAG 61
land1 TYPE ce1eg01-land1, "Country Key 63
auart TYPE ce1eg01-auart, "Sales document type68
kunwe TYPE ce1eg01-kunwe, "Ship-to-party71
zprdgrp TYPE t9zfprct-zprdgrp, "Product group
paledger TYPE ce1eg01-paledger, "Currency type for an operating concern
versi TYPE ce1eg01-versi, "Plan version (CO-PA)4
paobjnr TYPE ce1eg01-paobjnr, "Profitability Segment no6
pasubnr TYPE ce1eg01-pasubnr, "Profitability Segment changes7
belnr TYPE ce1eg01-belnr, "Doc no of line item in profit 8
posnr TYPE ce1eg01-posnr, "Item no in CO-PA line item 9
hzdat TYPE ce1eg01-hzdat, "Date on which record was created10
usnam TYPE ce1eg01-usnam, "Created by11
gjahr TYPE ce1eg01-gjahr, "Fiscal year12
perde TYPE ce1eg01-perde, "Period13
frwae TYPE ce1eg01-frwae, "Foreign currency key23
wwsap TYPE ce1eg01-wwsap, "Sales Person 60
erlos TYPE ce1eg01-erlos, "Revenue76
absmg TYPE ce1eg01-absmg, "Sales qty85
kwfrgr TYPE ce1eg01-kwfrgr, "Freight97
vvdis TYPE ce1eg01-vvdis, "Discounts98
name1 TYPE kna1-name1, "Customer Name
maktx TYPE makt-maktx, "Material Description
vtext TYPE tvkmt-vtext, "Description
name2 TYPE kna1-name1, "Sales Person Name
END OF itab1.
DATA : BEGIN OF itab2 OCCURS 0,
perio TYPE ce1eg01-perio, "Period/year
hzdat TYPE ce1eg01-hzdat, "Date on which record was created
usnam TYPE ce1eg01-usnam, "Created by
gjahr TYPE ce1eg01-gjahr, "Fiscal year
perde TYPE ce1eg01-perde, "Period
kunnr LIKE ce1eg01-kndnr, "Customer
artnr TYPE ce1eg01-artnr, "Product Number
frwae TYPE ce1eg01-frwae, "Foreign currency key
kaufn TYPE ce1eg01-kaufn, "Sales order number
kdpos TYPE ce1eg01-kdpos, "Item no in Sales order
bzirk TYPE ce1eg01-bzirk, "Sales district
vkbur TYPE ce1eg01-vkbur, "Sales office
wwsap TYPE ce1eg01-wwsap, "Sales Person
ktgrm TYPE tvkmt-ktgrm, "AAG
land1 TYPE ce1eg01-land1, "Country Key
auart TYPE ce1eg01-auart, "Sales document type
kunwe TYPE ce1eg01-kunwe, "Ship-to-party
erlos TYPE ce1eg01-erlos, "Revenue
absmg TYPE ce1eg01-absmg, "Sales qty
kwfrgr TYPE ce1eg01-kwfrgr, "Freight
vvdis TYPE ce1eg01-vvdis, "Discounts
zprdgrp TYPE t9zfprct-zprdgrp, "Product group
name1 TYPE kna1-name1, "Customer Name
maktx TYPE makt-maktx, "Material Description
vtext TYPE tvkmt-vtext, "Description
name2 TYPE kna1-name1, "Sales Person Name
END OF itab2.
DATA : BEGIN OF i_kna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF i_kna1.
DATA : BEGIN OF i_kna2 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF i_kna2.
DATA : BEGIN OF i_makt OCCURS 0,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
END OF i_makt.
DATA : wa_t9zfprct TYPE t9zfprct,
i_t9zfprct LIKE STANDARD TABLE OF wa_t9zfprct WITH HEADER LINE.
DATA : wa_tvkmt TYPE tvkmt,
i_tvkmt LIKE STANDARD TABLE OF wa_tvkmt WITH HEADER LINE.
DATA: wa_itab like itab.
DATA: wa_itab2 like itab2.
*----------------------------------------------------------------------*
* D A T A D E C L A R A T I O N F O R A L V *
*----------------------------------------------------------------------*
TYPE-POOLS: slis. "ALV Declarations
DATA: t_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
tt_fieldcat TYPE slis_t_fieldcat_alv,
x_fieldcat TYPE slis_fieldcat_alv.
*
DATA : mycat TYPE slis_t_fieldcat_alv ,
scat TYPE slis_fieldcat_alv,
gt_events TYPE slis_t_event.
*
DATA: g_repid LIKE sy-repid,
gd_layout TYPE slis_layout_alv,
gt_sort TYPE slis_t_sortinfo_alv,
gd_prntparams TYPE slis_print_alv,
rs_variant LIKE disvariant.
data: p_file TYPE rlgrap-filename value 'TEST3.txt'.
data: wa_tab2 like tab2.
*----------------------------------------------------------------------*
* D A T A D E C L A R A T I O N *
*----------------------------------------------------------------------*
DATA : t_lineno LIKE sy-tabix,
ld_linesc(10) TYPE c.
DATA : w_erlos TYPE ce1eg01-erlos,
w_absmg TYPE ce1eg01-absmg,
w_kwfrgr TYPE ce1eg01-kwfrgr,
w_vvdis TYPE ce1eg01-vvdis.
*----------------------------------------------------------------------*
* S E L E C T I O N S C R E E N *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_curr FOR ce1eg01-paledger ,
s_vrgar FOR ce1eg01-vrgar,
s_perio FOR ce1eg01-perio,
s_spras FOR makt-spras NO INTERVALS,
s_auart FOR ce1eg01-auart,
s_kaufn FOR ce1eg01-kaufn.
PARAMETERS: p_layout TYPE slis_vari.
SELECTION-SCREEN END OF BLOCK blk1.
*----------------------------------------------------------------------*
* A T S E L E C T I O N S C R E E N *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.
PERFORM alv_variant_f4 CHANGING p_layout.
*----------------------------------------------------------------------*
* S T A R T O F S E L E C T I O N
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM data_select.
DESCRIBE TABLE itab LINES t_lineno.
IF t_lineno = 0.
MESSAGE i000 WITH 'NO RECORD FOUND'.
ELSE.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM build_events.
PERFORM build_print_params.
* PERFORM calculate.
PERFORM call_alv.
PERFORM dataset.
ENDIF.
*&---------------------------------------------------------------------*
*& Form DATA_SELECT
*&---------------------------------------------------------------------*
FORM data_select.
SELECT paledger vrgar versi perio paobjnr pasubnr belnr posnr hzdat usnam gjahr perde kndnr artnr frwae kaufn kdpos bzirk
vkbur wwsap ktgrm land1 auart kunwe erlos absmg kwfrgr vvdis
FROM ce1eg01 INTO TABLE itab
WHERE paledger IN s_curr
AND vrgar IN s_vrgar
AND perio IN s_perio
AND kaufn IN s_kaufn
AND auart IN s_auart.
IF sy-subrc = 0.
SELECT matnr maktx FROM makt INTO TABLE i_makt
FOR ALL ENTRIES IN itab
WHERE matnr = itab-artnr
AND spras IN s_spras.
* Reading sales person
SELECT kunnr name1 FROM kna1 INTO TABLE i_kna1
FOR ALL ENTRIES IN itab
WHERE kunnr = itab-kunnr.
* Reading ship to party
SELECT kunnr name1 FROM kna1 INTO TABLE i_kna2
FOR ALL ENTRIES IN itab
WHERE kunnr = itab-wwsap. "kunwe.
SELECT * FROM t9zfprct INTO TABLE i_t9zfprct
FOR ALL ENTRIES IN itab
WHERE ktgrm = itab-ktgrm.
SELECT * FROM tvkmt INTO TABLE i_tvkmt
FOR ALL ENTRIES IN itab
WHERE ktgrm = itab-ktgrm.
SORT i_kna1 BY kunnr.
SORT i_kna2 BY kunnr.
SORT i_t9zfprct BY ktgrm.
SORT i_tvkmt BY ktgrm.
LOOP AT itab.
MOVE-CORRESPONDING itab TO itab1.
READ TABLE i_kna1 WITH KEY kunnr = itab-kunnr BINARY SEARCH.
IF sy-subrc = 0.
itab1-name1 = i_kna1-name1.
ENDIF.
*
READ TABLE i_kna2 WITH KEY kunnr = itab-wwsap BINARY SEARCH.
IF sy-subrc = 0.
itab1-name2 = i_kna2-name1.
ENDIF.
*
READ TABLE i_t9zfprct WITH KEY ktgrm = itab-ktgrm BINARY SEARCH.
IF sy-subrc = 0.
itab1-zprdgrp = i_t9zfprct-zprdgrp.
ENDIF.
*
READ TABLE i_tvkmt WITH KEY ktgrm = itab-ktgrm BINARY SEARCH.
IF sy-subrc = 0.
itab1-ktgrm = i_tvkmt-ktgrm.
itab1-vtext = i_tvkmt-vtext.
ENDIF.
*
READ TABLE i_makt WITH KEY matnr = itab-artnr.
IF sy-subrc = 0.
itab1-maktx = i_makt-maktx.
ENDIF.
APPEND itab1.
CLEAR itab1.
ENDLOOP.
REFRESH itab.
SORT itab1 BY perio kunnr artnr kaufn kdpos bzirk vkbur ktgrm land1 auart kunwe zprdgrp paledger.
CLEAR : w_erlos ,w_absmg ,w_kwfrgr ,w_vvdis.
*
LOOP AT itab1.
MOVE-CORRESPONDING itab1 TO itab.
SHIFT itab-wwsap LEFT DELETING LEADING '0'.
SHIFT itab-kunnr LEFT DELETING LEADING '0'.
SHIFT itab-kaufn LEFT DELETING LEADING '0'.
SHIFT itab-kunwe LEFT DELETING LEADING '0'.
SHIFT itab-belnr LEFT DELETING LEADING '0'.
w_erlos = w_erlos + itab1-erlos.
w_absmg = w_absmg + itab1-absmg.
w_kwfrgr = w_kwfrgr + itab1-kwfrgr.
w_vvdis = w_vvdis + itab1-vvdis.
AT END OF paledger.
MOVE : w_erlos TO itab-erlos,
w_absmg TO itab-absmg,
w_kwfrgr TO itab-kwfrgr,
w_vvdis TO itab-vvdis.
APPEND itab.
CLEAR itab.
CLEAR : w_erlos ,w_absmg ,w_kwfrgr ,w_vvdis.
ENDAT.
ENDLOOP.
ENDIF.
clear itab.
loop at itab.
move-corresponding itab to itab2.
append itab2.
endloop.
ENDFORM. "data_select
*&---------------------------------------------------------------------*
*& Form build_fieldcatalog
*&---------------------------------------------------------------------*
* Fill field catalog and sort catelog with output fields
*----------------------------------------------------------------------*
FORM build_fieldcatalog.
* PERFORM append_fldcat USING 'PALEDGER' 'ITAB' 'Currency type' 01 .
PERFORM append_fldcat USING 'ZPRDGRP' 'ITAB' 'Product group' 01 .
PERFORM append_fldcat USING 'KUNNR' 'ITAB' 'Customer' 02 .
PERFORM append_fldcat USING 'NAME1' 'ITAB' 'Customer Name' 03 .
PERFORM append_fldcat USING 'ARTNR' 'ITAB' 'Product Number' 04 .
PERFORM append_fldcat USING 'MAKTX' 'ITAB' 'Material Description' 05 .
PERFORM append_fldcat USING 'KTGRM' 'ITAB' 'AAG' 06 .
PERFORM append_fldcat USING 'VTEXT' 'ITAB' 'Description' 07 .
PERFORM append_fldcat USING 'WWSAP' 'ITAB' 'Sales Person' 08 .
PERFORM append_fldcat USING 'NAME2' 'ITAB' 'Sales Person Name' 09 .
PERFORM append_fldcat USING 'VKBUR' 'ITAB' 'Sales office' 10 .
PERFORM append_fldcat USING 'LAND1' 'ITAB' 'Country Key' 11 .
PERFORM append_fldcat USING 'KAUFN' 'ITAB' 'Sales order number' 12 .
PERFORM append_fldcat USING 'KDPOS' 'ITAB' 'Item no in Sales order' 13 .
PERFORM append_fldcat USING 'PERIO' 'ITAB' 'Period/year' 14 .
PERFORM append_fldcat USING 'HZDAT' 'ITAB' 'Date on which record was created' 15 .
PERFORM append_fldcat USING 'ABSMG' 'ITAB' 'Sales qty' 16 .
PERFORM append_fldcat USING 'ERLOS' 'ITAB' 'Revenue' 17 .
PERFORM append_fldcat USING 'VVDIS' 'ITAB' 'Discounts' 18 .
PERFORM append_fldcat USING 'KWFRGR' 'ITAB' 'Freight' 19 .
PERFORM append_fldcat USING 'FRWAE' 'ITAB' 'Foreign currency key' 20 .
PERFORM append_fldcat USING 'AUART' 'ITAB' 'Sales document type' 21 .
PERFORM append_fldcat USING 'KUNWE' 'ITAB' 'Ship-to-party' 22 .
PERFORM append_fldcat USING 'BZIRK' 'ITAB' 'Sales district' 23 .
* PERFORM append_fldcat USING 'BELNR' 'ITAB' 'Doc no of line item in profit' 24 .
* PERFORM append_fldcat USING 'VERSI' 'ITAB' 'Plan version (CO-PA)' 25 .
* PERFORM append_fldcat USING 'PAOBJNR' 'ITAB' 'Profitability Segment no' 26 .
* PERFORM append_fldcat USING 'PASUBNR' 'ITAB' 'Profitability Segment changes' 27 .
* PERFORM append_fldcat USING 'POSNR' 'ITAB' 'Item no in CO-PA line item' 28 .
PERFORM append_fldcat USING 'USNAM' 'ITAB' 'Created by' 29 .
PERFORM append_fldcat USING 'GJAHR' 'ITAB' 'Fiscal year' 30 .
PERFORM append_fldcat USING 'PERDE' 'ITAB' 'Period' 31 .
ENDFORM. "build_T_FIELDCAT
*&---------------------------------------------------------------------*
*& Form build_layout
*&---------------------------------------------------------------------*
FORM build_layout .
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
ENDFORM. " build_layout
*&---------------------------------------------------------------------*
*& Form build_events
*&---------------------------------------------------------------------*
FORM build_events .
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events[].
READ TABLE gt_events WITH KEY name = slis_ev_end_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_PAGE' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
READ TABLE gt_events WITH KEY name = slis_ev_end_of_list
INTO ls_event.
IF sy-subrc = 0.
MOVE 'END_OF_LIST' TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
READ TABLE gt_events
WITH KEY name = slis_ev_user_command INTO ls_event.
IF sy-subrc = 0.
ls_event-name = 'USER_COMMAND'.
ls_event-form = 'USER_COMMAND'.
APPEND ls_event TO gt_events.
ENDIF.
ENDFORM. " build_events
*&---------------------------------------------------------------------*
*& Form BUILD_PRINT_PARAMS
*&---------------------------------------------------------------------*
* Setup print parameters
*----------------------------------------------------------------------*
FORM build_print_params.
gd_prntparams-reserve_lines = '3'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
ENDFORM. " BUILD_PRINT_PARAMS
*&---------------------------------------------------------------------*
*& Form call_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM call_alv .
g_repid = sy-repid.
rs_variant-variant = p_layout.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
is_layout = gd_layout
it_fieldcat = t_fieldcat[]
it_events = gt_events
is_print = gd_prntparams
i_save = 'X'
is_variant = rs_variant
TABLES
t_outtab = itab2
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " call_alv
*-------------------------------------------------------------------*
* Form TOP-OF-PAGE *
*-------------------------------------------------------------------*
* ALV Report Header *
*-------------------------------------------------------------------*
FORM top-of-page.
*ALV Header declarations
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
t_line LIKE wa_header-info.
* Title
wa_header-typ = 'H'.
wa_header-info = 'PA Sales Book Summary report'.
APPEND wa_header TO t_header.
CLEAR wa_header.
* Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
APPEND wa_header TO t_header.
CLEAR: wa_header.
* Total No. of Records Selected
DESCRIBE TABLE itab LINES t_lineno.
ld_linesc = t_lineno.
CONCATENATE 'Total No. of Records Selected: ' ld_linesc
INTO t_line SEPARATED BY space.
wa_header-typ = 'A'.
wa_header-info = t_line.
APPEND wa_header TO t_header.
CLEAR: wa_header, t_line.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. "top-of-page
*&---------------------------------------------------------------------*
*& Form END_OF_PAGE
*&---------------------------------------------------------------------*
FORM end_of_page.
DATA: listwidth TYPE i,
ld_pagepos(10) TYPE c,
ld_page(10) TYPE c.
WRITE: sy-uline(50).
SKIP.
WRITE:/40 'Page:', sy-pagno .
ENDFORM. "END_OF_PAGE
*&---------------------------------------------------------------------*
*& Form END_OF_LIST
*&---------------------------------------------------------------------*
FORM end_of_list.
DATA: listwidth TYPE i,
ld_pagepos(10) TYPE c,
ld_page(10) TYPE c.
SKIP.
WRITE:/40 'Page:', sy-pagno .
ENDFORM. "END_OF_LIST
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELDtext
*---------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
IF r_ucomm = '&IC1'.
CASE rs_selfield-fieldname.
WHEN 'KUNNR'.
SET PARAMETER ID 'KUN' FIELD rs_selfield-value.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDIF.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form append_fldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM append_fldcat USING par_fldname par_tabname par_seltext pos.
t_fieldcat-tabname = par_tabname.
t_fieldcat-fieldname = par_fldname .
* t_fieldcat-seltext_s = par_seltext.
* t_fieldcat-seltext_m = par_seltext.
t_fieldcat-seltext_l = par_seltext.
t_fieldcat-reptext_ddic = par_seltext.
t_fieldcat-col_pos = pos.
* t_fieldcat-just = 'R'.
t_fieldcat-lzero = ' '.
APPEND t_fieldcat.
ENDFORM. " append_fldcat
*&--------------------------------------------------------------------*
*& Form ALV_VARIANT_F4
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->PA_VARI text
*---------------------------------------------------------------------*
FORM alv_variant_f4 CHANGING p_layout.
DATA nof4 TYPE c.
CLEAR nof4.
LOOP AT SCREEN.
IF screen-name = 'P_LAYOUT'.
IF screen-input = 0.
nof4 = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
rs_variant-report = sy-repid.
rs_variant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = rs_variant
i_save = 'A'
IMPORTING
es_variant = rs_variant
EXCEPTIONS
OTHERS = 1.
IF sy-subrc = 0 AND nof4 EQ space.
p_layout = rs_variant-variant.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form dataset
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form dataset .
OPEN DATASET P_FILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
*--- Display error messages if any.
IF sy-subrc NE 0.
MESSAGE e001(zsd_mes).
EXIT.
ELSE.
*---Data is downloaded to the application server file path
LOOP AT itab2.
TRANSFER itab2 TO p_file.
ENDLOOP.
ENDIF.
*--Close the Application server file (Mandatory).
CLOSE DATASET p_file.
endform. " dataset
When I execute this code and move back it shows the following error.I want to move the output to p_file in application server.Plz suggest what to do.
Only character-type data objects are supported at the argument
position "f" for the statement
"TRANSFER f TO ...".
In this case, the operand "f" has the non-character-type "u". The
current program is flagged as a Unicode program. In the Unicode context,
type X fields are seen as non-character-type, as are structures that
contain non-character-type components.
2007 Nov 14 6:57 PM
Some of the fields in TAB2 may not be text. Open the dataset in binary mode and see if that resolves the issue.
If you must have the file in text mode, then copy the header line to a structure containing just text fields and then transfer to the dataset.
2007 Nov 14 6:59 PM
Build other internal table like all charcter fields then move itab1 to itab2.
now use itab2 ( Transfer command).
Thanks
Seshu