Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV Report

Former Member
0 Likes
710

*&---------------------------------------------------------------------*
*& 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.

2 REPLIES 2
Read only

Former Member
0 Likes
552

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.

Read only

Former Member
0 Likes
552

Build other internal table like all charcter fields then move itab1 to itab2.

now use itab2 ( Transfer command).

Thanks

Seshu