<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Problem Saving ALV Report in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968627#M397633</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok found the problem at last&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;    ls_fieldcat-fieldname      =                'PERNR'.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-ref_tabname    =                'REC'.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-ref_fieldname  =                'PERNR'.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-seltext_l      =                'Employee #'.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-outputlen      =                15.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-no_sum         = 'X'.           "Don't use field for totals&lt;/P&gt;&lt;P&gt;    ls_fieldcat-datatype       =                'NUMC'.&lt;/P&gt;&lt;P&gt;    append ls_fieldcat to pt_fieldcat.&lt;/P&gt;&lt;P&gt;    clear ls_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In my build catalog i was clearing every field using the &lt;/P&gt;&lt;P&gt;  clear ls_fieldcat.&lt;/P&gt;&lt;P&gt;which was some how clearing the sortings...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SO commented them out and it works.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 07 Feb 2007 17:59:01 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-02-07T17:59:01Z</dc:date>
    <item>
      <title>Problem Saving ALV Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968623#M397629</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have this ALV Report when I run and change the layout (add/remove column and add column for sorting) it works fine but when i come back i get the change columns but it doesn't save the sorting options that i made. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my Code&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZAKTIME                                                     *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;                                                                     *
*&amp;amp; AKABIR             02/06/2007         New Report for Cluster B2     *
*&amp;amp;---------------------------------------------------------------------*

REPORT  ZAKTIME no standard page heading message-id zw line-size 255.
*-----------------------------------------------------------------------
*                Dictionary tables/structures
*-----------------------------------------------------------------------
tables: pa0007, PA0002.

DATA: IT_T549Q TYPE T549Q OCCURS 0 WITH HEADER LINE,
         IT_ZL TYPE PC2BF OCCURS 0 WITH HEADER LINE,
         IT_PT TYPE PDCPT OCCURS 0 WITH HEADER LINE,
        IT_ALP TYPE PC20E OCCURS 0 WITH HEADER LINE,
         IT_C1 TYPE PC25X OCCURS 0 WITH HEADER LINE,
        IT_PSP TYPE PC2BA OCCURS 0 WITH HEADER LINE.

* Global ALV Data Declarations
type-pools slis.

DATA:  BEGIN OF tgetbuff occurs 0,
x(10),
     END OF tgetbuff.
include rpcxB200.
INCLUDE RPTBAL01.

* infotypes: 0001.     "Org. Zuordnung
Data: TempHours LIKE PC2BF-BEGUZ,
      even type i value 0.
data: begin of hd,
      struc like dd03l-tabname,
      end of hd.

DATA: BEGIN OF REC OCCURS 0,
      PERNR LIKE PERNR-PERNR,
      SSN   Like pa0002-perid,
      NAME(25),
      TYPE(1),
      WRKS LIKE PC2BA-TPROG,
      DATE(10),
      STIME(8),
      ETIME(8),
      HOURS  LIKE PC2BF-BEGUZ,
      PNUMB  LIKE PC20E-PRAKN,
      PID    LIKE PC20E-PRAKZ,
      UNIT   LIKE PC20E-ANZHL,
      VALU   LIKE PC20E-BWGRL,
      AMOUNT LIKE PC20E-BETRG,
      XPAYID LIKE PC20E-AUFKZ,
      CCNTR  LIKE PC25X-KOSTL,
      CCODE  LIKE PC25X-BUKRS,
      AUFNR  LIKE PC25X-AUFNR,
      KTEXT  LIKE CAUFV-KTEXT,
      LGART  LIKE PC2BF-LGART,
      LGTXT  LIKE T512T-LGTXT,
      STER   LIKE PDCPT-BTERM,
      ETER   LIKE PDCPT-ETERM.
DATA: END OF REC.

