2009 Oct 07 8:54 AM
HI ,
since i using methods i can do perform,
can i do it it better way instead of using the same logic for 3 time ,
Thanks
Chris
lt_type_format = me->get_domain_value( ms_defultes ).
IF is_dev-date_format IS INITIAL.
READ TABLE lt_type_format ASSIGNING <ls_type_format>
WITH KEY domain_name = clconstants=>gc_date_type.
is_de-date_format = <ls_type_format>-format_value."Get date format
ENDIF.
IF is_de-time_format IS INITIAL.
READ TABLE lt_type_format ASSIGNING <ls_type_format>
WITH KEY domain_name = clconstants=>gc_time_type.
is_de-time_format = <ls_type_format>-format_value."Get time format
ENDIF.
IF is_de-num_format IS INITIAL.
READ TABLE lt_type_format ASSIGNING <ls_type_format>
WITH KEY domain_name = clconstants=>gc_dec_type.
is_de-num_format = <ls_type_format>-format_value."Get dec notation
ENDIF.Edited by: Chris Teb on Oct 7, 2009 10:10 AM
2009 Oct 07 4:29 PM
Yes you can.
Create your lt_type_format as the attribute of your class.
Create a method say GET_FORMAT
Signature:
Importing IV_TYPE TYPE CHAR30 (pass clconstants=>gc_date_type or clconstants=>gc_time_type)
Returning RV_FORMAT TYPE CHAR30 ( Recieve the value back)
Use the Read statement to read the table LT_TYPE_FORMAT and send back the values in RF_FORMAT
Like:
CLASS lcl_format DEFINITION.
PUBLIC SECTION.
METHODS:
constructor,
get_format
IMPORTING
iv_type TYPE char30
RETURNING value(rv_format) TYPE char30.
PRIVATE SECTION.
TYPES: BEGIN OF ty_tab,
format_type TYPE char30,
format TYPE char30,
END OF ty_tab.
DATA: i_tab TYPE STANDARD TABLE OF ty_tab.
ENDCLASS. "lcl_format DEFINITION
START-OF-SELECTION.
DATA: o_format TYPE REF TO lcl_format,
lv_date_format TYPE char30,
lv_time_format TYPE char30.
CREATE OBJECT o_format.
lv_date_format = o_format->get_format( 'D' ).
WRITE: / lv_date_format.
lv_time_format = o_format->get_format( 'T' ).
WRITE: / lv_time_format.
CLASS lcl_format IMPLEMENTATION.
METHOD constructor.
FIELD-SYMBOLS: <lfs_tab> LIKE LINE OF me->i_tab.
APPEND INITIAL LINE TO me->i_tab ASSIGNING <lfs_tab>.
<lfs_tab>-format_type = 'D'.
<lfs_tab>-format = 'MM/DD/YYYY'.
APPEND INITIAL LINE TO me->i_tab ASSIGNING <lfs_tab>.
<lfs_tab>-format_type = 'T'.
<lfs_tab>-format = 'HHMMSS'.
ENDMETHOD. "constructor
METHOD get_format.
FIELD-SYMBOLS: <lfs_tab> LIKE LINE OF me->i_tab.
DATA: lv_key TYPE string.
READ TABLE me->i_tab ASSIGNING <lfs_tab>
WITH KEY format_type = iv_type.
IF sy-subrc = 0.
rv_format = <lfs_tab>-format.
ENDIF.
ENDMETHOD. "get_format
ENDCLASS . "lcl_format IMPLEMENTATION
Regards,
Naimesh Patel
HI ,
since i using methods i can do perform,
can i do it it better way instead of using the same logic for 3 time ,
Thanks
Chris
lt_type_format = me->get_domain_value( ms_defultes ).
IF is_dev-date_format IS INITIAL.
READ TABLE lt_type_format ASSIGNING <ls_type_format>
WITH KEY domain_name = clconstants=>gc_date_type.
is_de-date_format = <ls_type_format>-format_value."Get date format
ENDIF.
IF is_de-time_format IS INITIAL.
READ TABLE lt_type_format ASSIGNING <ls_type_format>
WITH KEY domain_name = clconstants=>gc_time_type.
is_de-time_format = <ls_type_format>-format_value."Get time format
ENDIF.
IF is_de-num_format IS INITIAL.
READ TABLE lt_type_format ASSIGNING <ls_type_format>
WITH KEY domain_name = clconstants=>gc_dec_type.
is_de-num_format = <ls_type_format>-format_value."Get dec notation
ENDIF.Edited by: Chris Teb on Oct 7, 2009 10:10 AM
2009 Oct 07 4:29 PM
Yes you can.
Create your lt_type_format as the attribute of your class.
Create a method say GET_FORMAT
Signature:
Importing IV_TYPE TYPE CHAR30 (pass clconstants=>gc_date_type or clconstants=>gc_time_type)
Returning RV_FORMAT TYPE CHAR30 ( Recieve the value back)
Use the Read statement to read the table LT_TYPE_FORMAT and send back the values in RF_FORMAT
Like:
CLASS lcl_format DEFINITION.
PUBLIC SECTION.
METHODS:
constructor,
get_format
IMPORTING
iv_type TYPE char30
RETURNING value(rv_format) TYPE char30.
PRIVATE SECTION.
TYPES: BEGIN OF ty_tab,
format_type TYPE char30,
format TYPE char30,
END OF ty_tab.
DATA: i_tab TYPE STANDARD TABLE OF ty_tab.
ENDCLASS. "lcl_format DEFINITION
START-OF-SELECTION.
DATA: o_format TYPE REF TO lcl_format,
lv_date_format TYPE char30,
lv_time_format TYPE char30.
CREATE OBJECT o_format.
lv_date_format = o_format->get_format( 'D' ).
WRITE: / lv_date_format.
lv_time_format = o_format->get_format( 'T' ).
WRITE: / lv_time_format.
CLASS lcl_format IMPLEMENTATION.
METHOD constructor.
FIELD-SYMBOLS: <lfs_tab> LIKE LINE OF me->i_tab.
APPEND INITIAL LINE TO me->i_tab ASSIGNING <lfs_tab>.
<lfs_tab>-format_type = 'D'.
<lfs_tab>-format = 'MM/DD/YYYY'.
APPEND INITIAL LINE TO me->i_tab ASSIGNING <lfs_tab>.
<lfs_tab>-format_type = 'T'.
<lfs_tab>-format = 'HHMMSS'.
ENDMETHOD. "constructor
METHOD get_format.
FIELD-SYMBOLS: <lfs_tab> LIKE LINE OF me->i_tab.
DATA: lv_key TYPE string.
READ TABLE me->i_tab ASSIGNING <lfs_tab>
WITH KEY format_type = iv_type.
IF sy-subrc = 0.
rv_format = <lfs_tab>-format.
ENDIF.
ENDMETHOD. "get_format
ENDCLASS . "lcl_format IMPLEMENTATION
Regards,
Naimesh Patel
2009 Oct 08 9:07 AM
Hi
what is the purpose of APPEND INITIAL LINE TO ?
Regards
Chris
2009 Oct 08 2:41 PM
When you use the field-symbols instead of the work area, you need to use the APPEND INITIAL LINE.. ASSIGNING <FS> to assign that new line to your Field-Symbol.
Code with Work area
DATA: WA_TAB LIKE LINE OF ITAB.
WA_TAB-FIELD1 = 'TEST'.
APPEND WA_TAB TO ITAB.
And code with Field-symbols:
FIELD-SYMBOLS: <FS_TAB> LIKE LINE OF ITAB.
APPEND INITIAL LINE TO ITAB ASSIGNING <FS_TAB>.
<FS_TAB>-FIELD1 = 'TEST'.
Achieve the same end result, it appends a line to Internal table.
Regards,
Naimesh Patel
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |