Quantcast
Viewing all articles
Browse latest Browse all 8065

Re: Problem with decimal

Hi,

 

Can you check my code. I've tried changing the data types of my internal table and my output is stll same when I press enter.

The output should be 2.00 3.00 5.00 7.00

Image may be NSFW.
Clik here to view.
1.PNG

Also if I enter 12345.00 the output should be 12,345.00.

Thank you so much for the help.

 

 

* ALV required data objects.

TYPE-POOLS: sdydo, icon, slis.

 

DATA: w_title     TYPE lvc_title,

       w_repid     TYPE sy-repid,

       w_comm      TYPE slis_formname,

       w_status    TYPE slis_formname,

       x_layout    TYPE slis_layout_alv,

       ls_events   TYPE LINE OF slis_t_event,

       t_events    TYPE slis_t_event,

       t_fieldcat  TYPE slis_t_fieldcat_alv,

       x_sort      type LINE OF slis_t_sortinfo_alv,

       t_sort      TYPE slis_t_sortinfo_alv,

       ls_heading  TYPE slis_listheader,

       t_heading   TYPE slis_t_listheader,

       ls_fieldcat TYPE slis_fieldcat_alv,

       gs_variant  LIKE disvariant,

        gt_events            TYPE slis_t_event,

        gs_events            TYPE slis_alv_event.

 

DATA:

   wa_layout     TYPE slis_layout_alv,

   wa_events         TYPE slis_alv_event,

   wa_sort TYPE slis_sortinfo_alv.

 

TYPES: BEGIN OF t_header,

        line01(555) TYPE c,

        line02(555) TYPE c,

        END OF t_header.

DATA: is_print TYPE slis_print_alv,

       gset TYPE lvc_s_glay,

       %runmode TYPE aqlimode.

data: it_sortcat   type slis_sortinfo_alv occurs 1.

DATA: gw_header  TYPE t_header.

" END OF ALV DATA

"========================================================================================================================

 

 

DATA: BEGIN OF it_data OCCURS 0,

   docno LIKE zit_haul_line-docno,

   line  LIKE zit_haul_line-line,

   eqpno LIKE zit_haul_line-eqpno,

   rpt TYPE p DECIMALS 2"LIKE zit_haul_line-rpt,

   notrip TYPE p DECIMALS 2,

   trc TYPE p DECIMALS 2,

   escfee TYPE p DECIMALS 2,

   tollfee TYPE p DECIMALS 2,

   repr TYPE p DECIMALS 2,

   others TYPE p DECIMALS 2,

   tba TYPE p DECIMALS 2,

   dik LIKE zit_haul_line-dik,

   locorg LIKE zit_haul_line-locorg,

   locdes LIKE zit_haul_line-locdes,

END OF it_data.

DATA: wa_data LIKE it_data.

DATA: it_modified TYPE STANDARD TABLE OF zit_haul_line WITH HEADER LINE.

DATA: wa_modified TYPE STANDARD TABLE OF zit_haul_line WITH HEADER LINE.

 

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS: r_create RADIOBUTTON GROUP rad1  USER-COMMAND a DEFAULT 'X'.

   SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

   PARAMETERS: r_proj RADIOBUTTON GROUP rad2 MODIF ID A.

   PARAMETERS: r_cost RADIOBUTTON GROUP rad2 MODIF ID A.

   SELECTION-SCREEN END OF BLOCK b2.

PARAMETERS: r_post RADIOBUTTON GROUP rad1.

PARAMETERS: r_rev RADIOBUTTON GROUP rad1.

 

   SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME.

     PARAMETERS: p_docno LIKE mseg-belnr MODIF ID B,

                 p_post LIKE sy-datum MODIF ID B.

   SELECTION-SCREEN END OF BLOCK b3.

 

SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME.

PARAMETERS: p_trand LIKE sy-datum,

             p_cost LIKE csks-kostl,

             p_proj TYPE string,

             p_wbs TYPE string,

             p_nwa TYPE string.

SELECTION-SCREEN END OF BLOCK b4.

SELECTION-SCREEN END OF BLOCK b1.

 

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

   IF r_create = 'X'.

     IF screen-group1 = 'A'.

        screen-active = 1.

     ENDIF.

   ELSE.

     IF screen-group1 = 'A'.

        screen-active = 0.

     ENDIF.

   ENDIF.

 

   IF r_post = 'X' OR r_rev = 'X'.

     IF screen-group1 = 'B'.

        screen-active = 1.

     ENDIF.

   ELSE.

     IF screen-group1 = 'B'.

        screen-active = 0.

     ENDIF.

   ENDIF.

 

   MODIFY SCREEN.

ENDLOOP.

 

 

START-OF-SELECTION.

PERFORM get_data.