data:
    begin of x_sortinfo_alv occurs 0,
      spos                  like alvdynp-sortpos,
      fieldname             type slis_fieldname,
      tabname               type slis_fieldname,
      up                    like alvdynp-sortup,
      down                  like alvdynp-sortdown,
      group                 like alvdynp-grouplevel,
      subtot                like alvdynp-subtotals,
      comp(1)               type c,
      expa(1)               type c,
      obligatory(1)         type c,
    end   of x_sortinfo_alv,
    v_variant        like disvariant,
    v_repid          like sy-repid,
    v_save(1)        type c,
    lv_sortseq       type i,
    s_title(20),     "Maximum selection field description 20 bytes.
    fieldcat         type slis_t_fieldcat_alv,
    ls_line          type slis_listheader,
    gd_layout        type slis_layout_alv,
    gt_sort          type slis_t_sortinfo_alv,
    ls_sort          type slis_sortinfo_alv,
    events           type slis_t_event,
    list_top_of_page type slis_t_listheader,
    top_of_page      type slis_formname value 'TOP_OF_PAGE',
    v_exit(1)               type c.

constants:
  alv_slis_formname       type slis_formname value 'ALV_USER_COMMAND',
  c_yes                   like space value 'X',
  c_no                    like space value space.

DATA: BEGIN OF E_NAME,
      NACHN LIKE PA0002-NACHN,
      VORNA LIKE PA0002-VORNA.
DATA: END OF E_NAME.

************************************************************************
* define selection screen
************************************************************************
selection-screen begin of block elmo with frame title text-001.
 selection-screen begin of line.
   selection-screen comment 1(22) text-005.
   select-options  opt4 for pa0007-schkz.
 selection-screen end of line.

 parameters:   debg_lst as checkbox default 'X'.
selection-screen end of block elmo.

selection-screen begin of block blk2 with frame title text-002.
 PARAMETERS: p_vari like disvariant-variant.
selection-screen end   of block blk2.
************************************************************************
*  Form  Initialization
************************************************************************
initialization.
clear: REC.
refresh: REC.
  v_repid = sy-repid.
  v_save = 'A'.
  clear v_variant.
  v_variant-report = v_repid.

* Get default variant
  alv_variant = v_variant.
  call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
    exporting
      i_save     = v_save
    changing
      cs_variant = alv_variant
    exceptions
      not_found  = 2.
  if sy-subrc = 0.
    p_vari = alv_variant-variant.
  endif.
*-----------------------------------------------------------------------
*                       At Selection-Screen event (value help)
*-----------------------------------------------------------------------
at selection-screen on value-request for p_vari.
  perform f4_for_variant.

*-----------------------------------------------------------------------
*                       At Selection-Screen event (check input data)
*-----------------------------------------------------------------------
at selection-screen on p_vari.
  if p_vari &amp;lt;&amp;gt; space.
    v_variant-report  = v_repid.
    v_variant-variant = p_vari.
    call function 'REUSE_ALV_VARIANT_SELECT'
      EXPORTING
        i_dialog            = c_no
        it_default_fieldcat = field_tab[]
        i_layout            = gs_layout
      CHANGING
        cs_variant          = v_variant.
    if sy-subrc &amp;lt;&amp;gt; 0.
      call function 'REUSE_ALV_VARIANT_SELECT'
        EXPORTING
          i_dialog            = c_yes
          it_default_fieldcat = field_tab[]
          i_layout            = gs_layout
        CHANGING
          cs_variant          = v_variant.
    endif.
  endif.
*-----------------------------------------------------------------------
*                       main logic
*-----------------------------------------------------------------------
TOP-OF-PAGE.

START-OF-SELECTION.

        GET PERNR.
        RP-PROVIDE-FROM-LAST P0001 SPACE PNPBEGDA PNPENDDA.

* process the data according to the payroll area
   IF PERNR-WERKS EQ P0001-WERKS AND PERNR-BTRTL EQ P0001-BTRTL
      AND PERNR-KOSTL EQ P0001-KOSTL AND PERNR-BUKRS EQ P0001-BUKRS
      AND PERNR-ABKRS EQ P0001-ABKRS AND PERNR-KOKRS EQ P0001-KOKRS.
        PERFORM RETRIEVE_Time.
    ENDIF.

END-OF-SELECTION.
    Perform call_alv.

*======================================================================*
*                        forms                                         *
*======================================================================*
FORM RETRIEVE_Time.
DATA: date_modified(10), V_STIME(8), V_ETIME(8).
DATA: Flag(1),
      v_lgtxt like T512T-LGTXT,
      v_ktext like caufv-ktext,
      v_WRKS LIKE PC2BA-TPROG.

CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
 EXPORTING
  get_begda = PNPBEGDA
  get_endda = PNPENDDA
 TABLES
  get_periods = it_t549q
 EXCEPTIONS
  no_period_found = 1
  no_valid_permo = 2.
  CHECK sy-subrc = 0.

LOOP AT it_t549q.
  FLAG = 0.
  CALL FUNCTION 'HR_TIME_RESULTS_GET'
   EXPORTING
     get_pernr = PERNR-PERNR
     get_pabrj = it_t549q-pabrj
     get_pabrp = it_t549q-pabrp
   TABLES
     GET_TBUFF     = TGETBUFF
     get_zl  = it_zl
     get_pt  = it_PT
     get_alp = it_ALP
     get_c1  = it_C1
     get_psp = it_psp
   EXCEPTIONS
     no_period_specified = 1
     wrong_cluster_version = 2
     no_read_authority = 3
     cluster_archived = 4
     technical_error = 5.

  LOOP AT it_zl.

    IF it_ZL-DATUM &amp;gt;= PNPBEGDA AND it_ZL-DATUM &amp;lt;= PNPENDDA.
* Include PSP Data if Exists.
      LOOP AT IT_PSP.
        IF it_psp-ZMODN IN OPT4 AND it_zl-DATUM EQ it_psp-DATUM.
            MOVE it_psp-ZMODN TO REC-WRKS.
            FLAG = 1.
            Move:
              Pernr-Pernr To REC-PERNR,
                      'Z' To REC-TYPE,
              it_ZL-LGART TO REC-LGART,
              it_ZL-ANZHL TO REC-HOURS.

            perform get_ssn.
            perform get_wage_type_text using REC-LGART v_lgtxt.
            move v_lgtxt to REC-LGTXT.

            CONCATENATE it_zl-DATUM+4(2) '/' it_zl-DATUM+6(2) '/' it_zl-DATUM(4) INTO date_modified.
            IF it_ZL-BEGUZ &amp;lt;&amp;gt; ''.
              CONCATENATE it_ZL-BEGUZ(2) ':' it_ZL-BEGUZ+2(2) ':' it_ZL-BEGUZ+4(2) INTO V_STIME.
            ELSE.
              V_STIME = ''.
            ENDIF.
            IF it_ZL-ENDUZ &amp;lt;&amp;gt; ''.
              CONCATENATE it_ZL-ENDUZ(2) ':' it_ZL-ENDUZ+2(2) ':' it_ZL-ENDUZ+4(2) INTO V_ETIME.
            ELSE.
              V_ETIME = ''.
            ENDIF.
            Move:
                 date_modified To REC-DATE,
                       V_STIME To REC-STIME,
                       V_ETIME To REC-ETIME.


* Include ALP Data if Exists else include Blanks.
              MOVE:
                      '' TO REC-UNIT,
                      '' TO REC-PNUMB,
                      '' TO REC-PID,
                      '' TO REC-VALU,
                      '' TO REC-AMOUNT,
                      '' TO REC-XPAYID.
            IF it_ZL-ALZNR GT 0.
              LOOP AT IT_ALP.
                IF it_zl-ALZNR EQ it_ALP-ALZNR.
                  MOVE:
                      it_ALP-ANZHL TO REC-UNIT,
                      it_ALP-PRAKN TO REC-PNUMB,
                      it_ALP-PRAKZ TO REC-PID,
                      it_ALP-BWGRL TO REC-VALU,
                      it_ALP-BETRG TO REC-AMOUNT,
                      it_ALP-AUFKZ TO REC-XPAYID.
                ENDIF.
              ENDLOOP.
            ENDIF.
* Include C1 Data if Exists Else Include Blanks.
             MOVE:
                  '' TO REC-CCODE,
                  '' TO REC-CCNTR,
                  '' To REC-AUFNR,
                  '' TO REC-KTEXT.

            IF it_ZL-C1ZNR GT 0.
              LOOP AT IT_C1.
                IF it_zl-C1ZNR EQ it_c1-C1ZNR.
                  MOVE:
                      it_C1-BUKRS TO REC-CCODE,
                      it_C1-KOSTL TO REC-CCNTR,
                      it_C1-AUFNR To REC-AUFNR.

                  perform get_service_order_text using REC-AUFNR v_ktext.
                  move v_ktext to rec-ktext.
                ENDIF.
              ENDLOOP.
            ENDIF.

          APPEND REC.
