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

Problem Saving ALV Report

Former Member
0 Likes
681

Hi

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.

Here is my Code


*&---------------------------------------------------------------------*
*& Report  ZAKTIME                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*& AKABIR             02/06/2007         New Report for Cluster B2     *
*&---------------------------------------------------------------------*

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 <> 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 <> 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 >= PNPBEGDA AND it_ZL-DATUM <= 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 <> ''.
              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 <> ''.
              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 >= PNPBEGDA AND it_PT-LDATE <= 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.
*&---------------------------------------------------------------------
*&      Form  build_sorttab
*&---------------------------------------------------------------------
*       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
************************************************************************
*&      Form  GET_SSN & 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
*&---------------------------------------------------------------------*
*&      Form  LOAD_SHIFT
*&---------------------------------------------------------------------*
*       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.
*&---------------------------------------------------------------------
*&      Form  f4_for_variant
*&---------------------------------------------------------------------
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

Please help. I will reward Points for the right answers.

Thanks

1 ACCEPTED SOLUTION
Read only

Clemenss
Active Contributor
0 Likes
612

Hi Anwarul,

parameter

it_sort = gt_sort[]

will overrirde the sort in the variant.

Regards,

Clemens

4 REPLIES 4
Read only

Clemenss
Active Contributor
0 Likes
613

Hi Anwarul,

parameter

it_sort = gt_sort[]

will overrirde the sort in the variant.

Regards,

Clemens

Read only

Former Member
0 Likes
612

Hi Clemens

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

Read only

Former Member
0 Likes
612

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.

Read only

Former Member
0 Likes
612

Ok found the problem at last

**********************************************************************

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.

In my build catalog i was clearing every field using the

clear ls_fieldcat.

which was some how clearing the sortings...

SO commented them out and it works.