PERFORM display_report.

 

 

 

FORM get_data.

it_data-line = '001'.

APPEND it_data.

it_data-line = '002'.

APPEND it_data.

it_data-line = '003'.

APPEND it_data.

it_data-line = '004'.

APPEND it_data.

it_data-line = '005'.

APPEND it_data.

it_data-line = '006'.

APPEND it_data.

it_data-line = '007'.

APPEND it_data.

it_data-line = '008'.

APPEND it_data.

it_data-line = '009'.

APPEND it_data.

it_data-line = '010'.

APPEND it_data.

ENDFORM.

 

 

 

 

 

"ALV DISPLAY ====================================================================================================================================

 

"&---------------------------------------------------------------------*

"&      Form  PF_WRITE_FIELDCAT

"&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&      Form  pf_write_fieldcat

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->FNAME      text

*      -->TNAME      text

*      -->TEXT       text

*      -->LEN        text

*----------------------------------------------------------------------*

FORM pf_write_fieldcat  USING fname

                               tname

                               text

                               len

                               edt.

*                              key

*                              sum.

 

   ls_fieldcat-fieldname     = fname.

   ls_fieldcat-tabname       = tname.

   ls_fieldcat-seltext_l     = text.

   ls_fieldcat-outputlen     = len.

*  ls_fieldcat-key           = key.

*  ls_fieldcat-do_sum        = sum.

   ls_fieldcat-edit = edt.

   IF len = '0'.

     ls_fieldcat-outputlen     = '1'.

     ls_fieldcat-no_out = 'X'.

   ENDIF.

 

   APPEND ls_fieldcat TO t_fieldcat.

   CLEAR ls_fieldcat.

 

*  To set ENTER Event!

   gs_events-name = 'CALLER_EXIT'.

   gs_events-form = 'CALLER_EXIT'.

   APPEND gs_events TO gt_events.

*   To change the ALV Changed Protocoll

   gs_events-name = 'DATA_CHANGED'.

   gs_events-form = 'DATA_CHANGED'.

   APPEND gs_events TO gt_events.

ENDFORM.                    " PF_WRITE_FIELDCAT

 

*&---------------------------------------------------------------------*

*&      Form  display_report

*&---------------------------------------------------------------------*

FORM display_report.

 

   is_print-no_print_selinfos = 'X'.

   is_print-no_print_listinfos = 'X'.

   is_print-print_ctrl = 'X'.

 

   PERFORM pf_write_fieldcat USING:

*  'DOCNO'                  'IT_DATA'  'Line'                   ' ' '',

   'LINE'                  'IT_DATA'  'Line'                   ' ' '',

   'EQPNO'                 'IT_DATA'  'Equipment No.'          ' ' 'X',

   'RPT'           'IT_DATA'  'Rate per Trip'          ' ' 'X',

   'NOTRIP'              'IT_DATA'  'No of Trip'             ' ' 'X',

   'TRC'             'IT_DATA'  'Total Rental Charges'   ' ' '',

   'ESCFEE'             'IT_DATA'  'Escort Fee'             ' ' 'X',

   'TOLLFEE'               'IT_DATA'  'Toll Fee'               ' ' 'X',

   'REPR'             'IT_DATA'  'Representation'         ' ' 'X',

   'OTHERS'                'IT_DATA'  'Others'                 ' ' 'X',

   'TBA'               'IT_DATA'  'Total Billable Amount'  ' ' '',

   'DIK'              'IT_DATA'  'Distance in KM'         ' ' 'X',

   'LOCORG'             'IT_DATA'  'Location Origin'        ' ' 'X',

   'LOCDES'             'IT_DATA'  'Location Destination'   ' ' 'X'.

 

 

* Layout

   x_layout-zebra = 'X'.

   x_layout-no_keyfix = ' '.

   x_layout-colwidth_optimize = 'X'.

 

* GUI Status

   w_status = 'SET_PF_STATUS'.

   w_repid = sy-repid.

 

* User commands

   w_comm = 'USER_COMMAND'.

 

*  gs_variant-variant = p_var1.

*  gs_variant-handle  = space.

*  gs_variant-report  = sy-repid.

   gs_variant-report  = sy-repid.

   gs_variant-username = sy-uname.

   gset-no_colwopt = 'X'.

 

* Displays the ALV grid

   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

     EXPORTING

       i_callback_program = sy-repid

       it_fieldcat        = t_fieldcat

       is_layout          = x_layout

       "it_sort            = t_sort

       it_sort                 = it_sortcat

*      i_callback_pf_status_set = w_status

       "i_callback_user_command  = w_comm

       I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

*      i_callback_html_top_of_page  = 'TOP_OF_PAGE'

       i_callback_top_of_page  = 'TOP-OF-PAGE'

*      i_callback_html_end_of_list = 'END-OF-PAGE'

       is_variant         = gs_variant

       i_save             = 'A'

       is_print           = is_print

       it_events          = gt_events

*      i_grid_title       = w_title

     TABLES

       t_outtab           = IT_DATA

     EXCEPTIONS

       program_error      = 1

       OTHERS             = 2.

ENDFORM.                    " display_report

 

 

FORM data_changed USING ir_data_changed TYPE REF TO cl_alv_changed_data_protocol.

   DATA ls_modi TYPE lvc_s_modi.

   DATA: ratepertrip LIKE zit_haul_line-rpt,

         nooftrip LIKE zit_haul_line-notrip,

         lv_value TYPE lvc_value ,

         totalrent LIKE zit_haul_line-trc,

         escortfee LIKE zit_haul_line-escfee,

         tollfee LIKE zit_haul_line-tollfee,

         represent LIKE zit_haul_line-repr,

         others LIKE zit_haul_line-others,

         lv_value1 TYPE lvc_value,

         totalbill LIKE zit_haul_line-tba.

   DATA: eqpno LIKE equi-equnr,

         gv_equnr LIKE equi-equnr.

 

* Check each modification:

   LOOP AT ir_data_changed->mt_mod_cells INTO ls_modi.

      CASE ls_modi-fieldname.

       WHEN 'EQPNO'.

         CONDENSE ls_modi-value.

         SELECT SINGLE equnr

           INTO gv_equnr

           FROM equi

           WHERE equnr EQ ls_modi-value.

         IF sy-subrc NE 0.

           CALL METHOD ir_data_changed->add_protocol_entry

             EXPORTING

               i_msgid     = '00'

               i_msgty     = 'E'

               i_msgno     = '398'

               i_msgv1     = 'Equipment Number does not exist:'

               i_msgv2     = ls_modi-value

               i_msgv3     = ''

               i_msgv4     = ''

               i_fieldname = ls_modi-fieldname

               i_row_id    = ls_modi-row_id.

         ENDIF.

     ENDCASE.

 

 

   CALL METHOD ir_data_changed->get_cell_value

     EXPORTING i_row_id = ls_modi-row_id

     i_fieldname = 'RPT'

     IMPORTING e_value = ratepertrip.

 

   CALL METHOD ir_data_changed->get_cell_value

     EXPORTING i_row_id = ls_modi-row_id

     i_fieldname = 'NOTRIP'

     IMPORTING e_value = nooftrip.

 

   CLEAR totalrent.

     ls_modi-fieldname = 'TRC'.

     IF ratepertrip = ''.

       ratepertrip = 1.

     ELSEIF nooftrip = ''.

       nooftrip = 1.

     ENDIF.

     totalrent = ratepertrip * nooftrip.

     CALL METHOD ir_data_changed->modify_cell

       EXPORTING i_row_id = ls_modi-row_id

       i_fieldname = ls_modi-fieldname

       i_value = totalrent.

 

   CALL METHOD ir_data_changed->get_cell_value

     EXPORTING i_row_id = ls_modi-row_id

     i_fieldname = 'ESCFEE'

     IMPORTING e_value = escortfee.

 

   CALL METHOD ir_data_changed->get_cell_value

     EXPORTING i_row_id = ls_modi-row_id

     i_fieldname = 'TOLLFEE'

     IMPORTING e_value = tollfee.

 

   CALL METHOD ir_data_changed->get_cell_value

     EXPORTING i_row_id = ls_modi-row_id

     i_fieldname = 'REPR'

     IMPORTING e_value = represent.

 

   CALL METHOD ir_data_changed->get_cell_value

     EXPORTING i_row_id = ls_modi-row_id

     i_fieldname = 'OTHERS'

     IMPORTING e_value = others.

 

   CLEAR totalbill.

     ls_modi-fieldname = 'TBA'.

     totalbill = escortfee + tollfee + represent + others.

     totalbill = totalrent + totalbill.

     CALL METHOD ir_data_changed->modify_cell

       EXPORTING i_row_id = ls_modi-row_id

       i_fieldname = ls_modi-fieldname

       i_value = totalbill.

 

 

   ENDLOOP.

ENDFORM.                    "data_changed

 

FORM caller_exit USING is_data TYPE slis_data_caller_exit.

* Switch to OO_ALV:

   DATA: lr_alv TYPE REF TO cl_gui_alv_grid.

   CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

     IMPORTING

       e_grid = lr_alv.

* Register ENTER as edit event:

   CALL METHOD lr_alv->register_edit_event

     EXPORTING

       i_event_id = cl_gui_alv_grid=>mc_evt_enter.

* pls. use MC_EVT_MODIFIED if leaving the cell should trigger the edit event!