* ENDIF FOR the IF on IT_PSP
        ENDIF.
      ENDLOOP.
* ENDIF FOR the IF on Date Check
    ENDIF.
* ENDLOOP ON IT_ZL
  ENDLOOP.

  LOOP AT it_pt.
    IF it_PT-LDATE &amp;gt;= PNPBEGDA AND it_PT-LDATE &amp;lt;= PNPENDDA.
* Include PSP Data if Exists.
      LOOP AT IT_PSP.
        IF IT_PSP-ZMODN IN OPT4 AND it_pt-LDATE EQ it_psp-DATUM.
          MOVE it_psp-ZMODN TO REC-WRKS.
          FLAG = 1.
          Move:
            Pernr-Pernr To REC-PERNR,
            'P' to REC-TYPE,
            it_pt-BTERM TO REC-STER,
            it_pt-ETERM TO REC-ETER.

          perform get_ssn.

          CONCATENATE it_pt-LDATE+4(2) '/' it_pt-LDATE+6(2) '/' it_pt-LDATE(4) INTO date_modified.
          IF it_pt-BEGTM NE ''.
             CONCATENATE it_pt-BEGTM(2) ':' it_pt-BEGTM+2(2) ':' it_pt-BEGTM+4(2) INTO V_STIME.
          ELSE.
             V_STIME = ''.
          ENDIF.
          IF it_pt-ENDTM NE ''.
             CONCATENATE it_pt-ENDTM(2) ':' it_pt-ENDTM+2(2) ':' it_pt-ENDTM+4(2) INTO V_ETIME.
          ELSE.
             V_ETIME = ''.
          ENDIF.
          Move:
                date_modified To REC-DATE,
                V_STIME To REC-STIME,
                V_ETIME To REC-ETIME.

          TempHours = ''.
          IF it_pt-BEGTM LT it_pt-ENDTM.
              TempHours = it_pt-ENDTM(4) - it_pt-BEGTM(4).
              TempHours = TempHours / 100.
          ENDIF.
          MOVE:
                TempHours TO REC-HOURS,
                       '' TO REC-LGART,
                       '' TO REC-LGTXT,
                       '' TO REC-UNIT,
                       '' TO REC-PNUMB,
                       '' TO REC-PID,
                       '' TO REC-VALU,
                       '' TO REC-AMOUNT,
                       '' TO REC-XPAYID,
                       '' TO REC-CCODE,
                       '' TO REC-CCNTR,
                       '' TO REC-AUFNR,
                       '' TO REC-KTEXT.

          APPEND REC.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDLOOP.
  IF FLAG = 0 AND debg_lst = 'X'.
     Move:
          Pernr-Pernr To REC-PERNR,
                   '' To REC-TYPE,
                   '' TO REC-DATE,
                   '' TO REC-STIME,
                   '' TO REC-ETIME,
                   '' TO REC-LGART,
                   '' TO REC-LGTXT,
                   '' TO REC-HOURS,
                   '' TO REC-UNIT,
                   '' TO REC-PNUMB,
                   '' TO REC-PID,
                   '' TO REC-VALU,
                   '' TO REC-AMOUNT,
                   '' TO REC-XPAYID,
                   '' TO REC-CCODE,
                   '' TO REC-CCNTR,
                   '' To REC-AUFNR,
                   '' To REC-KTEXT,
                   '' TO REC-STER,
                   '' TO REC-ETER.

     perform get_ssn.
     PERFORM LOAD_SHIFT using v_WRKS.
     Move v_WRKS TO REC-WRKS.
     IF REC-WRKS IN OPT4.
       APPEND REC.
     ENDIF.
  ENDIF.

ENDLOOP.

ENDFORM.                            " RETRIEVE_PAYROLL

************************************************************************
*  CALL_ALV
************************************************************************
form call_alv.
*  v_repid = sy-repid.
  perform build_field_catalog using field_tab[].
  perform build_eventtab      using events[].
  perform comment_build       using header_alv[].
  perform build_sorttab       using gt_sort[].
  perform build_layout.
