SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_accp FOR lv_buper OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
ranges: r_faedn FOR dfkkop-faedn.
DATA: lv_year(4) TYPE n.
CLEAR r_faedn.
r_faedn-sign = 'I'.
r_faedn-option = 'EQ'.
CASE s_accp-low+4(2).
WHEN '01' OR '02' OR '03'.
* lv_year = s_accp-low(4).
* lv_year = lv_year - 1.
* CONCATENATE lv_year '1001'
* INTO r_faedn-low.
* CONCATENATE lv_year '1231'
* INTO r_faedn-high.
CONCATENATE s_accp-low(4) '0101'
INTO r_faedn-low.
CONCATENATE s_accp-low(4) '0331'
INTO r_faedn-high.
APPEND r_faedn.
CLEAR : r_faedn-low,
r_faedn-high.
WHEN '04' OR '05' OR '06'.
CONCATENATE s_accp-low(4) '0401'
INTO r_faedn-low.
CONCATENATE s_accp-low(4) '0630'
INTO r_faedn-high.
APPEND r_faedn.
CLEAR : r_faedn-low,
r_faedn-high.
WHEN '07' OR '08' OR '09'.
CONCATENATE s_accp-low(4) '0701'
INTO r_faedn-low.
CONCATENATE s_accp-low(4) '0930'
INTO r_faedn-high.
APPEND r_faedn.
CLEAR : r_faedn-low,
r_faedn-high.
WHEN '10' OR '11' OR '12'.
CONCATENATE s_accp-low(4) '1001'
INTO r_faedn-low.
CONCATENATE s_accp-low(4) '1231'
INTO r_faedn-high.
APPEND r_faedn.
CLEAR : r_faedn-low,
r_faedn-high.
ENDCASE.
CASE s_accp-high+4(2).
WHEN '01' OR '03' OR '05' OR '07' OR
'08' OR '10' OR '12'.
CONCATENATE s_accp-high(6) '31'
INTO gv_sett_dt.
WHEN '04' OR '06' OR '09' OR '11'.
CONCATENATE s_accp-high(6) '30'
INTO gv_sett_dt.
WHEN '02'.
CONCATENATE s_accp-high(6) '28'
INTO gv_sett_dt.
ENDCASE.
Sunday, November 21, 2010
Friday, November 19, 2010
Function Module gives the Quarter start date and end date.
l_month = sy-datum+4(2).
* Set quarter
ex_quarter-q = trunc( ( l_month - 1 ) / 3 ) + 1.
ex_quarter-q = ex_quarter-q - 1
* Set year
ex_quarter-year = sy-datum(4).
* the below Function Module gives you the Quarter start date and end date.
call function 'HR_99S_GET_DATES_QUARTER'
exporting
im_quarter = ex_quarter-q
im_year = ex_quarter-year
importing
ex_begda = ex_quarter-begda " Quarter Start date
ex_endda = ex_quarter-endda. " Quarter End date
* Set quarter
ex_quarter-q = trunc( ( l_month - 1 ) / 3 ) + 1.
ex_quarter-q = ex_quarter-q - 1
* Set year
ex_quarter-year = sy-datum(4).
* the below Function Module gives you the Quarter start date and end date.
call function 'HR_99S_GET_DATES_QUARTER'
exporting
im_quarter = ex_quarter-q
im_year = ex_quarter-year
importing
ex_begda = ex_quarter-begda " Quarter Start date
ex_endda = ex_quarter-endda. " Quarter End date
FM: Quarter Validation based on given date
* Set quarter
ex_quarter-q = trunc( ( l_month - 1 ) / 3 ) + 1.
* Set year
ex_quarter-year = sy-datum(4).
* the below Function Module gives you the Quarter start date and end date.
call function 'HR_99S_GET_DATES_QUARTER'
exporting
im_quarter = ex_quarter-q
im_year = ex_quarter-year
importing
ex_begda = ex_quarter-begda " Quarter Start date
ex_endda = ex_quarter-endda. " Quarter End date
ex_quarter-q = trunc( ( l_month - 1 ) / 3 ) + 1.
* Set year
ex_quarter-year = sy-datum(4).
* the below Function Module gives you the Quarter start date and end date.
call function 'HR_99S_GET_DATES_QUARTER'
exporting
im_quarter = ex_quarter-q
im_year = ex_quarter-year
importing
ex_begda = ex_quarter-begda " Quarter Start date
ex_endda = ex_quarter-endda. " Quarter End date
Wednesday, November 10, 2010
F4 help for select-options
************************************************************************
* TYPES DECLARATION
************************************************************************
Types: begin of ty_sercd,
venture_cd type zri_series-venture_cd,
series_cd type zri_series-series_cd, "RI: Series Code
end of ty_sercd.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_sercd for zri_series-series_cd,
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK b1.
**---------------------------------------------------------------------*
** AT SELECTION-SCREEN ON VALUE-REQUEST
**---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_sercd-low.
PERFORM f4_help_sercd.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_sercd-HIGH.
PERFORM f4_help_sercd.
* TYPES DECLARATION
************************************************************************
Types: begin of ty_sercd,
venture_cd type zri_series-venture_cd,
series_cd type zri_series-series_cd, "RI: Series Code
end of ty_sercd.
data : gt_sercd type standard table of ty_sercd. "Internal Table
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_sercd for zri_series-series_cd,
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK b1.
**---------------------------------------------------------------------*
** AT SELECTION-SCREEN ON VALUE-REQUEST
**---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_sercd-low.
PERFORM f4_help_sercd.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_sercd-HIGH.
PERFORM f4_help_sercd.
*&---------------------------------------------------------------------*
*& Form F4_HELP_SERCD
*&---------------------------------------------------------------------*
* F4 Help for Series Code
*----------------------------------------------------------------------*
FORM f4_help_sercd .
REFRESH : GT_SERCD.
SELECT venture_cd series_cd
FROM zri_series
INTO CORRESPONDING FIELDS OF TABLE gt_sercd.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'SERIES_CD'
dynpprog = sy-repid
dynpnr = SY-DYNNR
dynprofield = 'S_SERCD'
value_org = 'S'
TABLES
value_tab = gt_sercd
EXCEPTIONS
OTHERS = 0.
ENDFORM.
Tuesday, October 26, 2010
Conditionally populate the color on ALV Report Display
*&---------------------------------------------------------------------*
*& Report YTEST01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YTEST01 no standard page heading
line-count 255
line-size 255.
TYPE-POOLS: slis.
DATA: BEGIN OF it_flight OCCURS 0,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
seatsmax LIKE sflight-seatsmax,
seatsocc LIKE sflight-seatsocc,
color(4), " <---extra field for color
END OF it_flight.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
layout TYPE slis_layout_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'IT_FLIGHT'
i_inclname = sy-repid
CHANGING
ct_fieldcat = it_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2.
SELECT carrid
connid
fldate
seatsmax
seatsocc
FROM sflight
INTO CORRESPONDING FIELDS OF TABLE it_flight
UP TO 20 ROWS.
*-conditionally populate the color
LOOP AT it_flight.
IF it_flight-seatsocc eq 0.
it_flight-color = 'C600'.
ENDIF.
MODIFY it_flight.
ENDLOOP.
*-Pass the color field information to layout
layout-info_fieldname = 'COLOR'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = layout
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_flight
EXCEPTIONS
program_error = 1.
*& Report YTEST01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YTEST01 no standard page heading
line-count 255
line-size 255.
TYPE-POOLS: slis.
DATA: BEGIN OF it_flight OCCURS 0,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
seatsmax LIKE sflight-seatsmax,
seatsocc LIKE sflight-seatsocc,
color(4), " <---extra field for color
END OF it_flight.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
layout TYPE slis_layout_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'IT_FLIGHT'
i_inclname = sy-repid
CHANGING
ct_fieldcat = it_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2.
SELECT carrid
connid
fldate
seatsmax
seatsocc
FROM sflight
INTO CORRESPONDING FIELDS OF TABLE it_flight
UP TO 20 ROWS.
*-conditionally populate the color
LOOP AT it_flight.
IF it_flight-seatsocc eq 0.
it_flight-color = 'C600'.
ENDIF.
MODIFY it_flight.
ENDLOOP.
*-Pass the color field information to layout
layout-info_fieldname = 'COLOR'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = layout
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_flight
EXCEPTIONS
program_error = 1.
Wednesday, October 6, 2010
Upload the Data from Excel to ITAB by using GUI_UPLOAD and validating data as well
*&---------------------------------------------------------------------*
*& Report YUPLOAD_EXCEL_TO_ITAB
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT yupload_excel_to_itab NO STANDARD PAGE HEADING
LINE-COUNT 132
LINE-SIZE 65.
*&---------------------------------------------------------------------*
*& DATA DECLARATION
*&---------------------------------------------------------------------*
TYPE-POOLS: truxs.
data : BEGIN OF gt_itab occurs 0,
mark(1) type c,
acdetcat(40) TYPE c,
acdetdes(40) TYPE c,
sapmtrty(40) TYPE c,
sapmtrdes(40) TYPE c,
obligor(40) TYPE c,
iwgroup(40) TYPE c,
iwprior(40) TYPE c,
drcr(40) TYPE c,
iwrollid(40) TYPE c,
iwrolldes(40) TYPE c,
ccode(40) TYPE c,
ccodedes(40) type c,
sapsubcat(40) TYPE c,
sapsubdes(40) TYPE c,
balacc(40) TYPE c,
incstat(40) TYPE c,
profcent(40) TYPE c,
profcendes(40) TYPE c,
costcen(40) TYPE c,
costcendes(40) TYPE c,
tpcata(40) TYPE c,
tpcatades(40) TYPE c,
finstat(40) TYPE c,
rowtycat(40) TYPE c,
rowtypdes(40) TYPE c,
applic(40) TYPE c,
fscdid(40) TYPE c,
countparcat(40) TYPE c,
countpatdes(40) TYPE c,
subanalcat(40) TYPE c,
subanaldes(40) TYPE c,
END OF gt_itab.
data : BEGIN OF gt_final occurs 0,
acdetcat(40) TYPE c,
acdetdes(40) TYPE c,
sapmtrty(40) TYPE c,
ccode(40) TYPE c,
sapsubcat(40) TYPE c,
sapsubdes(40) TYPE c,
balacc(40) TYPE c,
incstat(40) TYPE c,
profcent(40) TYPE c,
profcendes(40) TYPE c,
costcen(40) TYPE c,
costcendes(40) TYPE c,
tpcata(40) TYPE c,
tpcatades(40) TYPE c,
finstat(40) TYPE c,
rowtycat(40) TYPE c,
rowtypdes(40) TYPE c,
applic(40) TYPE c,
fscdid(40) TYPE c,
countparcat(40) TYPE c,
countpatdes(40) TYPE c,
subanalcat(40) TYPE c,
subanaldes(40) TYPE c,
END OF gt_final.
*DATA: gt_itab TYPE STANDARD TABLE OF ty_itab,
* gs_itab TYPE ty_itab,
* gt_final TYPE STANDARD TABLE OF ty_final,
* gs_final TYPE ty_final.
DATA: i_text_data TYPE truxs_t_text_data,
v_filename TYPE string.
PARAMETERS : p_file LIKE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
*&---------------------------------------------------------------------*
*& START OF SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
v_filename = p_file.
* CALL FUNCTION 'GUI_UPLOAD'
* EXPORTING
* filename = v_filename
* filetype = 'ASC'
* has_field_separator = 'X'
*
* TABLES
* data_tab = gt_itab
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_READ_ERROR = 2
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_filename_string
filetype = 'ASC'
has_field_separator = 'X'
*
TABLES
data_tab = i_text_data
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_READ_ERROR = 2
*
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
break-point.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_field_seperator = 'X'
* I_LINE_HEADER =
i_tab_raw_data = i_text_data
i_filename = p_file
TABLES
i_tab_converted_data = gt_itab
* EXCEPTIONS
* CONVERSION_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*&---------------------------------------------------------------------*
*& Final Internal Table
**&---------------------------------------------------------------------*
* LOOP AT gt_itab. " INTO gs_itab.
** CLEAR gs_final.
* MOVE-CORRESPONDING gt_itab TO gt_final.
** APPEND gs_final TO gt_final.
* ENDLOOP.
* BREAK-POINT.
*Do.
* READ TABLE gt_final INDEX 1 INTO gs_final.
* PERFORM abcd USING gs_final-acdetcat
* gs_final-acdetdes
* gs_final-sapmtrty
* gs_final-ccode
* gs_final-sapsubcat.
*
*&---------------------------------------------------------------------*
*& Form ABCD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GS_FINAL_ACDETCAT text
* -->P_GS_FINAL_ACDETDES text
* -->P_GS_FINAL_SAPMTRTY text
* -->P_GS_FINAL_CCODE text
* -->P_GS_FINAL_SAPSUBCAT text
*----------------------------------------------------------------------*
FORM abcd USING p_gs_final_acdetcat
p_gs_final_acdetdes
p_gs_final_sapmtrty
p_gs_final_ccode
p_gs_final_sapsubcat.
DATA: a(40) TYPE c VALUE 'A/C Determination Type Catalog Value ',
b(40) TYPE c VALUE 'A/C Determination Type Description ',
c(40) TYPE c VALUE 'SAP Main/Transaction Type Catalog Value ',
d(40) TYPE c VALUE 'Company Code Catalog Value ',
e(40) TYPE c VALUE 'SAP Sub Catalog Value '.
IF p_gs_final_acdetcat <> a.
message 'Data is incorrect' type 'E'.
elseIF p_gs_final_acdetdes <> b.
message 'Data is incorrect' type 'E'.
elseIF p_gs_final_sapmtrty <> c.
message 'Data is incorrect' type 'E'.
elseIF p_gs_final_ccode <> d.
message 'Data is incorrect' type 'E'.
elseIF p_gs_final_sapsubcat <> e.
message 'Data is incorrect' type 'E'.
endif.
ENDFORM. " ABCD
*& Report YUPLOAD_EXCEL_TO_ITAB
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT yupload_excel_to_itab NO STANDARD PAGE HEADING
LINE-COUNT 132
LINE-SIZE 65.
*&---------------------------------------------------------------------*
*& DATA DECLARATION
*&---------------------------------------------------------------------*
TYPE-POOLS: truxs.
data : BEGIN OF gt_itab occurs 0,
mark(1) type c,
acdetcat(40) TYPE c,
acdetdes(40) TYPE c,
sapmtrty(40) TYPE c,
sapmtrdes(40) TYPE c,
obligor(40) TYPE c,
iwgroup(40) TYPE c,
iwprior(40) TYPE c,
drcr(40) TYPE c,
iwrollid(40) TYPE c,
iwrolldes(40) TYPE c,
ccode(40) TYPE c,
ccodedes(40) type c,
sapsubcat(40) TYPE c,
sapsubdes(40) TYPE c,
balacc(40) TYPE c,
incstat(40) TYPE c,
profcent(40) TYPE c,
profcendes(40) TYPE c,
costcen(40) TYPE c,
costcendes(40) TYPE c,
tpcata(40) TYPE c,
tpcatades(40) TYPE c,
finstat(40) TYPE c,
rowtycat(40) TYPE c,
rowtypdes(40) TYPE c,
applic(40) TYPE c,
fscdid(40) TYPE c,
countparcat(40) TYPE c,
countpatdes(40) TYPE c,
subanalcat(40) TYPE c,
subanaldes(40) TYPE c,
END OF gt_itab.
data : BEGIN OF gt_final occurs 0,
acdetcat(40) TYPE c,
acdetdes(40) TYPE c,
sapmtrty(40) TYPE c,
ccode(40) TYPE c,
sapsubcat(40) TYPE c,
sapsubdes(40) TYPE c,
balacc(40) TYPE c,
incstat(40) TYPE c,
profcent(40) TYPE c,
profcendes(40) TYPE c,
costcen(40) TYPE c,
costcendes(40) TYPE c,
tpcata(40) TYPE c,
tpcatades(40) TYPE c,
finstat(40) TYPE c,
rowtycat(40) TYPE c,
rowtypdes(40) TYPE c,
applic(40) TYPE c,
fscdid(40) TYPE c,
countparcat(40) TYPE c,
countpatdes(40) TYPE c,
subanalcat(40) TYPE c,
subanaldes(40) TYPE c,
END OF gt_final.
*DATA: gt_itab TYPE STANDARD TABLE OF ty_itab,
* gs_itab TYPE ty_itab,
* gt_final TYPE STANDARD TABLE OF ty_final,
* gs_final TYPE ty_final.
DATA: i_text_data TYPE truxs_t_text_data,
v_filename TYPE string.
PARAMETERS : p_file LIKE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
*&---------------------------------------------------------------------*
*& START OF SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
v_filename = p_file.
* CALL FUNCTION 'GUI_UPLOAD'
* EXPORTING
* filename = v_filename
* filetype = 'ASC'
* has_field_separator = 'X'
*
* TABLES
* data_tab = gt_itab
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_READ_ERROR = 2
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_filename_string
filetype = 'ASC'
has_field_separator = 'X'
*
TABLES
data_tab = i_text_data
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_READ_ERROR = 2
*
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
break-point.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_field_seperator = 'X'
* I_LINE_HEADER =
i_tab_raw_data = i_text_data
i_filename = p_file
TABLES
i_tab_converted_data = gt_itab
* EXCEPTIONS
* CONVERSION_FAILED = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*&---------------------------------------------------------------------*
*& Final Internal Table
**&---------------------------------------------------------------------*
* LOOP AT gt_itab. " INTO gs_itab.
** CLEAR gs_final.
* MOVE-CORRESPONDING gt_itab TO gt_final.
** APPEND gs_final TO gt_final.
* ENDLOOP.
* BREAK-POINT.
*Do.
* READ TABLE gt_final INDEX 1 INTO gs_final.
* PERFORM abcd USING gs_final-acdetcat
* gs_final-acdetdes
* gs_final-sapmtrty
* gs_final-ccode
* gs_final-sapsubcat.
*
*&---------------------------------------------------------------------*
*& Form ABCD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GS_FINAL_ACDETCAT text
* -->P_GS_FINAL_ACDETDES text
* -->P_GS_FINAL_SAPMTRTY text
* -->P_GS_FINAL_CCODE text
* -->P_GS_FINAL_SAPSUBCAT text
*----------------------------------------------------------------------*
FORM abcd USING p_gs_final_acdetcat
p_gs_final_acdetdes
p_gs_final_sapmtrty
p_gs_final_ccode
p_gs_final_sapsubcat.
DATA: a(40) TYPE c VALUE 'A/C Determination Type Catalog Value ',
b(40) TYPE c VALUE 'A/C Determination Type Description ',
c(40) TYPE c VALUE 'SAP Main/Transaction Type Catalog Value ',
d(40) TYPE c VALUE 'Company Code Catalog Value ',
e(40) TYPE c VALUE 'SAP Sub Catalog Value '.
IF p_gs_final_acdetcat <> a.
message 'Data is incorrect' type 'E'.
elseIF p_gs_final_acdetdes <> b.
message 'Data is incorrect' type 'E'.
elseIF p_gs_final_sapmtrty <> c.
message 'Data is incorrect' type 'E'.
elseIF p_gs_final_ccode <> d.
message 'Data is incorrect' type 'E'.
elseIF p_gs_final_sapsubcat <> e.
message 'Data is incorrect' type 'E'.
endif.
ENDFORM. " ABCD
Tuesday, September 28, 2010
SUBMIT Report Example
*Code used to execute a report SUBMIT Zreport.
*Code used to populate 'select-options' & execute report DATA: seltab type table of rsparams, seltab_wa like line of seltab. seltab_wa-selname = 'PNPPERNR'. seltab_wa-sign = 'I'. seltab_wa-option = 'EQ'. * load each personnel number accessed from the structure into * parameters to be used in the report loop at pnppernr. seltab_wa-low = pnppernr-low. append seltab_wa to seltab. endloop. SUBMIT zreport with selection-table seltab via selection-screen.
*Code used to populate 'parameters' & execute report
SUBMIT zreport with p_param1 = 'value'
with p_param2 = 'value'.
Other additions for SUBMIT
*Submit report and return to current program afterwardsSUBMIT zreport AND RETURN. *Submit report via its own selection screenSUBMIT zreport VIA SELECTION-SCREEN. *Submit report using selection screen variantSUBMIT zreport USING SELECTION-SET 'VARIANT1'. *Submit report but export resultant list to memory, rather than *it being displayed on screenSUBMIT zreport EXPORTING LIST TO MEMORY. * Once report has finished and control has returned to calling * program, use function modules LIST_FROM_MEMORY, WRITE_LIST and * DISPLAY_LIST to retrieve and display report. *Example Code (Retrieving list from memory) DATA BEGIN OF itab_list OCCURS 0. INCLUDE STRUCTURE abaplist. DATA END OF itab_list. DATA: BEGIN OF vlist OCCURS 0, filler1(01) TYPE c, field1(06) TYPE c, filler(08) TYPE c, field2(10) TYPE c, filler3(01) TYPE c, field3(10) TYPE c, filler4(01) TYPE c, field4(3) TYPE c, filler5(02) TYPE c, field5(15) TYPE c, filler6(02) TYPE c, field6(30) TYPE c, filler7(43) TYPE c, field7(10) TYPE c, END OF vlist. SUBMIT zreport EXPORTING LIST TO MEMORY. CALL FUNCTION 'LIST_FROM_MEMORY' TABLES listobject = itab_list EXCEPTIONS not_found = 4 OTHERS = 8. CALL FUNCTION 'LIST_TO_ASCI' EXPORTING list_index = -1 TABLES listasci = vlist listobject = itab_list EXCEPTIONS empty_list = 1 list_index_invalid = 2 OTHERS = 3. IF sy-subrc NE '0'. WRITE:/ 'LIST_TO_ASCI error !! ', sy-subrc. ENDIF.
Submit report as job
*Submit report as job(i.e. in background)data: jobname like tbtcjob-jobname value ' TRANSFER TRANSLATION'. data: jobcount like tbtcjob-jobcount, host like msxxlist-host. data: begin of starttime. include structure tbtcstrt. data: end of starttime. data: starttimeimmediate like btch0000-char1. * Job open call function 'JOB_OPEN' exporting delanfrep = ' ' jobgroup = ' ' jobname = jobname sdlstrtdt = sy-datum sdlstrttm = sy-uzeit importing jobcount = jobcount exceptions cant_create_job = 01 invalid_job_data = 02 jobname_missing = 03. if sy-subrc ne 0. "error processing endif. * Insert process into job SUBMIT zreport and return with p_param1 = 'value' with p_param2 = 'value' user sy-uname via job jobname number jobcount. if sy-subrc > 0. "error processing endif. * Close job starttime-sdlstrtdt = sy-datum + 1. starttime-sdlstrttm = '220000'. call function 'JOB_CLOSE' exporting event_id = starttime-eventid event_param = starttime-eventparm event_periodic = starttime-periodic jobcount = jobcount jobname = jobname laststrtdt = starttime-laststrtdt laststrttm = starttime-laststrttm prddays = 1 prdhours = 0 prdmins = 0 prdmonths = 0 prdweeks = 0 sdlstrtdt = starttime-sdlstrtdt sdlstrttm = starttime-sdlstrttm strtimmed = starttimeimmediate targetsystem = host exceptions cant_start_immediate = 01 invalid_startdate = 02 jobname_missing = 03 job_close_failed = 04 job_nosteps = 05 job_notex = 06 lock_failed = 07 others = 99. if sy-subrc eq 0. "error processing endif.
Sunday, March 28, 2010
Graphs Report
*&---------------------------------------------------------------------*
*& Report ZSAN_GRAPH
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSAN_GRAPH.
*** Internal table to hold Statistical data
DATA:
BEGIN OF IT_DATA OCCURS 0,
DATANAME(15),
QUANTITY1 TYPE I,
QUANTITY2 TYPE I,
QUANTITY3 TYPE I,
END OF IT_DATA.
*** Internal table to hold Options
DATA:
BEGIN OF IT_OPTIONS OCCURS 0,
OPTION(20),
END OF IT_OPTIONS.
*** Populating statistics data
IT_DATA-DATANAME = 'India'.
IT_DATA-QUANTITY1 = 55.
IT_DATA-QUANTITY2 = 62.
IT_DATA-QUANTITY3 = 59.
APPEND IT_DATA.
IT_DATA-DATANAME = 'UK'.
IT_DATA-QUANTITY1 = 35.
IT_DATA-QUANTITY2 = 80.
IT_DATA-QUANTITY3 = 44.
APPEND IT_DATA.
IT_DATA-DATANAME = 'USA'.
IT_DATA-QUANTITY1 = 18.
IT_DATA-QUANTITY2 = 80.
IT_DATA-QUANTITY3 = 19.
APPEND IT_DATA.
*** Call FM to generate graph for the stats
CALL FUNCTION 'GRAPH_MATRIX_3D'
EXPORTING
COL1 = 'IT Professionals'
COL2 = 'Doctors'
COL3 = 'Engineers'
TITL = 'Professional Statistics'
TABLES
DATA = IT_DATA
OPTS = IT_OPTIONS
EXCEPTIONS
OTHERS = 1.
*& Report ZSAN_GRAPH
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSAN_GRAPH.
*** Internal table to hold Statistical data
DATA:
BEGIN OF IT_DATA OCCURS 0,
DATANAME(15),
QUANTITY1 TYPE I,
QUANTITY2 TYPE I,
QUANTITY3 TYPE I,
END OF IT_DATA.
*** Internal table to hold Options
DATA:
BEGIN OF IT_OPTIONS OCCURS 0,
OPTION(20),
END OF IT_OPTIONS.
*** Populating statistics data
IT_DATA-DATANAME = 'India'.
IT_DATA-QUANTITY1 = 55.
IT_DATA-QUANTITY2 = 62.
IT_DATA-QUANTITY3 = 59.
APPEND IT_DATA.
IT_DATA-DATANAME = 'UK'.
IT_DATA-QUANTITY1 = 35.
IT_DATA-QUANTITY2 = 80.
IT_DATA-QUANTITY3 = 44.
APPEND IT_DATA.
IT_DATA-DATANAME = 'USA'.
IT_DATA-QUANTITY1 = 18.
IT_DATA-QUANTITY2 = 80.
IT_DATA-QUANTITY3 = 19.
APPEND IT_DATA.
*** Call FM to generate graph for the stats
CALL FUNCTION 'GRAPH_MATRIX_3D'
EXPORTING
COL1 = 'IT Professionals'
COL2 = 'Doctors'
COL3 = 'Engineers'
TITL = 'Professional Statistics'
TABLES
DATA = IT_DATA
OPTS = IT_OPTIONS
EXCEPTIONS
OTHERS = 1.
Thursday, March 18, 2010
Oops Program to navigate the screens