ENDFORM. "CALLER_EXIT

 

 

*&---------------------------------------------------------------------*

*&      Form  TOP-OF-PAGE

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM top-of-page.

*ALV Header declarations

   DATA: t_header TYPE slis_t_listheader,

         wa_header TYPE slis_listheader,

         t_line LIKE wa_header-info,

         ld_lines TYPE i,

         ld_linesc(10) TYPE c.

   DATA: text TYPE sdydo_text_element,

         a_right   TYPE REF TO cl_dd_area.

   DATA: tran TYPE string,

         send TYPE string,

         wbs TYPE string,

         nwa TYPE string.

 

   text = 'Create Hauling Charges for Project'.

   wa_header-typ  = 'S'.

   wa_header-info = text.

   APPEND wa_header TO t_header.

   CLEAR: wa_header.

   gw_header-line01 = text.

 

   CONCATENATE 'Transaction Date: ' p_trand INTO tran SEPARATED BY space.

   text = tran.

   wa_header-typ  = 'S'.

   wa_header-info = text.

   APPEND wa_header TO t_header.

   CLEAR: wa_header.

   gw_header-line01 = text.

 

   CONCATENATE 'Sender Cost Center: ' p_cost INTO send SEPARATED BY space.

   text = send.

   wa_header-typ  = 'S'.

   wa_header-info = text.

   APPEND wa_header TO t_header.

   CLEAR: wa_header.

   gw_header-line01 = text.

 

   CONCATENATE 'Receiver WBS: ' p_wbs INTO wbs SEPARATED BY space.

   text = wbs.

   wa_header-typ  = 'S'.

   wa_header-info = text.

   APPEND wa_header TO t_header.

   CLEAR: wa_header.

   gw_header-line01 = text.

 

   CONCATENATE 'Receiver Network and NWA: ' p_nwa INTO nwa SEPARATED BY space.

   text = nwa.

   wa_header-typ  = 'S'.

   wa_header-info = text.

   APPEND wa_header TO t_header.

   CLEAR: wa_header.

   gw_header-line01 = text.

 

 

 

 

   CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

     EXPORTING

       it_list_commentary = t_header.

 

ENDFORM.                    "top-of-page

 

FORM pf_set_top_page_heading  USING typ

                                     key

                                     info.

 

   ls_heading-typ = typ.

   ls_heading-key = key.

   ls_heading-info = info.

 

   APPEND ls_heading TO t_heading.

 

ENDFORM.                    " PF_SET_TOP_PAGE_HEADING

 

*&---------------------------------------------------------------------*

*&      Form  PF_SET_TOP_PAGE_EVENTS

*&---------------------------------------------------------------------*

 

FORM pf_set_top_page_events  USING name

                                    form.

 

   ls_events-name = name.

   ls_events-form = form.

 

   APPEND ls_events TO t_events.

   CLEAR ls_events.

 

ENDFORM.                    " PF_SET_TOP_PAGE_EVENTS

*&---------------------------------------------------------------------*

*&      Form  REUSE_ALV_GET_VARIANT

*&---------------------------------------------------------------------*

 

FORM reuse_alv_get_variant

   USING    value(iv_repid)   TYPE  sy-repid

            value(iv_handleTYPE  slis_handl

 

   CHANGING iv_variant        TYPE  disvariant-variant.

 

   DATA: lv_exit(1) TYPE c,

         ls_variant TYPE disvariant.   " Structure for Variant

 

   MOVE: iv_variant TO ls_variant-variant,

         iv_handle  TO ls_variant-handle,

         iv_repid   TO ls_variant-report.

 

   CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

     EXPORTING

       is_variant    = ls_variant

       i_save        = 'A'

     IMPORTING

       e_exit        = lv_exit

       es_variant    = ls_variant

     EXCEPTIONS

       not_found     = 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.

 

   IF lv_exit = space.

     MOVE ls_variant-variant TO iv_variant.

   ENDIF.

 

ENDFORM.                    " REUSE_ALV_GET_VARIANT                 "

 

 

 

FORM user_command USING w_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

 

CASE w_ucomm.

WHEN '&DATA_SAVE'.

*  READ TABLE it_data INTO wa_data." INDEX rs_selfield-tabindex.

   DELETE it_data WHERE eqpno IS INITIAL.

   LOOP AT it_data INTO wa_data.

     CONDENSE wa_data-eqpno.

 

     MOVE-CORRESPONDING wa_data TO wa_modified.

     APPEND wa_modified TO it_modified.

 

   ENDLOOP.

   MODIFY zit_haul_line FROM TABLE it_modified.

 

ENDCASE.

ENDFORM. "user_command


Viewing all articles
Browse latest Browse all 8065

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>