Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

==Create a table ZTM_BONDS_CAB with the following fields.

Create a table ZTM_BONDS_NYSEFC with the following fields.


Create a table ZTM_BONDS_LC with the following fields.
After that upload the data in those tables from the Excel files which I gave.
*Keep totals and sub totals as well for the Key Figures

Create a CDS View with the same output as in the ABAP Program below.
TABLES: ztm_bonds_cab.

TYPE-POOLS: slis.

*-------------------------------------------------------------------
---*
* PARAMETERS / SELECT-OPTIONS
*-------------------------------------------------------------------
---*
SELECTION-SCREEN BEGIN OF BLOCK aa WITH FRAME TITLE text-001.
PARAMETERS: p_var LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK aa.

SELECTION-SCREEN BEGIN OF BLOCK bb WITH FRAME TITLE text-002.


SELECT-OPTIONS: s_doc FOR ztm_bonds_cab-row_id.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS:
s_bnbr FOR ztm_bonds_cab-bond_nbr,
s_pjnbr FOR ztm_bonds_cab-project_nbr,
s_ev_cd FOR ztm_bonds_cab-bond_event_cd,
s_ev_dt FOR ztm_bonds_cab-bond_event_dt,
s_ev_yr FOR ztm_bonds_cab-event_yr,
s_ev_mth FOR ztm_bonds_cab-event_mth,
s_sap FOR ztm_bonds_cab-sap_doc_nbr,
s_iss_dt FOR ztm_bonds_cab-issue_dt,
s_mat_dt FOR ztm_bonds_cab-matur_dt,
s_post FOR ztm_bonds_cab-posting_status NO INTERVAL
S,
s_bndtyp FOR ztm_bonds_cab-bond_type NO INTERVAL
S,
s_char1 FOR ztm_bonds_cab-bond_char1 NO INTERVAL
S,
s_debt FOR ztm_bonds_cab-debt_ind NO INTERVAL
S,
s_iss_yr FOR ztm_bonds_cab-issue_year NO INTERVAL
S,
* s_amort FOR ztm_bonds_cab-amort_term NO INT
ERVALS,
s_agent FOR ztm_bonds_cab-fiscal_agent NO INTERVAL
S,
s_matamt FOR ztm_bonds_cab-matur_amt,
s_disc FOR ztm_bonds_cab-discount_amt,
s_proc FOR ztm_bonds_cab-proceeds_amt,
s_issexp FOR ztm_bonds_cab-issue_exp_amt,
s_repay FOR ztm_bonds_cab-repay_amt,
s_i_repy FOR ztm_bonds_cab-int_repay,
s_i_accr FOR ztm_bonds_cab-accr_int,
s_subsyr FOR ztm_bonds_cab-subsidy_yr,
s_camort FOR ztm_bonds_cab-cost_amort_amt NO INTERVAL
S,
s_refdt FOR ztm_bonds_cab-refinance_dt,
s_legcy FOR ztm_bonds_cab-legacy_proj,
s_cusip FOR ztm_bonds_cab-cusip_nbr,
s_fund FOR ztm_bonds_cab-fund_nbr,
s_busa FOR ztm_bonds_cab-bus_area,
s_cctr FOR ztm_bonds_cab-cost_ctr,
s_refbnd FOR ztm_bonds_cab-refinance_bond,
s_rfncd FOR ztm_bonds_cab-refund_code,
s_rfnnot FOR ztm_bonds_cab-refund_note NO INTERVAL
S.

SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS:
s_cron FOR ztm_bonds_cab-created_on,
s_crby FOR ztm_bonds_cab-created_by NO INTERVALS,
s_chon FOR ztm_bonds_cab-changed_on,
s_chby FOR ztm_bonds_cab-changed_by NO INTERVALS.
SELECTION-SCREEN END OF BLOCK bb.

*-------------------------------------------------------------------
---*
* DATA Declarations
*-------------------------------------------------------------------
---*
DATA: t_cab LIKE ztm_bonds_cab OCCURS 0.

*-------------------------------------------------------------------
---*
* INITIALIZATION Event
*-------------------------------------------------------------------
---*
INITIALIZATION.
DATA: variant_name LIKE disvariant-variant.

" Initialize the variant parameter.


PERFORM alv_get_default CHANGING variant_name.
p_var = variant_name.

*-------------------------------------------------------------------
---*
* AT SELECTION-SCREEN Events
*-------------------------------------------------------------------
---*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.
DATA: variant_name LIKE disvariant-variant.

PERFORM alv_lookup_variant CHANGING variant_name.


p_var = variant_name.

AT SELECTION-SCREEN.
PERFORM alv_variant_exists CHANGING p_var.

*-------------------------------------------------------------------
---*
* START-OF-SELECTION Event
*-------------------------------------------------------------------
---*
START-OF-SELECTION.
PERFORM get_data.