*  v_variant-variant = '/TEST3'.
* Call ABAP List Viewer
  call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
      it_fieldcat             = field_tab[]
      i_structure_name        = 'REC'
      i_callback_program      = v_repid
      is_variant              = v_variant
      it_events               = events[]
      it_sort                 = gt_sort[]
      i_save                  = v_save
      is_layout               = gd_layout
    tables
      t_outtab                 = REC
    exceptions
      program_error            = 1
      others                   = 2.
endform.
************************************************************************
* BUILD_FIELD_CATALOG
************************************************************************
form build_field_catalog USING pt_fieldcat type
                               slis_t_fieldcat_alv.
  clear: fieldcat, pt_fieldcat[].    refresh: fieldcat.
  data:  ls_fieldcat type slis_fieldcat_alv.

  ls_fieldcat-tabname        =                'REC'.
  ls_fieldcat-edit           =                ' '.
**********************************************************************
    ls_fieldcat-fieldname      =                'PERNR'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'PERNR'.
    ls_fieldcat-seltext_l      =                'Employee #'.
    ls_fieldcat-outputlen      =                15.
    ls_fieldcat-no_sum         = 'X'.           "Don't use field for totals
    ls_fieldcat-datatype       =                'NUMC'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'NAME'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'NAME'.
    ls_fieldcat-seltext_l      =                'Employee Name'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'TYPE'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'TYPE'.
    ls_fieldcat-seltext_m      =                'Type'.
    ls_fieldcat-outputlen      =                4.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'DATE'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'DATE'.
    ls_fieldcat-seltext_l      =                'Date'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'WRKS'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'WRKS'.
    ls_fieldcat-seltext_m      =                'Daily Sch'.
    ls_fieldcat-outputlen      =                10.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'STIME'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'STIME'.
    ls_fieldcat-seltext_l      =                'Start Time'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'ETIME'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'ETIME'.
    ls_fieldcat-seltext_l      =                'End Time'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'HOURS'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'HOURS'.
    ls_fieldcat-seltext_s      =                'Hours'.
    ls_fieldcat-datatype       =                'NUMC'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'PNUMB'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'PNUMB'.
    ls_fieldcat-seltext_l      =                'Premium #'.
    ls_fieldcat-datatype       =                'NUMC'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'PID'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'PID'.
    ls_fieldcat-seltext_l      =                'Premium Id'.
    ls_fieldcat-datatype       =                'NUMC'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'UNIT'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'UNIT'.
    ls_fieldcat-seltext_s      =                'Unit'.
    ls_fieldcat-datatype       =                'NUMC'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'VALU'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'VALU'.
    ls_fieldcat-seltext_s      =                'Valuation Basis'.
    ls_fieldcat-datatype       =                'NUMC'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'AMOUNT'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'AMOUNT'.
    ls_fieldcat-seltext_s      =                'Amount'.
    ls_fieldcat-datatype       =                'NUMC'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'XPAYID'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'XPAYID'.
    ls_fieldcat-seltext_s      =                'Extra Pay ID'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'CCNTR'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'CCNTR'.
    ls_fieldcat-seltext_l      =                'Cost Center'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'CCODE'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'CCODE'.
    ls_fieldcat-seltext_l      =                'Company Code'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'AUFNR'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'AUFNR'.
    ls_fieldcat-seltext_l      =                'Service Number'.
    ls_fieldcat-datatype       =                'NUMC'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'KTEXT'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'KTEXT'.
    ls_fieldcat-seltext_l      =                'Service Number Text'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'LGART'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'LGART'.
    ls_fieldcat-seltext_l      =                'Wage Type'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'LGTXT'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'LGTXT'.
    ls_fieldcat-seltext_l      =                'Wage Type Text'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'STER'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'STER'.
    ls_fieldcat-seltext_l      =                'Starting Terminal'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-fieldname      =                'ETER'.
    ls_fieldcat-ref_tabname    =                'REC'.
    ls_fieldcat-ref_fieldname  =                'ETER'.
    ls_fieldcat-seltext_l      =                'Ending Terminal'.
    append ls_fieldcat to pt_fieldcat.
    clear ls_fieldcat.
**********************************************************************
    ls_fieldcat-edit           =                ' '.
endform.
************************************************************************
* BUILD_EVENTTAB
************************************************************************
form build_eventtab using events type slis_t_event.
* Registration of events to happen during list display
  data: tmp_event type slis_alv_event.
  call function 'REUSE_ALV_EVENTS_GET'
    exporting
      i_list_type = 0
    importing
      et_events   = events.

  read table events with key name = slis_ev_top_of_page into tmp_event.

   if sy-subrc = 0.
     move top_of_page to tmp_event-form.
     append tmp_event to events.
   endif.
