‎2007 Feb 07 2:52 PM
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
‎2007 Feb 07 3:12 PM
Hi Anwarul,
parameter
it_sort = gt_sort[]
will overrirde the sort in the variant.
Regards,
Clemens
‎2007 Feb 07 3:12 PM
Hi Anwarul,
parameter
it_sort = gt_sort[]
will overrirde the sort in the variant.
Regards,
Clemens
‎2007 Feb 07 3:18 PM
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...
‎2007 Feb 07 4:06 PM
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.
‎2007 Feb 07 5:59 PM
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.