‎2008 May 08 1:26 PM
Hi, Im using dynamic internal table. So upto assigning
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IT_FIELDCAT = T_SFCAT
I_SAVE = 'X'
TABLES
T_OUTTAB = <IT_DYN>.internarlly its showing the column heading in <IT_DYN>. But in the o/p its not displaying the heading for the dynamic fields column heading. But for the fixed field of <IT_DYN> its showing the column heading.
Plz suggest how to solve this.
‎2008 May 08 1:42 PM
Check the sample code.
I think in your feild catalog you are not giving the fieldname properly. give the fieldnames in CAPS. in some times if you refer wrong field names also it will not give any text.
Check the sample code.
REPORT ztest_dynamic_code.
TYPES: BEGIN OF ty_data,
abc(3),
xyz(3),
pqr(3),
item1,
item2,
item3,
item4,
item5,
item6,
item7,
item8,
item9,
END OF ty_data.
DATA: BEGIN OF it_tab OCCURS 0,
abc(3),
xyz(3),
pqr(3),
item,
END OF it_tab.
DATA: it_fieldcatalog TYPE lvc_t_fcat,
wa_fieldcat TYPE lvc_s_fcat.
DATA: i_dyntab TYPE REF TO data. " To create dyn.Itab
DATA:
w_dref TYPE REF TO data,
ind(2) TYPE n,
w_data TYPE REF TO data,
w_text(5),
w_grid TYPE REF TO cl_gui_alv_grid.
DATA: grid TYPE REF TO cl_gui_alv_grid,
cont TYPE REF TO cl_gui_custom_container.
FIELD-SYMBOLS: <t_itab> TYPE STANDARD TABLE,
<fs_wa> TYPE ANY,<fs> TYPE ANY.
DATA: in TYPE i.
*Data population
it_tab-abc = 'ABC'.
it_tab-xyz = 'XYZ'.
it_tab-pqr = 'PQR'.
DO 9 TIMES.
in = in + 1.
it_tab-item = in.
APPEND it_tab.
ENDDO.
*Field cat population.
wa_fieldcat-fieldname = 'ABC'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'abc'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'XYZ'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'XYZ'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'PQR'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'pqr'.
APPEND wa_fieldcat TO it_fieldcatalog.
ind = 1.
DO 9 TIMES.
CONCATENATE 'ITEM' ind INTO wa_fieldcat-fieldname.
CONCATENATE 'ITEM' ind INTO wa_fieldcat-coltext.
wa_fieldcat-outputlen = 1.
APPEND wa_fieldcat TO it_fieldcatalog.
CLEAR wa_fieldcat .
ind = ind + 1.
ENDDO.
*-Dynamic Table creation
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcatalog
IMPORTING
ep_table = i_dyntab.
ASSIGN i_dyntab->* TO <t_itab>.
CREATE DATA w_data LIKE LINE OF <t_itab>.
ASSIGN w_data->* TO <fs_wa>.
SORT it_tab BY abc xyz pqr.
CLEAR ind.
ind = 4.
*-Final Internal table as per Requirement
LOOP AT it_tab.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = it_tab-abc.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = it_tab-xyz.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = it_tab-pqr.
UNASSIGN <fs>.
ASSIGN COMPONENT ind OF STRUCTURE <fs_wa> TO <fs>.
<fs> = it_tab-item.
UNASSIGN <fs>.
ind = ind + 1.
AT END OF pqr.
APPEND <fs_wa> TO <t_itab>.
ind = 4.
CLEAR <fs_wa>.
ENDAT.
ENDLOOP.
*-Display
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
DATA: layout TYPE lvc_s_layo.
CREATE OBJECT cont
EXPORTING
container_name = 'CONT'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT grid
EXPORTING
i_parent = cont
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
grid->set_table_for_first_display(
EXPORTING
is_layout = layout
CHANGING
it_outtab = <t_itab>
it_fieldcatalog = it_fieldcatalog
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
).
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
‎2008 May 08 1:30 PM
Hi ,
In the FM try setting the parameter I_BYPASSING_BUFFER as X.
and how are you populating the Catalog .
Regards
Arun
‎2008 May 08 1:33 PM
To get the field header text u need to use
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gf_layout
i_callback_pf_status_set = 'PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
i_grid_title = text-013
it_fieldcat = gf_fcat[]
it_events = gf_events
TABLES
t_outtab = <fs_dyn_table>[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
‎2008 May 08 1:41 PM
Thnaks for the reply.
im sending the code for field catalog part. Internally its showing the column heading,values are also coming under the column but in the output column heading is not comming.
*-ALV display field catalog
***************************************
DATA :
T_SFCAT TYPE SLIS_T_FIELDCAT_ALV,
T_CFCAT TYPE LVC_T_FCAT.
DATA : WA_SFCAT TYPE SLIS_FIELDCAT_ALV,
WA_CFCAT TYPE LVC_S_FCAT.
FORM GET_FCAT .
CLEAR : T_SFCAT,T_CFCAT,WA_SFCAT,WA_CFCAT.
REFRESH : T_SFCAT,T_CFCAT.
WA_CFCAT-FIELDNAME = 'TYPE'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'TYPE'.
WA_SFCAT-REF_FIELDNAME = 'TYPE'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-KEY = 'X'.
WA_SFCAT-SELTEXT_M = 'Type'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
WA_CFCAT-FIELDNAME = 'DESCRIP'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'DESCRIP'.
WA_SFCAT-REF_FIELDNAME = 'DESCRIP'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-SELTEXT_M = 'Description'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
WA_CFCAT-FIELDNAME = 'FX_TYPE'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'FX_TYPE'.
WA_SFCAT-REF_FIELDNAME = 'KURST'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-SELTEXT_M = 'FX TYPE'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
WA_CFCAT-FIELDNAME = 'FROM_CURR'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'FROM_CURR'.
WA_SFCAT-REF_FIELDNAME = 'FCURR'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-SELTEXT_M = 'FROM CRUU'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
WA_CFCAT-FIELDNAME = 'TO_CURR'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'TO_CURR'.
WA_SFCAT-REF_FIELDNAME = 'TCURR'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-SELTEXT_M = 'TO CURR'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
LT_TCURR_FIELD[] = LT_TCURR[].
SORT LT_TCURR_FIELD BY DATE.
DELETE ADJACENT DUPLICATES FROM LT_TCURR_FIELD COMPARING DATE.
DATA : L_TEXT(20),
L_FIELD(10).
LOOP AT LT_TCURR_FIELD INTO LW_TCURR_FIELD .
MOVE LW_TCURR_FIELD-DATE TO L_FIELD.
WA_CFCAT-FIELDNAME = L_FIELD.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = L_FIELD.
WA_SFCAT-SELTEXT_L = L_TEXT.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
ENDLOOP.
ENDFORM.I_BYPASSING_BUFFER is not working. And IT_FIELDCAT = T_SFCAT[] is also not working.
‎2008 May 08 1:42 PM
Check the sample code.
I think in your feild catalog you are not giving the fieldname properly. give the fieldnames in CAPS. in some times if you refer wrong field names also it will not give any text.
Check the sample code.
REPORT ztest_dynamic_code.
TYPES: BEGIN OF ty_data,
abc(3),
xyz(3),
pqr(3),
item1,
item2,
item3,
item4,
item5,
item6,
item7,
item8,
item9,
END OF ty_data.
DATA: BEGIN OF it_tab OCCURS 0,
abc(3),
xyz(3),
pqr(3),
item,
END OF it_tab.
DATA: it_fieldcatalog TYPE lvc_t_fcat,
wa_fieldcat TYPE lvc_s_fcat.
DATA: i_dyntab TYPE REF TO data. " To create dyn.Itab
DATA:
w_dref TYPE REF TO data,
ind(2) TYPE n,
w_data TYPE REF TO data,
w_text(5),
w_grid TYPE REF TO cl_gui_alv_grid.
DATA: grid TYPE REF TO cl_gui_alv_grid,
cont TYPE REF TO cl_gui_custom_container.
FIELD-SYMBOLS: <t_itab> TYPE STANDARD TABLE,
<fs_wa> TYPE ANY,<fs> TYPE ANY.
DATA: in TYPE i.
*Data population
it_tab-abc = 'ABC'.
it_tab-xyz = 'XYZ'.
it_tab-pqr = 'PQR'.
DO 9 TIMES.
in = in + 1.
it_tab-item = in.
APPEND it_tab.
ENDDO.
*Field cat population.
wa_fieldcat-fieldname = 'ABC'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'abc'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'XYZ'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'XYZ'.
APPEND wa_fieldcat TO it_fieldcatalog.
wa_fieldcat-fieldname = 'PQR'.
wa_fieldcat-outputlen = 3.
wa_fieldcat-coltext = 'pqr'.
APPEND wa_fieldcat TO it_fieldcatalog.
ind = 1.
DO 9 TIMES.
CONCATENATE 'ITEM' ind INTO wa_fieldcat-fieldname.
CONCATENATE 'ITEM' ind INTO wa_fieldcat-coltext.
wa_fieldcat-outputlen = 1.
APPEND wa_fieldcat TO it_fieldcatalog.
CLEAR wa_fieldcat .
ind = ind + 1.
ENDDO.
*-Dynamic Table creation
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcatalog
IMPORTING
ep_table = i_dyntab.
ASSIGN i_dyntab->* TO <t_itab>.
CREATE DATA w_data LIKE LINE OF <t_itab>.
ASSIGN w_data->* TO <fs_wa>.
SORT it_tab BY abc xyz pqr.
CLEAR ind.
ind = 4.
*-Final Internal table as per Requirement
LOOP AT it_tab.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = it_tab-abc.
ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = it_tab-xyz.
UNASSIGN <fs>.
ASSIGN COMPONENT 3 OF STRUCTURE <fs_wa> TO <fs>.
<fs> = it_tab-pqr.
UNASSIGN <fs>.
ASSIGN COMPONENT ind OF STRUCTURE <fs_wa> TO <fs>.
<fs> = it_tab-item.
UNASSIGN <fs>.
ind = ind + 1.
AT END OF pqr.
APPEND <fs_wa> TO <t_itab>.
ind = 4.
CLEAR <fs_wa>.
ENDAT.
ENDLOOP.
*-Display
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
DATA: layout TYPE lvc_s_layo.
CREATE OBJECT cont
EXPORTING
container_name = 'CONT'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CREATE OBJECT grid
EXPORTING
i_parent = cont
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5
.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
grid->set_table_for_first_display(
EXPORTING
is_layout = layout
CHANGING
it_outtab = <t_itab>
it_fieldcatalog = it_fieldcatalog
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
).
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
‎2008 May 08 1:49 PM
ok.. My column is date i.e 02052008 . Will it come in the output? It is comming in the internal table.
‎2008 May 08 2:09 PM
For the Testing sake exclude that and check the rest of the columns. If possible give the complete coding, i will look into it and give you the positive solution.
‎2008 May 08 2:13 PM
Hi Vijay here is the complete code...
*&---------------------------------------------------------------------*
*& Report ZFI_EXCHAGE_RATE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZFI_EXCHAGE_RATE.
TYPE-POOLS: SLIS, ABAP.
TABLES : TCURR.
DATA: W_REPID TYPE SY-REPID VALUE SY-REPID. "Program's name
DATA: D_REF TYPE REF TO DATA,
D_REF2 TYPE REF TO DATA,
I_ALV_CAT TYPE TABLE OF LVC_S_FCAT,
LS_ALV_CAT LIKE LINE OF I_ALV_CAT,
V_VAR1 TYPE I.
TYPES: BEGIN OF TW_TCURR,
TYPE(8) TYPE C,
DESCRIP(10) TYPE C,
FCURR TYPE FCURR_CURR,
TCURR TYPE TCURR_CURR,
UKURS TYPE UKURS_CURR,
KURST TYPE KURST_CURR,
GDATU TYPE GDATU_INV,
DATE(10) TYPE C,
END OF TW_TCURR,
TT_TCURR TYPE STANDARD TABLE OF TW_TCURR.
DATA : LT_TCURR TYPE TT_TCURR,
LW_TCURR TYPE TW_TCURR.
DATA : LT_TCURR_FIELD TYPE TT_TCURR,"FOR BUILDING FIELD CATALOG
LW_TCURR_FIELD TYPE TW_TCURR.
DATA : LT_TCURR_S TYPE TT_TCURR, "SALES
LW_TCURR_S TYPE TW_TCURR.
DATA : LT_TCURR_P TYPE TT_TCURR, "PURCHASE
LW_TCURR_P TYPE TW_TCURR.
DATA : LT_TCURR_C TYPE TT_TCURR, "CALCULATION
LW_TCURR_C TYPE TW_TCURR.
DATA : LT_TCURR_O TYPE TT_TCURR, "OTHER
LW_TCURR_O TYPE TW_TCURR.
DATA : LT_TCURR_A TYPE TT_TCURR, "ALL
LW_TCURR_A TYPE TW_TCURR.
DATA: R_DATE TYPE RANGE OF S_DATE,
WA_DATE LIKE LINE OF R_DATE.
FIELD-SYMBOLS : <F_FS> TYPE STANDARD TABLE ,
<WA_FS>. "This is your final dynamic table
*-ALV display field catalog
***************************************
DATA :
T_SFCAT TYPE SLIS_T_FIELDCAT_ALV,
T_CFCAT TYPE LVC_T_FCAT.
DATA : WA_SFCAT TYPE SLIS_FIELDCAT_ALV,
WA_CFCAT TYPE LVC_S_FCAT.
DATA : T_EVE TYPE SLIS_T_EVENT,
WA_EVE TYPE SLIS_ALV_EVENT,
LISTHEAD TYPE SLIS_T_LISTHEADER,
ST_LINE TYPE SLIS_LISTHEADER.
FIELD-SYMBOLS : <IT_DYN> TYPE STANDARD TABLE,
<WA_DYN>.
DATA : G_TDREF TYPE REF TO DATA,
G_WDREF TYPE REF TO DATA.
****************************************
SELECT-OPTIONS : S_DATE FOR SY-DATUM OBLIGATORY.
SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE
TEXT-001.
PARAMETERS : PA_SALES AS CHECKBOX ,
PA_PURCH AS CHECKBOX,
PA_OTH AS CHECKBOX USER-COMMAND UCOMM.
SELECTION-SCREEN END OF BLOCK BK1.
SELECTION-SCREEN BEGIN OF BLOCK BK2 WITH FRAME TITLE
TEXT-002.
PARAMETERS: PA_FCURR TYPE TCURR-FCURR MODIF ID MD1,
PA_TCURR TYPE TCURR-FCURR MODIF ID MD1.
SELECTION-SCREEN END OF BLOCK BK2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF PA_OTH <> 'X' AND SCREEN-GROUP1 = 'MD1'.
SCREEN-ACTIVE = '0'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM DYN_TAB.
PERFORM BUILD_REP.
END-OF-SELECTION.
PERFORM DIS_DATA.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_DATA.
DATA : DATE_LOW(8) TYPE C,
DATE_HIGH(8) TYPE C.
IF S_DATE-LOW IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT'
EXPORTING
INPUT = S_DATE-LOW
IMPORTING
OUTPUT = S_DATE-LOW.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
EXPORTING
INPUT = S_DATE-LOW
IMPORTING
OUTPUT = DATE_LOW.
ENDIF.
IF S_DATE-HIGH IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT'
EXPORTING
INPUT = S_DATE-HIGH
IMPORTING
OUTPUT = S_DATE-HIGH.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_INPUT'
EXPORTING
INPUT = S_DATE-HIGH
IMPORTING
OUTPUT = DATE_HIGH.
ENDIF.
LOOP AT S_DATE.
S_DATE-SIGN = 'I'.
S_DATE-OPTION = 'BT'.
IF DATE_HIGH IS NOT INITIAL AND DATE_LOW IS NOT INITIAL.
S_DATE-LOW = DATE_HIGH.
S_DATE-HIGH = DATE_LOW .
ENDIF.
IF DATE_HIGH IS INITIAL.
S_DATE-LOW = DATE_LOW.
ENDIF.
MODIFY S_DATE.
ENDLOOP.
IF S_DATE-HIGH IS NOT INITIAL.
IF PA_SALES EQ 'X'.
SELECT
UKURS
KURST
GDATU
FCURR
TCURR
INTO CORRESPONDING FIELDS OF TABLE LT_TCURR_S
FROM TCURR
WHERE GDATU IN S_DATE
AND KURST IN ('CODX', "SALES
'015X',
'030X',
'045X',
'060X',
'075X',
'090X',
'105X',
'120X',
'135X',
'150X',
'180X').
ENDIF.
IF PA_PURCH EQ 'X'.
SELECT
UKURS
KURST
GDATU
FCURR
TCURR
INTO CORRESPONDING FIELDS OF TABLE LT_TCURR_P
FROM TCURR
WHERE GDATU IN S_DATE
AND KURST IN ('CODI', "PURCHASE
'015I',
'030I',
'045I',
'060I',
'075I',
'090I',
'105I',
'120I',
'135I',
'150I',
'180I').
ENDIF.
IF PA_OTH EQ 'X'.
SELECT
UKURS
KURST
GDATU
FCURR
TCURR
INTO CORRESPONDING FIELDS OF TABLE LT_TCURR_O
FROM TCURR
WHERE GDATU IN S_DATE
AND ( KURST NE 'CODI' AND KURST NE
'015I' AND KURST NE
'030I' AND KURST NE
'045I' AND KURST NE
'060I' AND KURST NE
'075I' AND KURST NE
'090I' AND KURST NE
'105I' AND KURST NE
'120I' AND KURST NE
'135I' AND KURST NE
'150I' AND KURST NE
'180I' AND KURST NE
'CODX' AND KURST NE
'015X' AND KURST NE
'030X' AND KURST NE
'045X' AND KURST NE
'060X' AND KURST NE
'075X' AND KURST NE
'090X' AND KURST NE
'105X' AND KURST NE
'120X' AND KURST NE
'135X' AND KURST NE
'150X' AND KURST NE
'180X').
ENDIF.
ENDIF.
IF S_DATE-HIGH IS INITIAL.
IF PA_SALES EQ 'X'.
SELECT
UKURS
KURST
GDATU
FCURR
TCURR
INTO CORRESPONDING FIELDS OF TABLE LT_TCURR_S
FROM TCURR
WHERE GDATU EQ S_DATE-LOW
AND KURST IN ('CODX', "sales
'015X',
'030X',
'045X',
'060X',
'075X',
'090X',
'105X',
'120X',
'135X',
'150X',
'180X').
ENDIF.
IF PA_PURCH EQ 'X'.
SELECT
UKURS
KURST
GDATU
FCURR
TCURR
INTO CORRESPONDING FIELDS OF TABLE LT_TCURR_P
FROM TCURR
WHERE GDATU EQ S_DATE-LOW
AND KURST IN ('CODI', "PURCHASE
'015I',
'030I',
'045I',
'060I',
'075I',
'090I',
'105I',
'120I',
'135I',
'150I',
'180I').
ENDIF.
IF PA_OTH EQ 'X'.
SELECT
UKURS
KURST
GDATU
FCURR
TCURR
INTO CORRESPONDING FIELDS OF TABLE LT_TCURR_O
FROM TCURR
WHERE GDATU EQ S_DATE-LOW
AND ( KURST NE 'CODI' AND KURST NE "other
'015I' AND KURST NE
'030I' AND KURST NE
'045I' AND KURST NE
'060I' AND KURST NE
'075I' AND KURST NE
'090I' AND KURST NE
'105I' AND KURST NE
'120I' AND KURST NE
'135I' AND KURST NE
'150I' AND KURST NE
'180I' AND KURST NE
'CODX' AND KURST NE
'015X' AND KURST NE
'030X' AND KURST NE
'045X' AND KURST NE
'060X' AND KURST NE
'075X' AND KURST NE
'090X' AND KURST NE
'105X' AND KURST NE
'120X' AND KURST NE
'135X' AND KURST NE
'150X' AND KURST NE
'180X').
ENDIF.
ENDIF.
IF PA_FCURR IS NOT INITIAL.
DELETE LT_TCURR_O WHERE FCURR NE PA_FCURR.
ENDIF.
IF PA_TCURR IS NOT INITIAL.
DELETE LT_TCURR_O WHERE TCURR NE PA_TCURR.
ENDIF.
"SALES
IF PA_SALES EQ 'X'.
APPEND LINES OF LT_TCURR_S TO LT_TCURR.
ENDIF.
"PURCHASE
IF PA_PURCH EQ 'X'.
APPEND LINES OF LT_TCURR_P TO LT_TCURR.
ENDIF.
"OTHERS
IF PA_OTH EQ 'X'.
APPEND LINES OF LT_TCURR_O TO LT_TCURR.
ENDIF.
" SALES + PURCHASE
IF PA_SALES EQ 'X' AND PA_PURCH EQ 'X'.
APPEND LINES OF LT_TCURR_S TO LT_TCURR.
APPEND LINES OF LT_TCURR_P TO LT_TCURR.
ENDIF.
"ALL
IF PA_SALES EQ 'X' AND PA_PURCH EQ 'X' AND PA_OTH EQ 'X'.
APPEND LINES OF LT_TCURR_S TO LT_TCURR.
APPEND LINES OF LT_TCURR_P TO LT_TCURR.
APPEND LINES OF LT_TCURR_O TO LT_TCURR.
ENDIF.
"SALES + OTHER
IF PA_SALES EQ 'X' AND PA_OTH EQ 'X'.
APPEND LINES OF LT_TCURR_S TO LT_TCURR.
APPEND LINES OF LT_TCURR_O TO LT_TCURR.
ENDIF.
"PURCHASE + OTHER
IF PA_PURCH EQ 'X' AND PA_OTH EQ 'X'.
APPEND LINES OF LT_TCURR_P TO LT_TCURR.
APPEND LINES OF LT_TCURR_O TO LT_TCURR.
ENDIF.
SORT LT_TCURR BY GDATU.
LOOP AT LT_TCURR INTO LW_TCURR.
IF ( LW_TCURR-KURST = 'CODX') OR
( LW_TCURR-KURST = '015X') OR
( LW_TCURR-KURST = '030X') OR
( LW_TCURR-KURST = '045X') OR
( LW_TCURR-KURST = '060X') OR
( LW_TCURR-KURST = '075X') OR
( LW_TCURR-KURST = '090X') OR
( LW_TCURR-KURST = '105X') OR
( LW_TCURR-KURST = '120X') OR
( LW_TCURR-KURST = '135X') OR
( LW_TCURR-KURST = '150X') OR
( LW_TCURR-KURST = '180X') .
LW_TCURR-TYPE = 'Sales'.
* ENDIF.
ELSEIF
( LW_TCURR-KURST = 'CODI') OR
( LW_TCURR-KURST = '015I') OR
( LW_TCURR-KURST = '030I') OR
( LW_TCURR-KURST = '045I') OR
( LW_TCURR-KURST = '060I') OR
( LW_TCURR-KURST = '075I') OR
( LW_TCURR-KURST = '090I') OR
( LW_TCURR-KURST = '105I') OR
( LW_TCURR-KURST = '120I') OR
( LW_TCURR-KURST = '135I') OR
( LW_TCURR-KURST = '150I') OR
( LW_TCURR-KURST = '180I') .
LW_TCURR-TYPE = 'Purchase'.
ELSE.
LW_TCURR-TYPE = 'Other'.
LW_TCURR-DESCRIP = LW_TCURR-KURST.
ENDIF.
MODIFY LT_TCURR FROM LW_TCURR TRANSPORTING TYPE DESCRIP.
ENDLOOP.
LOOP AT LT_TCURR INTO LW_TCURR .
IF LW_TCURR-KURST+0(3) = '015'.
LW_TCURR-DESCRIP = '15 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '030'.
LW_TCURR-DESCRIP = '30 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '045'.
LW_TCURR-DESCRIP = '45 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '060'.
LW_TCURR-DESCRIP = '60 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '075'.
LW_TCURR-DESCRIP = '75 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '090'.
LW_TCURR-DESCRIP = '90 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '105'.
LW_TCURR-DESCRIP = '105 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '120'.
LW_TCURR-DESCRIP = '120 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '135'.
LW_TCURR-DESCRIP = '135 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '150'.
LW_TCURR-DESCRIP = '150 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = '180'.
LW_TCURR-DESCRIP = '180 Days'.
ENDIF.
IF LW_TCURR-KURST+0(3) = 'COD'.
LW_TCURR-DESCRIP = 'COD'.
ENDIF.
MODIFY LT_TCURR FROM LW_TCURR TRANSPORTING DESCRIP.
ENDLOOP.
LOOP AT LT_TCURR INTO LW_TCURR.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_OUTPUT'
EXPORTING
INPUT = LW_TCURR-GDATU
IMPORTING
OUTPUT = LW_TCURR-DATE.
CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'
EXPORTING
INPUT = LW_TCURR-DATE
IMPORTING
OUTPUT = LW_TCURR-DATE.
CONCATENATE LW_TCURR-DATE+6(2) LW_TCURR-DATE+4(2) LW_TCURR-DATE+0(4) INTO LW_TCURR-DATE.
MODIFY LT_TCURR FROM LW_TCURR TRANSPORTING DATE.
ENDLOOP.
ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form DYN_TAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DYN_TAB .
PERFORM GET_FCAT.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = T_CFCAT
IMPORTING
EP_TABLE = G_TDREF.
ASSIGN G_TDREF->* TO <IT_DYN>.
CREATE DATA G_WDREF LIKE LINE OF <IT_DYN>.
ASSIGN G_WDREF->* TO <WA_DYN>.
ENDFORM. " DYN_TAB
*&---------------------------------------------------------------------*
*& Form GET_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FCAT .
CLEAR : T_SFCAT,T_CFCAT,WA_SFCAT,WA_CFCAT.
REFRESH : T_SFCAT,T_CFCAT.
WA_CFCAT-FIELDNAME = 'TYPE'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'TYPE'.
WA_SFCAT-REF_FIELDNAME = 'TYPE'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-KEY = 'X'.
WA_SFCAT-SELTEXT_M = 'TYPES'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
WA_CFCAT-FIELDNAME = 'DESCRIP'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'DESCRIP'.
WA_SFCAT-REF_FIELDNAME = 'DESCRIP'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-SELTEXT_M = 'DESCRIPTION'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
WA_CFCAT-FIELDNAME = 'FX_TYPE'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'FX_TYPE'.
WA_SFCAT-REF_FIELDNAME = 'KURST'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-SELTEXT_M = 'FX TYPE'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
WA_CFCAT-FIELDNAME = 'FROM_CURR'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'FROM_CURR'.
WA_SFCAT-REF_FIELDNAME = 'FCURR'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-SELTEXT_M = 'FROM CRUU'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
WA_CFCAT-FIELDNAME = 'TO_CURR'.
WA_CFCAT-DD_OUTLEN = 10.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = 'TO_CURR'.
WA_SFCAT-REF_FIELDNAME = 'TCURR'.
WA_SFCAT-TABNAME = 'LT_TCURR'.
WA_SFCAT-SELTEXT_M = 'TO CURR'.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
LT_TCURR_FIELD[] = LT_TCURR[].
SORT LT_TCURR_FIELD BY DATE.
DELETE ADJACENT DUPLICATES FROM LT_TCURR_FIELD COMPARING DATE.
DATA : L_TEXT(20),
L_FIELD(10).
LOOP AT LT_TCURR_FIELD INTO LW_TCURR_FIELD .
MOVE LW_TCURR_FIELD-DATE TO L_FIELD.
WA_CFCAT-FIELDNAME = L_FIELD.
APPEND WA_CFCAT TO T_CFCAT.
WA_SFCAT-FIELDNAME = L_FIELD.
WA_SFCAT-SELTEXT_L = L_TEXT.
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
ENDLOOP.
ENDFORM. " GET_FCAT
*&---------------------------------------------------------------------*
*& Form DIS_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DIS_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_BYPASSING_BUFFER = 'X'
I_GRID_TITLE = 'FOREX RATES'
IT_FIELDCAT = T_SFCAT[]
I_SAVE = 'X'
TABLES
T_OUTTAB = <IT_DYN>.
ENDFORM. " DIS_DATA
*&---------------------------------------------------------------------*
*& Form BUILD_REP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_REP .
DATA : L_INDEX TYPE I.
FIELD-SYMBOLS : <FS>.
LT_TCURR_C[] = LT_TCURR_A[] = LT_TCURR[].
SORT LT_TCURR_C BY FCURR TCURR DATE.
DELETE ADJACENT DUPLICATES FROM LT_TCURR_C COMPARING FCURR TCURR DATE.
SORT LT_TCURR_A BY TYPE DESCRIP FCURR TCURR.
DELETE ADJACENT DUPLICATES FROM LT_TCURR_A COMPARING TYPE DESCRIP FCURR TCURR.
SORT LT_TCURR_A BY DATE.
LOOP AT LT_TCURR_A INTO LW_TCURR_A .
LOOP AT LT_TCURR_C INTO LW_TCURR_C.
L_INDEX = SY-TABIX + 5.
READ TABLE LT_TCURR INTO LW_TCURR WITH KEY DESCRIP = LW_TCURR_A-DESCRIP
TYPE = LW_TCURR_A-TYPE
DATE = LW_TCURR_C-DATE
FCURR = LW_TCURR_A-FCURR
TCURR = LW_TCURR_A-TCURR.
IF SY-SUBRC EQ 0.
ASSIGN COMPONENT 1 OF STRUCTURE <WA_DYN> TO <FS>.
<FS> = LW_TCURR_A-TYPE.
ASSIGN COMPONENT 2 OF STRUCTURE <WA_DYN> TO <FS>.
<FS> = LW_TCURR_A-DESCRIP.
ASSIGN COMPONENT 3 OF STRUCTURE <WA_DYN> TO <FS>.
<FS> = LW_TCURR_A-KURST.
ASSIGN COMPONENT 4 OF STRUCTURE <WA_DYN> TO <FS>.
<FS> = LW_TCURR_A-FCURR.
ASSIGN COMPONENT 5 OF STRUCTURE <WA_DYN> TO <FS>.
<FS> = LW_TCURR_A-TCURR.
ASSIGN COMPONENT L_INDEX OF STRUCTURE <WA_DYN> TO <FS>.
<FS> = LW_TCURR-UKURS.
DELETE LT_TCURR WHERE DESCRIP = LW_TCURR_A-DESCRIP AND TYPE = LW_TCURR_A-TYPE
AND DATE = LW_TCURR_C-DATE
AND FCURR = LW_TCURR_A-FCURR
AND TCURR = LW_TCURR_A-TCURR.
ENDIF.
ENDLOOP.
APPEND <WA_DYN> TO <IT_DYN>.
CLEAR <WA_DYN>.
CLEAR : LW_TCURR_A, LW_TCURR_C , LW_TCURR.
ENDLOOP.
ENDFORM. " BUILD_REP
‎2008 May 08 2:30 PM
I got the problem.
It is a small mistake from the fieldcatalog side.
populate the column text also.
LOOP AT LT_TCURR_FIELD INTO LW_TCURR_FIELD .
MOVE LW_TCURR_FIELD-DATE TO L_FIELD.
WA_CFCAT-FIELDNAME = L_FIELD.
APPEND WA_CFCAT TO T_CFCAT.
*-Populate the L_TEXT.
WA_SFCAT-FIELDNAME = L_FIELD.
WA_SFCAT-SELTEXT_L = L_TEXT. "It is not populate at all
APPEND WA_SFCAT TO T_SFCAT.
CLEAR: WA_CFCAT, WA_SFCAT.
ENDLOOP.
‎2008 May 08 3:00 PM
If you solved the please close the thread and Reward points for the helpful answers.
Thanks.
‎2008 May 09 5:22 AM