endform.
************************************************************************
* COMMENT_BUILD
************************************************************************
form comment_build using pt_top_of_page type slis_t_listheader.
  data: v_head_string(255) value space, d1(2), m1(2), y1(2), d2(2), m2(2), y2(2).
  clear: ls_line, pt_top_of_page.
  ls_line-typ  = 'H'.
  data pnpfrom(10).
  data pnpto(10).
  data: print_date(10).
  data: print_time(10).
  d1 = PNPBEGDA+6(2).          d2 = PNPENDDA+6(2).
  m1 = PNPBEGDA+4(2).          m2 = PNPENDDA+4(2).
  y1 = PNPBEGDA+2(2).          y2 = PNPENDDA+2(2).
  concatenate m1 '/' d1 '/' y1 into pnpfrom.
  concatenate m2 '/' d2 '/' y2 into pnpto.
  d1 = sy-datum+6(2).          d2 = sy-uzeit+2(2).
  m1 = sy-datum+4(2).          m2 = sy-uzeit+0(2).
  y1 = sy-datum+2(2).          y2 = sy-uzeit+4(2).
  concatenate m1 '/' d1 '/' y1 into print_date.
  concatenate m2 ':' d2 ':' y2 into print_time.
**********************************************************************
  ls_line-info = sy-repid.
  append ls_line to pt_top_of_page.
**********************************************************************
  concatenate 'Printed by:' sy-uname 'on' print_date 'at' print_time
  into ls_line-info separated by space.
  append ls_line to pt_top_of_page.
**********************************************************************
  ls_line-info = 'BGM INDUSTRIES, INC.'.
  append ls_line to pt_top_of_page.
**********************************************************************
  concatenate 'Supply Period:' pnpfrom 'to' pnpto
  into ls_line-info separated by space.
  append ls_line to pt_top_of_page.
**********************************************************************
endform.
************************************************************************
*       Build layout for ALV grid report
************************************************************************
form build_layout.
  gd_layout-no_input          = 'X'.
  gd_layout-colwidth_optimize = 'X'.
  gd_layout-totals_text       = 'Totals'(201).
  gd_layout-info_fieldname    = 'LINE_COLOR'.
endform.                    " BUILD_LAYOUT
************************************************************************
* TOP_OF_PAGE
************************************************************************
form top_of_page.
  call function 'REUSE_ALV_COMMENTARY_WRITE'
    exporting
       i_logo             = 'Z_BGLOGO'
       it_list_commentary = header_alv.
endform.
*&amp;amp;---------------------------------------------------------------------
*&amp;amp;      Form  build_sorttab
*&amp;amp;---------------------------------------------------------------------
*       Set up the sorting for the report.
*----------------------------------------------------------------------
form build_sorttab using pt_sort type slis_t_sortinfo_alv.
  clear lv_sortseq.
* **********************************************************************
  perform build_sort tables pt_sort changing ls_sort.
  ls_sort-fieldname = 'PERNR'.
  ls_sort-subtot    = 'X'.
  append ls_sort to pt_sort.
  ls_sort-subtot    = ' '.
* **********************************************************************
  perform build_sort tables pt_sort changing ls_sort.
  ls_sort-fieldname = 'NAME'.
  ls_sort-subtot    = 'X'.
  append ls_sort to pt_sort.
  ls_sort-subtot    = ' '.

endform.                    " build_sorttab
************************************************************************
*  Use to add another sort field.
************************************************************************
form build_sort
  tables   pt_sort
  changing ls_sort structure x_sortinfo_alv.
  clear ls_sort.
  add 1 to lv_sortseq.
  ls_sort-spos = lv_sortseq.
  ls_sort-up = 'X'.
  ls_sort-tabname = 'REC'.