*&---------------------------------------------------------------------*
*& Report Z_15006_MP_1203_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_15006_MP_1203_1.
TYPES: BEGIN OF ty_bws,
company TYPE char20, " Company
division TYPE char20, " Division1...
emp_team TYPE char20, " Software / Non Software
emp_spe TYPE char20, " Employee Specialization
END OF ty_bws.
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& DATA DECLARATIONS
*--------------------------------------------------------------------------------------------------------------------------------------------*
DATA: g_alv_tree TYPE REF TO cl_gui_alv_tree, " For ALV tree
g_custom_container TYPE REF TO cl_gui_custom_container, " For custom container
a_hier_header TYPE treev_hhdr. " For Header
DATA: t_bws TYPE TABLE OF ty_bws,
v_bws TYPE ty_bws,
t_bws2 LIKE t_bws.
DATA: t_fieldcat TYPE lvc_t_fcat.
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& END OF SELECTIONS
*--------------------------------------------------------------------------------------------------------------------------------------------*
END-OF-SELECTION.
" Call Screen 9001
CALL SCREEN 9000.
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form INIT_TREE
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM init_tree .
* Create container for alv tree
CONSTANTS: l_tree_container_name(30) TYPE c VALUE 'CC1'.
* Create Object for the custom container
CREATE OBJECT g_custom_container
EXPORTING
* PARENT =
container_name = l_tree_container_name
* STYLE =
* LIFETIME = lifetime_default
* REPID =
* DYNNR =
* NO_AUTODEF_PROGID_DYNNR =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6 .
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'Error in G_CUSTOM_CONTAINER'(100).
ENDIF.
* Create Tree control
CREATE OBJECT g_alv_tree
EXPORTING
* LIFETIME =
parent = g_custom_container
* SHELLSTYLE =
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
* HIDE_SELECTION =
item_selection = 'X'
no_toolbar = ''
no_html_header = 'X'
* I_PRINT =
* I_FCAT_COMPLETE =
* I_MODEL_MODE =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'Error in G_ALV_TREE'(100).
ENDIF.
ENDFORM. " INIT_TREE
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form BUILD_HIER_HEADER
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* <--P_P_HIER_HEADER text
* <--P_TYPE text
* <--P_TREEV_HHDR text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM build_hier_header CHANGING p_hier_header TYPE treev_hhdr.
p_hier_header-heading = 'Company/Divisions/Businesses/Employee Teams/Employees'(300).
p_hier_header-tooltip = 'This is tool tip'(400).
p_hier_header-width = 35.
p_hier_header-width_pix = ''.
ENDFORM. " BUILD_HIER_HEADER
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
MODULE status_9001 OUTPUT.
SET PF-STATUS 'PF_9001'.
SET TITLEBAR 'TB_9001'.
IF g_alv_tree IS INITIAL.
PERFORM init_tree. " Initialize tree
PERFORM build_hier_header CHANGING a_hier_header. " Build Hierarchy Header
PERFORM build_data_tab.
PERFORM preapre_fcat.
PERFORM call_alv.
PERFORM create_hier_root.
** Send data to frontend.
CALL METHOD g_alv_tree->frontend_update.
ENDIF.
ENDMODULE. " STATUS_9001 OUTPUT
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Module USER_COMMAND_9001 INPUT
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
MODULE user_command_9001 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_9001 INPUT
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form PREAPRE_FCAT
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM preapre_fcat .
DATA: wa_fieldcat TYPE lvc_s_fcat.
wa_fieldcat-tabname = 'T_BWS'.
wa_fieldcat-fieldname = 'COMPANY'.
wa_fieldcat-seltext = 'Division'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'T_BWS'.
wa_fieldcat-fieldname = 'DIVISION'.
wa_fieldcat-seltext = 'Division'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'T_BWS'.
wa_fieldcat-fieldname = 'EMP_TEAM'.
wa_fieldcat-seltext = 'Employee Team'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'T_BWS'.
wa_fieldcat-fieldname = 'EMP_SPE'.
wa_fieldcat-seltext = 'Employee Specialization'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " PREAPRE_FCAT
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form BUILD_DATA_TAB
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM build_data_tab .
PERFORM append_data USING 'Company' 'Division1' 'Software' 'SAP'.
PERFORM append_data USING 'Company' 'Division1' 'Software' '.net'.
PERFORM append_data USING 'Company' 'Division1' 'Non-Software' 'Designers'.
PERFORM append_data USING 'Company' 'Division1' 'Non-Software' 'Other Workers'.
PERFORM append_data USING 'Company' 'Division2' 'Software' 'SAP'.
PERFORM append_data USING 'Company' 'Division2' 'Software' '.net'.
PERFORM append_data USING 'Company' 'Division2' 'Non-Software' 'Designers'.
PERFORM append_data USING 'Company' 'Division2' 'Non-Software' 'Other Workers'.
PERFORM append_data USING 'Company' 'Division3' 'Software' 'SAP'.
PERFORM append_data USING 'Company' 'Division3' 'Software' '.net'.
PERFORM append_data USING 'Company' 'Division3' 'Non-Software' 'Designers'.
PERFORM append_data USING 'Company' 'Division3' 'Non-Software' 'Other Workers'.
PERFORM append_data USING 'Company' 'Division4' 'Software' 'SAP'.
PERFORM append_data USING 'Company' 'Division4' 'Software' '.net'.
PERFORM append_data USING 'Company' 'Division4' 'Non-Software' 'Designers'.
PERFORM append_data USING 'Company' 'Division4' 'Non-Software' 'Other Workers'.
ENDFORM. " BUILD_DATA_TAB
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form CALL_ALV
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM call_alv .
CALL METHOD g_alv_tree->set_table_for_first_display
EXPORTING
is_hierarchy_header = a_hier_header
CHANGING
it_fieldcatalog = t_fieldcat
it_outtab = t_bws2. "table must be empty !
ENDFORM. " CALL_ALV
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form CREATE_HIER_ROOT
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM create_hier_root .
DATA: p_divnode TYPE lvc_nkey,
p_teamnode TYPE lvc_nkey,
p_lastnode TYPE lvc_nkey,
p_division TYPE ty_bws-division.
DATA: l_node_text TYPE lvc_value.
DATA: lv_emp_team TYPE ty_bws-emp_team,
lv_emp_spe TYPE ty_bws-emp_spe.
break jdonepudi.
l_node_text = 'Company'.
CLEAR v_bws.
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = ''
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
IMPORTING
e_new_node_key = p_divnode.
*sort t_bws by division emp_team emp_spe.
LOOP AT t_bws INTO v_bws.
l_node_text = v_bws-division.
*p_relat_key = 1.
AT NEW division.
*at end of division.
PERFORM add_division USING v_bws
p_divnode
l_node_text
CHANGING p_teamnode.
p_division = v_bws-division.
ENDAT.
*at new emp_team - Software / Non Software
IF lv_emp_team <> v_bws-emp_team.
lv_emp_team = v_bws-emp_team.
l_node_text = v_bws-emp_team.
PERFORM add_emp_team USING v_bws
p_teamnode
l_node_text
CHANGING p_lastnode.
ENDIF.
*at new emp_spe SAP / .net Designers / Other Workers
IF lv_emp_spe <> v_bws-emp_spe.
lv_emp_spe = v_bws-emp_spe.
l_node_text = v_bws-emp_spe.
IF lv_emp_spe = '.net' OR
lv_emp_spe = 'Other Workers'.
p_lastnode = p_lastnode - 1.
ENDIF.
PERFORM add_emp_team USING v_bws
p_lastnode
l_node_text
CHANGING p_lastnode.
ENDIF.
ENDLOOP.
ENDFORM. " CREATE_HIER_ROOT
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form ADD_EMP_TEAM
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* -->P_KEY text
* -->P_TEXT text
* -->P_OUTTAB text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM add_emp_team USING p_v_bws TYPE ty_bws
p_key TYPE lvc_nkey
p_text TYPE lvc_value
CHANGING p_key2 TYPE lvc_nkey.
* add node
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = p_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = p_text
is_outtab_line = p_v_bws
IMPORTING
e_new_node_key = p_key2.
ENDFORM. " ADD_EMP_TEAM
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form ADD_DIVISION
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* -->P_V_BWS text
* -->P_KEY text
* -->P_TEXT text
* <--P_KEY2 text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM add_division USING p_v_bws TYPE ty_bws
p_key TYPE lvc_nkey
p_text TYPE lvc_value
CHANGING p_key2 TYPE lvc_nkey.
* add node
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = p_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = p_text
is_outtab_line = p_v_bws
IMPORTING
e_new_node_key = p_key2.
ENDFORM. " ADD_DIVISION
*--------------------------------------------------------------------------------------------------------------------------------------------*
*& Form APPEND_DATA
*--------------------------------------------------------------------------------------------------------------------------------------------*
* text
*--------------------------------------------------------------------------------------------------------------------------------------------*
* -->P_COMPANY text
* -->P_DIVISION text
*--------------------------------------------------------------------------------------------------------------------------------------------*
FORM append_data USING p_company TYPE ty_bws-company
p_division TYPE ty_bws-division
p_empteam TYPE ty_bws-emp_team
p_empspe TYPE ty_bws-emp_spe.
v_bws-company = p_company.
v_bws-division = p_division.
v_bws-emp_team = p_empteam.
v_bws-emp_spe = p_empspe.
APPEND v_bws TO t_bws. CLEAR v_bws.
ENDFORM. " APPEND_DATA
output:
Write the Month Name based on input date
*&---------------------------------------------------------------------*
*& Report YDATES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YDATES.
FIELD-SYMBOLS: TYPE ANY.
CONSTANTS: lc_fl01(9) TYPE c VALUE 'January',
lc_fl02(9) TYPE c VALUE 'February',
lc_fl03(9) TYPE c VALUE 'March',
lc_fl04(9) TYPE c VALUE 'April',
lc_fl05(9) TYPE c VALUE 'May',
lc_fl06(9) TYPE c VALUE 'June',
lc_fl07(9) TYPE c VALUE 'July',
lc_fl08(9) TYPE c VALUE 'August',
lc_fl09(9) TYPE c VALUE 'September',
lc_fl10(9) TYPE c VALUE 'Octomber',
lc_fl11(9) TYPE c VALUE 'November',
lc_fl12(9) TYPE c VALUE 'December'.
DATA: lv_dd(2),
lv_mm(2),
lv_yyyy(4),
lv_month TYPE char7,
lv_month_name(9).
parameters: p_date type sy-datum.
lv_mm = p_date+4(2).
CONCATENATE 'lc_fl' lv_mm INTO lv_month.
ASSIGN (lv_month) TO.
lv_month_name =.
write : lv_month_name.
*& Report YDATES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YDATES.
FIELD-SYMBOLS:
CONSTANTS: lc_fl01(9) TYPE c VALUE 'January',
lc_fl02(9) TYPE c VALUE 'February',
lc_fl03(9) TYPE c VALUE 'March',
lc_fl04(9) TYPE c VALUE 'April',
lc_fl05(9) TYPE c VALUE 'May',
lc_fl06(9) TYPE c VALUE 'June',
lc_fl07(9) TYPE c VALUE 'July',
lc_fl08(9) TYPE c VALUE 'August',
lc_fl09(9) TYPE c VALUE 'September',
lc_fl10(9) TYPE c VALUE 'Octomber',
lc_fl11(9) TYPE c VALUE 'November',
lc_fl12(9) TYPE c VALUE 'December'.
DATA: lv_dd(2),
lv_mm(2),
lv_yyyy(4),
lv_month TYPE char7,
lv_month_name(9).
parameters: p_date type sy-datum.
lv_mm = p_date+4(2).
CONCATENATE 'lc_fl' lv_mm INTO lv_month.
ASSIGN (lv_month) TO
lv_month_name =
write : lv_month_name.
Friday, January 15, 2010
Tab Screens
*&---------------------------------------------------------------------*
*& Report Z_TABS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_tabs.
TABLES: zcust_master2,zacc_master2,ztrans_master2.
*---------------------------------------------------------------------*
* Internal Tables *
*---------------------------------------------------------------------*
DATA : BEGIN OF wi_zcust_master2 OCCURS 0,
zcustid LIKE zcust_master2-zcustid,
zcustname LIKE zcust_master2-zcustname,
zaddr LIKE zcust_master2-zaddr,
zcity LIKE zcust_master2-zcity,
zstate LIKE zcust_master2-zstate,
zcountry LIKE zcust_master2-zcountry,
zphone LIKE zcust_master2-zphone,
zemail LIKE zcust_master2-zemail,
zfax LIKE zcust_master2-zfax,
zstat LIKE zcust_master2-zstat,
END OF wi_zcust_master2.
DATA : BEGIN OF wi_zacc_master2 OCCURS 0,
zaccno LIKE zacc_master2-zaccno,
zcustid LIKE zacc_master2-zcustid,
zacctype LIKE zacc_master2-zacctype,
zbal LIKE zacc_master2-zbal,
zaccdate LIKE zacc_master2-zaccdate,
zstat LIKE zacc_master2-zstat,
END OF wi_zacc_master2.
*---------------------------------------------------------------------*
* selection screen *
*---------------------------------------------------------------------*
* Define screen 101 as subscreen
SELECTION-SCREEN BEGIN OF SCREEN 101 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t00.
SELECT-OPTIONS custid FOR zcust_master2-zcustid.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 101.
* Define screen 102 as subscreen
SELECTION-SCREEN BEGIN OF SCREEN 102 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
SELECT-OPTIONS: accno FOR zacc_master2-zaccno.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 102.
* Define screen 103 as subscreen
SELECTION-SCREEN BEGIN OF SCREEN 103 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
PARAMETERS tranid LIKE ztrans_master2-ztranid.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN END OF SCREEN 103.
* Define tab screen
SELECTION-SCREEN BEGIN OF TABBED BLOCK t1 FOR 20 LINES.
SELECTION-SCREEN TAB (10) name1 USER-COMMAND ucomm1 DEFAULT SCREEN 101.
SELECTION-SCREEN TAB (20) name2 USER-COMMAND ucomm2 DEFAULT SCREEN 102.
SELECTION-SCREEN TAB (30) name3 USER-COMMAND ucomm3 DEFAULT SCREEN 103.
SELECTION-SCREEN END OF BLOCK t1.
INITIALIZATION.
name1 = text-n01. "CUSTOMER ID
name2 = text-n02. "ACCOUNT NUMBER
name3 = text-n03. "TRANSACTION ID
START-OF-SELECTION.
SKIP sy-lsind.
*-------------------------------------------------------------*
* To Display Customer id Tab Details
*-------------------------------------------------------------*
SELECT * FROM zcust_master2 INTO CORRESPONDING FIELDS OF TABLE wi_zcust_master2 WHERE zcustid IN custid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'ZCUST_MASTER2'
i_grid_title = 'Customer Details'
TABLES
t_outtab = wi_zcust_master2
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*-------------------------------------------------------------*
* To Display Account Number Tab Details
*-------------------------------------------------------------*
SELECT * FROM zacc_master2 INTO CORRESPONDING FIELDS OF TABLE wi_zacc_master2 WHERE zaccno IN accno.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'ZACC_MASTER2'
i_grid_title = 'Account Details'
TABLES
t_outtab = wi_zacc_master2
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
Subscribe to:
Posts (Atom)