*-------------------------------------------------------------------
---*
* END-OF-SELECTION Event
*-------------------------------------------------------------------
---*
END-OF-SELECTION.

*eject
********************************************************************
****
* S U B R O U T I N E S
*
********************************************************************
****
FORM alv_get_default CHANGING default_variant LIKE disvariant-
variant.
DATA: alv_variant LIKE disvariant.

CLEAR alv_variant.
alv_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = alv_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.

IF sy-subrc = 0.
default_variant = alv_variant-variant.
ENDIF.
ENDFORM. "alv_init

*&------------------------------------------------------------------
--*
*& Form alv_f4
*&------------------------------------------------------------------
--*
* text
*-------------------------------------------------------------------
--*
FORM alv_lookup_variant CHANGING variant_name LIKE disvariant-
variant.
DATA: alv_variant LIKE disvariant.

CLEAR alv_variant.
alv_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = alv_variant
i_save = 'A'
IMPORTING
es_variant = alv_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF sy-subrc = 1.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
variant_name = alv_variant-variant.
ENDIF.
ENDFORM. "alv_f4

*&------------------------------------------------------------------
--*
*& Form alv_check
*&------------------------------------------------------------------
--*
* text
*-------------------------------------------------------------------
--*
FORM alv_variant_exists USING variant_name LIKE disvariant-variant.
DATA: alv_variant LIKE disvariant.

IF NOT variant_name IS INITIAL.


alv_variant-report = sy-repid.
alv_variant-variant = variant_name.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = alv_variant
EXCEPTIONS
wrong_input = 1
not_found = 2
program_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE e032(ztm) WITH variant_name sy-repid.
ENDIF.
ENDIF.
ENDFORM. "alv_check

*&------------------------------------------------------------------
--*
*& Form get_data
*&------------------------------------------------------------------
--*
* text
*-------------------------------------------------------------------
--*
FORM get_data.
* DATA: wa_cab LIKE ztm_bonds_cab.
DATA: wa_linecount TYPE i.

SELECT * INTO TABLE t_cab FROM ztm_bonds_cab


WHERE row_id IN s_doc AND
bond_nbr IN s_bnbr AND
project_nbr IN s_pjnbr AND
bond_event_cd IN s_ev_cd AND
bond_event_dt IN s_ev_dt AND
event_yr IN s_ev_yr AND
event_mth IN s_ev_mth AND
sap_doc_nbr IN s_sap AND
issue_dt IN s_iss_dt AND
matur_dt IN s_mat_dt AND
posting_status IN s_post AND
bond_type IN s_bndtyp AND
bond_char1 IN s_char1 AND
debt_ind IN s_debt AND
issue_year IN s_iss_yr AND
* amort_term IN s_amort AND
fiscal_agent IN s_agent AND
matur_amt IN s_matamt AND
discount_amt IN s_disc AND
proceeds_amt IN s_proc AND
issue_exp_amt IN s_issexp AND
repay_amt IN s_repay AND
int_repay IN s_i_repy AND
accr_int IN s_i_accr AND
subsidy_yr IN s_subsyr AND
cost_amort_amt IN s_camort AND
refinance_dt IN s_refdt AND
legacy_proj IN s_legcy AND
cusip_nbr IN s_cusip AND
fund_nbr IN s_fund AND
bus_area IN s_busa AND
cost_ctr IN s_cctr AND
refinance_bond IN s_refbnd AND
refund_code IN s_rfncd AND
refund_note IN s_rfnnot AND
created_on IN s_cron AND
created_by IN s_crby AND
changed_on IN s_chon AND
changed_by IN s_chby.

SORT t_cab BY row_id.

DESCRIBE TABLE t_cab LINES wa_linecount.


IF wa_linecount = 0.
MESSAGE i037(ztm).
ELSE.
PERFORM write_report.
ENDIF.
ENDFORM. "get_data

*&------------------------------------------------------------------
--*
*& Form write_report
*&------------------------------------------------------------------
--*
* text
*-------------------------------------------------------------------
--*
FORM write_report.
DATA: alv_fc TYPE slis_t_fieldcat_alv.
DATA: alv_sort TYPE slis_t_sortinfo_alv.
DATA: wa_sort TYPE slis_sortinfo_alv.
DATA: alv_variant TYPE disvariant.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZTM_BONDS_CAB'
CHANGING
ct_fieldcat = alv_fc
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

alv_variant-report = sy-repid.
alv_variant-variant = variant_name.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = alv_fc
* it_sort = alv_sort
i_save = 'A'
is_variant = alv_variant
TABLES
t_outtab = t_cab
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.
ENDFORM. "write_report

Sample Selection screen:-


Sample Output:-

You might also like