endform.                    "build_sort
************************************************************************
*}   INSERT
************************************************************************
*&amp;amp;      Form  GET_SSN &amp;amp; EMP Name
************************************************************************
*       text
************************************************************************
FORM GET_SSN.

    SELECT SINGLE * FROM PA0002 WHERE PERNR = PERNR-PERNR.
    IF SY-SUBRC EQ 0.

        MOVE: PA0002-PERNR TO REC-SSN,
              PA0002-VORNA TO E_NAME-VORNA,
              PA0002-NACHN TO E_NAME-NACHN.
        CONDENSE E_NAME.
        MOVE: E_NAME TO REC-NAME.
    ENDIF.
ENDFORM.                    " GET_SSN
************************************************************************
*   Form  GET_WAGE_TYPE_TEXT
************************************************************************
form get_wage_type_text using rec-LGART p_v_lgtxt.
  select single LGTXT from T512T into p_v_lgtxt
                        where LGART = rec-LGART.
endform.                    " GET_WAGE_TYPE_TEXT
************************************************************************
*   Form  GET_SERVICE_ORDER_TEXT
************************************************************************
form get_service_order_text using rec-AUFNR p_v_ktext.
  select single ktext from caufv into p_v_ktext
                      where aufnr = rec-aufnr.
endform.                    " GET_SERVICE_ORDER_TEXT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  LOAD_SHIFT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM LOAD_SHIFT USING V_WRKS.

    SELECT SINGLE * FROM PA0007 WHERE PERNR = REC-PERNR.
    IF SY-SUBRC EQ 0.
       MOVE: PA0007-SCHKZ TO V_WRKS.
    ENDIF.
ENDFORM.
*&amp;amp;---------------------------------------------------------------------
*&amp;amp;      Form  f4_for_variant
*&amp;amp;---------------------------------------------------------------------
form f4_for_variant.
  call function 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      is_variant = v_variant
      i_save     = v_save
    IMPORTING
      e_exit     = v_exit
      es_variant = alv_variant
    EXCEPTIONS
      not_found  = 2.
  if sy-subrc = 2.
    message id sy-msgid type 'S' number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  else.
    if v_exit = space.
      p_vari = alv_variant-variant.
    endif.
  endif.
endform.                    " f4_for_variant

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please help. I will reward Points for the right answers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 14:52:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968623#M397629</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-07T14:52:47Z</dc:date>
    </item>
    <item>
      <title>Re: Problem Saving ALV Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968624#M397630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Anwarul,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; it_sort                 = gt_sort[]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;will overrirde the sort in the variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Clemens&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 15:12:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968624#M397630</guid>
      <dc:creator>Clemenss</dc:creator>
      <dc:date>2007-02-07T15:12:03Z</dc:date>
    </item>
    <item>
      <title>Re: Problem Saving ALV Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968625#M397631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Clemens &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your answer. I commented that line out. Still nothing. When I had that line even though i had two fields for sorting it would do only one and in the layout under sort order that filed will be there but even if i add the second or third it just forgets about those...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 15:18:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968625#M397631</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-07T15:18:25Z</dc:date>
    </item>
    <item>
      <title>Re: Problem Saving ALV Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968626#M397632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Also just found out that even if i saved the layout with sorting column and then go to a different layout and then come back to the saved one it loses all the sorting. SO I guess its not even saving the sort options.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 16:06:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968626#M397632</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-07T16:06:21Z</dc:date>
    </item>
    <item>
      <title>Re: Problem Saving ALV Report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968627#M397633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok found the problem at last&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********************************************************************&lt;/P&gt;&lt;P&gt;    ls_fieldcat-fieldname      =                'PERNR'.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-ref_tabname    =                'REC'.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-ref_fieldname  =                'PERNR'.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-seltext_l      =                'Employee #'.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-outputlen      =                15.&lt;/P&gt;&lt;P&gt;    ls_fieldcat-no_sum         = 'X'.           "Don't use field for totals&lt;/P&gt;&lt;P&gt;    ls_fieldcat-datatype       =                'NUMC'.&lt;/P&gt;&lt;P&gt;    append ls_fieldcat to pt_fieldcat.&lt;/P&gt;&lt;P&gt;    clear ls_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In my build catalog i was clearing every field using the &lt;/P&gt;&lt;P&gt;  clear ls_fieldcat.&lt;/P&gt;&lt;P&gt;which was some how clearing the sortings...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SO commented them out and it works.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Feb 2007 17:59:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-saving-alv-report/m-p/1968627#M397633</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-07T17:59:01Z</dc:date>
    </item>
  </channel>
</rss>

