Rounding decimals using FM REUSE_ALV_HIERSEQ_LIST_DISPLAY

Hi all.
I am having no luck get values to round in FM REUSE_ALV_HIERSEQ_LIST_DISPLAY.  I have managed to get them to round in REUSE_ALV_GRID_DISPLAY by setting DECIMALS_OUT to a value of 0.
Any help would be very much appreciated.
Anthony

Hi Anthony,
<b>1</b>.
If DECIMALS_OUT is working properly for REUSE_ALV_GRID_DISPLAY,it should work for REUSE_ALV_HIERSEQ_LIST_DISPLAY.Becoz there is no difference between two fieldcatalogs .
<b>Thanks,
Venkat.O</b>

Similar Messages

  • How to round numbers using javascript in Adobe Acrobat Pro?

    How to round numbers using java script in Adobe Acrobat Pro?
    For example:
    1.2 becomes 1.0
    1.7 becomes 2.0
    Thank you.

    Assuming you've already set the field to a Number format category and limited it to one digit to the right of the decimal, you can use the following custom Validate script:
    // Custom Validate script
    event.value = Math.round(event.value);
    More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/roun d

  • I got my Imac and Trackpad in may so its new and the batterys have run out on the trackpad, so i have put new batterys in and its not even turning back on i have tried the batterys the other way round ( i used duracell) and still not working, HELP

    I got my Imac and Trackpad in may so its new and the batterys have run out on the trackpad, so i have put new batterys in and its not even turning back on i have tried the batterys the other way round ( i used duracell) and still not working, so i put the old batterys in and it still wont turn on. I am getting so angry woth apple things, the make it sound better than it is and over pice it, i paid over a grand for my imac and it dont even come with a cd SLOT. Please can some one help!

    Edge has very clear restrictions, one being that you must have 6 months of clean payment history which you don't. Either wait until April 14, or good luck at Sprint.
    I am unsure how it can be determined the payment mix up was the fault of CS, but regardless, the mix up was done. There can be any number of reasons why a payment could be missed without any fault on your part, however you are still the responsible party for the account and must live with the repercussions.

  • Taking tooo much time  when using FM REUSE_ALV_HIERSEQ_LIST_DISPLAY

    Hi Guys,
    I  using  FM REUSE_ALV_HIERSEQ_LIST_DISPLAY in my report ,
    In my internal table   more than 200000 reords are there when  was displaying it , taking tooooo much time plz advice me how to over come it
    Thanks,
    Prasad.

    Hi
    In select stetements it is fetching valus very faslty
    afetr that passing those values to
    fallowing FM    it was taking tooo much time for display
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
      I_INTERFACE_CHECK              = ' '
         i_callback_program             = repid
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      IS_LAYOUT                      =
       it_fieldcat                    = i_fieldcat
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
         it_sort                        =  sort_info[]
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
      IT_EVENTS                      =
      IT_EVENT_EXIT                  =
          i_tabname_header               = hdr_tab_name
          i_tabname_item                 = item_tab_name
      I_STRUCTURE_NAME_HEADER        =
      I_STRUCTURE_NAME_ITEM          =
          is_keyinfo                     = key_info
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                =
      IR_SALV_HIERSEQ_ADAPTER        =
      IT_EXCEPT_QINFO                =
      I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
      TABLES
          t_outtab_header                = it_header
          t_outtab_item                  = it_item.
    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.
    any inputs plz.......
    *is *it* possible hierarchical list using   reuse_alv_list_display  FM

  • [JS][CS5] rounding decimals in swatch values

    Hello again,
    I recently made this script to round decimals in the swatch values if there were any. I'm pretty new to JS so this probably isn't the prettiest code so I was wondering if someone had a better way of doing it.  This works, but sometimes it takes a while and I'm pretty sure it is looking at the [paper], [black], and other swatches that can't be changed.  That is why I made it skip the errors during the script...
    function round(color) {
        try { color.space = ColorSpace.cmyk;
        var vals = color.colorValue;
        for (var j = vals.length - 1; j >= 0; j--) {
            vals[j] = Math.round(vals[j]);
        color.colorValue = vals;
    } catch (err) {}
    if (app.documents.length > 0) {
            var target = app.documents[0];
        } else {
            var target = app;
    var myColors = target.colors.everyItem().getElements();
    for (var j = myColors.length - 1; j >= 0; j--) {
        round(myColors[j]);
    alert("Swatches Rounded");
    Any help is appreciated.

    Same bug in ESTK 3 / CS4.
    The data browser definitely has a problem in displaying object properties whose name starts with a (recurring) digit. The issue is not related to property names that could contain a space character —which is not forbidden! Curiously, it seems that the bug only occurs with digits greater than 1.
    Compare:
    var obj = {
         "0a": null,
         "00b": null,
         "1a": null,
         "11b": null
    // The data browser properly displays all obj properties
    and:
    var obj = {
         "2a": null,
         "22b": null,
         "5a": null,
         "55b": null
    // The data browser only displays obj['5a'] and obj['5b']!
    Note that this is not an internal ExtendScript bug. In all cases the object is properly set, the for...in loop works fine and obj.__count__ returns the correct number of enumerable properties.
    Conclusion: ESTK sucks!
    @+
    Marc

  • Can't get it to round to 2 decimals, using DecimalFormat, please proof read

    Why won't this output #.##? No matter how I change them it still gives me exact answers.
       import javax.swing.*;
       import java.awt.*;
       import java.util.*;
       import java.text.DecimalFormat;
        public class Calculator{
           public static void main (String[] args){
          //Ask for input
             String inputString = JOptionPane.showInputDialog("Input your desired calculation, separating numbers and operation with spaces.(+-/*%)");
          //split input to make switch function
             String[] result = inputString.split("\\s");
          /*I Put both of these in here, but stuck with the Double,
          I think thats the better fit*/
          //float n1 = Float.parseFloat(result[0]);
          //float n2 = Float.parseFloat(result[2]);
             double n1 = Double.parseDouble(result[0]);
             double n2 = Double.parseDouble(result[2]);
             char c = result [1].charAt(0);
             if((c == '+')  || (c == '/') || (c == '*') || (c == '%') || (c == '-'))
             DecimalFormat df = new DecimalFormat("#.##"); 
             //switch function to cover the 5 functions, and divide by zero message
                switch(c)
                   case '+':
                      double answer = n1 + n2;           
                      df.format(answer);
                      JOptionPane.showMessageDialog(null, inputString + " = " + (answer));
                      break;
                   case '-':
                      //DecimalFormat df = new DecimalFormat("#.#");            
                      double answer2 = n1 + -n2;           
                      df.format(answer2);
                      JOptionPane.showMessageDialog(null, inputString + " = " + (answer2));
                      break;
                   case '/':
                      if(n2 == 0)
                         JOptionPane.showMessageDialog(null, "You know that's a no no!");
                      else
                         //DecimalFormat df = new DecimalFormat("#.#");            
                         double answer3 = n1 / n2;           
                         df.format(answer3);             
                         JOptionPane.showMessageDialog(null, inputString + " = " + (answer3));
                      break;
                   case '*':
                      //DecimalFormat df = new DecimalFormat("#.#");            
                      double answer4 = n1 * n2;           
                      df.format(answer4);           
                      JOptionPane.showMessageDialog(null, inputString + " = " + (answer4));
                      break;
                   case '%':
                      //DecimalFormat df = new DecimalFormat("#.#");            
                      double answer5 = n1 % n2;           
                      df.format(answer5);         
                      JOptionPane.showMessageDialog(null, inputString + " = " + (answer5));
                      break;
             else
                System.out.println("Can't do that operation!");     
       }I commented out some other stuff I was thinking on, so just ignore. Thanks!

    cuz you are not using the value returned by the DecimalFormat object.
                      df.format(answer2);
                      JOptionPane.showMessageDialog(null, inputString + " = " + (answer2));DecimalFormat.format() returns a string. By what magic do you think the primitive double answer2 is going to be changed to a String object?
                      String a2 = df.format(answer2);
                      JOptionPane.showMessageDialog(null, inputString + " = " + (a2));

  • Using a toString() method to round decimals

    I've been working on this project for school, building a class which models cartesian coordinates and can also convert them to polar coordinates. After much work I have a working product with some time to spare. Theres a small amount of extra credit to be gained if i can use toString() methods to manipulate my results to be exactly to two decimal places.
    I've been looking at the api documentation, which is what my teacher suggested, but its a little tough for a rookie like me to wade through. A point in the right direction or any help would be greatly apreciated.
    Thanks in advance

    I understand, I just dont want yall to feel like youre doing all the work for me.
    Anyways i searched google and using what i saw on this site
    http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Tech/Chapter05/decimalFormat.html
    adapted what i could to my class and came up with this
    String fmt = "0.00";
      DecimalFormat df = new DecimalFormat( fmt );
      String str_x = df.format(x);
      String str_y = df.format(y);
      public String toString()
        return "( " + str_x + ", " + str_y + " )";
      }x and y are the instance variables im using for my class: Coord
    when i try to compile i get these two error messages:
    Coord.java:133: cannot find symbol
    symbol : class DecimalFormat
    location: class Coord
    DecimalFormat df = new DecimalFormat( fmt );
    ^
    Coord.java:133: cannot find symbol
    symbol : class DecimalFormat
    location: class Coord
    DecimalFormat df = new DecimalFormat( fmt );
    ^
    I assume these errors mean my syntax is off but hopefully im headed in the right direction.

  • No rounding decimals

    Hi,
    i am using currency(ZCURR) field.
    which is upto 2 decimals.
    after calculation in currency(ZCURR) field data is comming wotih rounding.
    also i tried with PACKED decimals upto 2
    still it rounding off as i wnat actual value upto 2 decimals
    Ex: ZCURR type VABAK-netwr.
    ZCURR = '2331.437'.
    write : ZCURR
    result : 2331.44  but i want at output "2331.43".
    please help.

    Hi,
    Try below
    SPRO->Sap customizing guide->sap netweaver->general setting->currencies->set decimal places for currencies
    Surendra Jain

  • Rounding when using format-currency

    Hi all,
    We're using format-currency in several places in out reports. I.e.
    <?format-currency:ssLfBonusAmountContributing;'EUR';'true'?>
    When using this formatting we always get the value with 2 decimals.
    Is it possible to round and display without decimals?
    Regards,
    Hakan

    Hi all,
    Haven't anyone come across this issue, with currency-format and display value without decimals?
    I know that I can use number-format, but this is not then first option.
    Regards,
    Hakan

  • Help on how to use FM REUSE_ALV_HIERSEQ_LIST_DISPLAY...

    Hello Experts,
    I am having problems using the said FM. Based on my code below, can you please tell
    me what am I doing wrong. Hope you can help me guys. Thank you and take care!
    [code]
    *& Report ZFI_CASH_PROOF_SHEET
    *& PROGRAM TYPE  : Report
    *& RICEF ID      : 149
    *& TITLE         : ZFI_CASH_PROOF_SHEET
    *& SAP Module    : FI
    *& CREATION DATE : 10/24/2007
    *& AUTHOR        : Aris Hidalgo
    *& DESIGNER      : Aris Hidalgo
    *& DESCRIPTION   :
    $*********************************************************************
    *$     CHANGE HISTORY
    *$----
    *$   DATE        | T-Num      | Description                  | Reference
                  |            |                              |
    $*********************************************************************
    REPORT  zfi_cash_proof_sheet
            NO STANDARD PAGE HEADING
            MESSAGE-ID zfi.
    Data Dictionary Table/s                      *
    TABLES: t012k.
    TYPE-POOLS                                   *
    TYPE-POOLS: slis.
    SELECTION-SCREEN                             *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_bukrs FOR t012k-bukrs OBLIGATORY,
                    s_hbkid FOR t012k-hbkid,
                    s_hktid FOR t012k-hktid.
    PARAMETERS:     p_budat TYPE bsak-budat OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    */ CLASS DEFINITION/S */
    CLASS lcl_alv_routines DEFINITION DEFERRED.
          CLASS lcl_data_def DEFINITION
    CLASS lcl_data_def DEFINITION ABSTRACT.
      PUBLIC SECTION.
        TYPES: BEGIN OF t_t012k,
                bukrs TYPE t012k-bukrs,
                hbkid TYPE t012k-hbkid,
                hktid TYPE t012k-hktid,
                hkont TYPE t012k-hkont,
               END OF t_t012k.
        TYPES: BEGIN OF t_bsis_bsas,
                bukrs TYPE bsis-bukrs,
                hkont TYPE bsis-hkont,
                belnr TYPE bsis-belnr,
                buzei TYPE bsis-buzei,
                gjahr TYPE bsis-gjahr,
                budat TYPE bsis-budat,
                blart TYPE bsis-blart,
                dmbtr TYPE bsis-dmbtr,
                shkzg TYPE bsis-shkzg,
               END OF t_bsis_bsas.
        TYPES: BEGIN OF t_bsid_bsad,
                bukrs TYPE bsid-bukrs,
                belnr TYPE bsid-belnr,
                gjahr TYPE bsid-gjahr,
                blart TYPE bsid-blart,
                buzei TYPE bsid-buzei,
                budat TYPE bsid-budat,
                dmbtr TYPE bsid-dmbtr,
                shkzg TYPE bsid-shkzg,
               END OF t_bsid_bsad.
        TYPES: BEGIN OF t_cash_in_bank,
                bukrs TYPE bsis-bukrs,
                hkont TYPE bsis-hkont,
                dmbtr TYPE bsis-dmbtr,
               END OF t_cash_in_bank.
        TYPES: BEGIN OF t_outs_trade_coll,
                bukrs              TYPE bsis-bukrs,
                hkont              TYPE bsis-hkont,
                one_day            TYPE bsis-dmbtr,
                two_days           TYPE bsis-dmbtr,
                more_than_two_days TYPE bsis-dmbtr,
               END OF t_outs_trade_coll.
        TYPES: BEGIN OF t_zcheck_monitor,
                zzbukr TYPE zcheck_monitor-zzbukr,
                zhbkid TYPE zcheck_monitor-zhbkid,
                zhktid TYPE zcheck_monitor-zhktid,
                zubhkt TYPE zcheck_monitor-zubhkt,
                zrwbtr TYPE zcheck_monitor-zrwbtr,
                zrlsvd TYPE zcheck_monitor-zrlsvd,
                zrlsdt TYPE zcheck_monitor-zrlsdt,
               END OF t_zcheck_monitor.
        TYPES: BEGIN OF t_zcheck_monitor_collect,
                zzbukr TYPE zcheck_monitor-zzbukr,
                zubhkt TYPE zcheck_monitor-zubhkt,
                zrwbtr TYPE zcheck_monitor-zrwbtr,
               END OF t_zcheck_monitor_collect.
        TYPES: BEGIN OF t_company,
                bukrs TYPE t001-bukrs,
                butxt TYPE t001-butxt,
               END OF t_company.
        TYPES: BEGIN OF t_header,
                bukrs TYPE t001-bukrs,
                butxt TYPE t001-butxt,
                hbkid TYPE t012k-hbkid,
               END OF t_header.
        TYPES: BEGIN OF t_output,
                bukrs              TYPE bsis-bukrs,
                hktid              TYPE t012k-hktid,
                cash_in_bank       TYPE bsis-dmbtr,
                one_day            TYPE bsis-dmbtr,
                two_days           TYPE bsis-dmbtr,
                more_than_two_days TYPE bsis-dmbtr,
                misc_collection    TYPE bsis-dmbtr,
                outs_rel_checks    TYPE bsis-dmbtr,
                treas_transactions TYPE bsis-dmbtr,
                tot_cash_bal       TYPE bsis-dmbtr,
                outs_unrel_checks  TYPE bsis-dmbtr,
                imp_docs_due       TYPE bsis-dmbtr,
                est_cash_balance   TYPE bsis-dmbtr,
               END OF t_output.
        DATA: gt_t012k                  TYPE HASHED TABLE OF t_t012k
                                        WITH UNIQUE KEY bukrs hbkid hktid,
              gt_bsis                   TYPE STANDARD TABLE OF t_bsis_bsas,
              gt_bsis_dum               LIKE gt_bsis,
              wa_bsis                   LIKE LINE OF gt_bsis,
              gt_bsas                   LIKE gt_bsis,
              gt_bsis_bsas              LIKE gt_bsas,
              gt_bsid_bsad              TYPE SORTED TABLE OF t_bsid_bsad
                                        WITH NON-UNIQUE KEY bukrs belnr gjahr blart,
              gt_bsik                   LIKE gt_bsid_bsad,
              gt_cash_in_bank           TYPE HASHED TABLE OF t_cash_in_bank
                                        WITH UNIQUE KEY bukrs hkont,
              gt_misc_collection        LIKE gt_cash_in_bank,
              wa_misc_collection        LIKE LINE OF gt_misc_collection,
              gt_importation_docs_due   LIKE gt_cash_in_bank,
              wa_importation_docs_due   LIKE LINE OF gt_importation_docs_due,
              wa_cash_in_bank           LIKE LINE OF gt_cash_in_bank,
              gt_outs_trade_coll        TYPE HASHED TABLE OF t_outs_trade_coll
                                        WITH UNIQUE KEY bukrs hkont,
              wa_outs_trade_coll        LIKE LINE OF gt_outs_trade_coll,
              gt_zcheck_monitor         TYPE STANDARD TABLE OF t_zcheck_monitor,
              gt_zcheck_monitor_collect TYPE HASHED TABLE OF t_zcheck_monitor_collect
                                        WITH UNIQUE KEY zzbukr zubhkt,
              wa_zcheck_monitor_collect LIKE LINE OF gt_zcheck_monitor_collect,
              gt_outs_rel_checks        LIKE gt_cash_in_bank,
              wa_outs_rel_checks        LIKE LINE OF gt_outs_rel_checks,
              gt_company                TYPE HASHED TABLE OF t_company
                                        WITH UNIQUE KEY bukrs,
              wa_company                LIKE LINE OF gt_company,
              gt_header                 TYPE STANDARD TABLE OF t_header,
              wa_header                 LIKE LINE OF gt_header,
              gt_output                 TYPE STANDARD TABLE OF t_output,
              wa_output                 LIKE LINE OF gt_output.
    ENDCLASS.                    "lcl_data_def DEFINITION
          CLASS lcl_get_data DEFINITION
    CLASS lcl_get_data DEFINITION INHERITING FROM lcl_data_def.
      PUBLIC SECTION.
        METHODS: get_bank_details,
                 get_gl_balances,
                 get_cust_items,
                 get_vend_items,
                 sum_gl_accounts,
                 monday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 sunday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 tuesday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 other_days_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 difference_in_days
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_budat TYPE bsis-budat
                   EXPORTING
                     ex_diff  TYPE vtbbewe-atage,
                 outs_check_released,
                 process_data.
      PRIVATE SECTION.
        CONSTANTS: lc_credit   TYPE bsis-shkzg VALUE 'H',
                   lc_debit    TYPE bsis-shkzg VALUE 'S',
                   lc_nt       TYPE bsis-blart VALUE 'NT',
                   lc_gl_zero  TYPE bsis-hkont VALUE '+++++++++0',
                   lc_gl_one   TYPE bsis-hkont VALUE '+++++++++1',
                   lc_gl_three TYPE bsis-hkont VALUE '+++++++++3',
                   lc_monday   TYPE dtresr-weekday VALUE 'Monday',
                   lc_tuesday  TYPE dtresr-weekday VALUE 'Tuesday',
                   lc_sunday   TYPE dtresr-weekday VALUE 'Sunday'.
        CONSTANTS: lc_k3 TYPE bsik-blart VALUE 'K3',
                   lc_k4 TYPE bsik-blart VALUE 'K4',
                   lc_k5 TYPE bsik-blart VALUE 'K5',
                   lc_k6 TYPE bsik-blart VALUE 'K6',
                   lc_k7 TYPE bsik-blart VALUE 'K7',
                   lc_kb TYPE bsik-blart VALUE 'KB',
                   lc_kd TYPE bsik-blart VALUE 'KD'.
        DATA: lv_hkont           TYPE bsis-hkont,
              lr_hkont           TYPE RANGE OF bsis-hkont,
              wa_hkont           LIKE LINE OF lr_hkont,
              lr_blart           TYPE RANGE OF bsik-blart,
              wa_blart           LIKE LINE OF lr_blart,
              lv_hkont_new       TYPE bsis-hkont,
              lv_hkont_old       TYPE bsis-hkont,
              lv_date            TYPE vtbbewe-atage,
              lv_budat           TYPE bsis-budat,
              lv_day             TYPE dtresr-weekday,
              o_lcl_alv_routines TYPE REF TO lcl_alv_routines.
    ENDCLASS.                    "lcl_get_data DEFINITION
          CLASS alv_routines DEFINITION
    CLASS lcl_alv_routines DEFINITION INHERITING FROM lcl_get_data.
      PUBLIC SECTION.
        DATA: gt_fieldcat       TYPE slis_t_fieldcat_alv,
              wa_fieldcat       LIKE LINE OF gt_fieldcat,
              gs_layout         TYPE slis_layout_alv,
              gs_keyinfo        TYPE slis_keyinfo_alv,
              gv_repid          TYPE syst-repid,
              gv_tabname_header TYPE slis_tabname,
              gv_tabname_item   TYPE slis_tabname.
        METHODS: alv_init,
                 build_fieldcat,
                 display_data
                   IMPORTING
                     im_header LIKE gt_header
                     im_output LIKE gt_output.
    ENDCLASS.                    "lcl_alv_routines DEFINITION
    */ CLASS IMPLEMENTATION/S */
          CLASS lcl_get_data IMPLEMENTATION
    CLASS lcl_get_data IMPLEMENTATION.
      METHOD get_bank_details.
        FIELD-SYMBOLS: <fs_t012k> LIKE LINE OF gt_t012k.
      Get bank account/s and their corresponding G/L account/s
        SELECT bukrs hbkid
               hktid hkont
          FROM t012k
          INTO TABLE gt_t012k
         WHERE bukrs IN s_bukrs
           AND hbkid IN s_hbkid
           AND hktid IN s_hktid.
        IF NOT gt_t012k[] IS INITIAL.
          SORT gt_t012k BY bukrs hbkid hktid hkont.
        Get company name
          SELECT bukrs butxt
            FROM t001
            INTO TABLE gt_company
             FOR ALL ENTRIES IN gt_t012k
           WHERE bukrs = gt_t012k-bukrs.
          LOOP AT gt_t012k ASSIGNING <fs_t012k>.
            wa_hkont-sign   = 'I'.
            wa_hkont-option = 'EQ'.
            wa_hkont-low    = <fs_t012k>-hkont.
            SHIFT wa_hkont-low LEFT DELETING LEADING space.
            APPEND wa_hkont TO lr_hkont.
            CLEAR wa_hkont.
            lv_hkont_new = <fs_t012k>-hkont.
            IF lv_hkont_new <> lv_hkont_old.
              CLEAR lv_hkont.
              lv_hkont = <fs_t012k>-hkont.
              DO 4 TIMES.
                ADD 1 TO lv_hkont.
                CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                  EXPORTING
                    input  = lv_hkont
                  IMPORTING
                    output = lv_hkont.
                wa_hkont-sign   = 'I'.
                wa_hkont-option = 'EQ'.
                wa_hkont-low    = lv_hkont.
                SHIFT wa_hkont-low LEFT DELETING LEADING space.
                APPEND wa_hkont TO lr_hkont.
                CLEAR wa_hkont.
              ENDDO.
            ENDIF.
            lv_hkont_old = lv_hkont_new.
          ENDLOOP.
          CALL METHOD me->get_gl_balances.
        ENDIF.
      ENDMETHOD.                    "get_bank_details
      METHOD get_gl_balances.
      Get G/L line items(Open items)
        SELECT bukrs hkont belnr
               buzei gjahr budat
               blart dmbtr shkzg
          FROM bsis
          INTO TABLE gt_bsis
           FOR ALL ENTRIES IN gt_t012k
         WHERE bukrs = gt_t012k-bukrs
           AND hkont IN lr_hkont
           AND budat <= p_budat.
      Get G/L line items(Cleared items)
        SELECT bukrs hkont belnr
               buzei gjahr budat
               blart dmbtr shkzg
          FROM bsas
          INTO TABLE gt_bsas
           FOR ALL ENTRIES IN gt_t012k
         WHERE bukrs = gt_t012k-bukrs
           AND hkont IN lr_hkont
           AND budat <= p_budat.
        APPEND LINES OF gt_bsis TO gt_bsis_bsas.
        APPEND LINES OF gt_bsas TO gt_bsis_bsas.
        IF NOT gt_bsis_bsas[] IS INITIAL.
          CALL METHOD me->get_cust_items.
          CALL METHOD me->get_vend_items.
          CALL METHOD me->sum_gl_accounts.
        ENDIF.
      ENDMETHOD.                    "get_gl_balances
      METHOD get_cust_items.
      Get customer line items(Open items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
          FROM bsid
          INTO TABLE gt_bsid_bsad
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
      Get customer line items(Cleared items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
          FROM bsad
          APPENDING TABLE gt_bsid_bsad
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
      ENDMETHOD.                    "get_cust_items
      METHOD get_vend_items.
      Get vendor line items(Open items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
          FROM bsik
          INTO TABLE gt_bsik
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
        DEFINE m_blart.
          wa_blart-sign   = 'I'.
          wa_blart-option = 'EQ'.
          wa_blart-low    = &1.
          append wa_blart to lr_blart.
          clear wa_blart.
        END-OF-DEFINITION.
        m_blart lc_k3.
        m_blart lc_k4.
        m_blart lc_k5.
        m_blart lc_k6.
        m_blart lc_k7.
        m_blart lc_kb.
        m_blart lc_kd.
        IF NOT gt_bsik[] IS INITIAL AND NOT lr_blart[] IS INITIAL.
          DELETE gt_bsik WHERE blart NOT IN lr_blart[].
        ENDIF.
      ENDMETHOD.                    "get_vend_items
      METHOD sum_gl_accounts.
        FIELD-SYMBOLS: <fs_bsis_bsas>       LIKE LINE OF gt_bsis_bsas,
                       <fs_bsis>            LIKE LINE OF gt_bsis,
                       <fs_bsid_bsad>       LIKE LINE OF gt_bsid_bsad,
                       <fs_bsik>            LIKE LINE OF gt_bsik,
                       <fs_outs_rel_checks> LIKE LINE OF gt_outs_rel_checks.
        SORT gt_bsis_bsas BY bukrs hkont belnr.
        LOOP AT gt_bsis_bsas ASSIGNING <fs_bsis_bsas>.
          IF <fs_bsis_bsas>-shkzg = lc_credit.   "H
            MULTIPLY <fs_bsis_bsas>-dmbtr BY -1.
          ENDIF.
    */Routine for cash in bank
          IF <fs_bsis_bsas>-hkont CP lc_gl_zero.
            MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_cash_in_bank.
            COLLECT wa_cash_in_bank INTO gt_cash_in_bank.
            CLEAR wa_cash_in_bank.
          ENDIF.
    */Routine for miscellaneous collection
          IF <fs_bsis_bsas>-blart = lc_nt AND
             <fs_bsis_bsas>-shkzg = lc_debit AND
             <fs_bsis_bsas>-hkont CP lc_gl_one.
            READ TABLE gt_bsid_bsad ASSIGNING <fs_bsid_bsad> WITH TABLE KEY bukrs = <fs_bsis_bsas>-bukrs
                                                                            belnr = <fs_bsis_bsas>-belnr
                                                                            gjahr = <fs_bsis_bsas>-gjahr
                                                                            blart = <fs_bsis_bsas>-blart.
            IF sy-subrc = 0.
              MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_misc_collection.
              COLLECT wa_misc_collection INTO gt_misc_collection.
              CLEAR wa_misc_collection.
            ENDIF.
          ENDIF.
    */Routine for outstanding released checks
          IF <fs_bsis_bsas>-hkont CP lc_gl_three AND <fs_bsis_bsas>-shkzg = lc_debit.
            MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_outs_rel_checks.
            COLLECT wa_outs_rel_checks INTO gt_outs_rel_checks.
            CLEAR wa_outs_rel_checks.
          ENDIF.
    */Routine for importation docs.due
          IF <fs_bsis_bsas>-shkzg = lc_credit.
            READ TABLE gt_bsik ASSIGNING <fs_bsik> WITH TABLE KEY bukrs = <fs_bsis_bsas>-bukrs
                                                                  belnr = <fs_bsis_bsas>-belnr
                                                                  gjahr = <fs_bsis_bsas>-gjahr
                                                                  blart = <fs_bsis_bsas>-blart.
            IF sy-subrc = 0.
              MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_importation_docs_due.
              COLLECT wa_importation_docs_due INTO gt_importation_docs_due.
              CLEAR gt_importation_docs_due.
            ENDIF.
          ENDIF.
        ENDLOOP.
    */Routine for outstanding trade collection
        IF NOT gt_bsis[] IS INITIAL.
          DELETE gt_bsis WHERE shkzg = lc_credit.
          DELETE gt_bsis WHERE blart = lc_nt.
          IF NOT gt_bsis[] IS INITIAL.
            lv_budat = p_budat.
            CALL FUNCTION 'DATE_TO_DAY'
              EXPORTING
                date    = lv_budat
              IMPORTING
                weekday = lv_day.
            LOOP AT gt_bsis ASSIGNING <fs_bsis>.
              IF lv_day = lc_monday.
                CALL METHOD me->monday_routines
                  EXPORTING
                    im_date  = p_budat
                    im_bukrs = <fs_bsis>-bukrs
                    im_hkont = <fs_bsis>-hkont
                    im_budat = <fs_bsis>-budat
                    im_dmbtr = <fs_bsis>-dmbtr.
              ELSEIF lv_day = lc_sunday.
                CALL METHOD me->sunday_routines
                  EXPORTING
                    im_date  = p_budat
                    im_bukrs = <fs_bsis>-bukrs
                    im_hkont = <fs_bsis>-hkont
                    im_budat = <fs_bsis>-budat
                    im_dmbtr = <fs_bsis>-dmbtr.
              ELSEIF lv_day = lc_tuesday.
                CALL METHOD me->tuesday_routines
                  EXPORTING
                    im_date  = p_budat
                    im_bukrs = <fs_bsis>-bukrs
                    im_hkont = <fs_bsis>-hkont
                    im_budat = <fs_bsis>-budat
                    im_dmbtr = <fs_bsis>-dmbtr.
              ELSE.
                CALL METHOD me->other_days_routines
                  EXPORTING
                    im_date  = p_budat
                    im_bukrs = <fs_bsis>-bukrs
                    im_hkont = <fs_bsis>-hkont
                    im_budat = <fs_bsis>-budat
                    im_dmbtr = <fs_bsis>-dmbtr.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ENDIF.
    */Routine for outstanding released check/s
    */this routine will get all records from custom table zcheck_monitor
    */where status is released to vendor
        CALL METHOD me->outs_check_released.
        IF NOT gt_outs_rel_checks[] IS INITIAL.
          LOOP AT gt_outs_rel_checks ASSIGNING <fs_outs_rel_checks>.
            CLEAR wa_zcheck_monitor_collect.
            READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
                                                 WITH TABLE KEY zzbukr = <fs_outs_rel_checks>-bukrs
                                                                zubhkt = <fs_outs_rel_checks>-hkont.
            IF sy-subrc = 0.
              <fs_outs_rel_checks>-dmbtr = <fs_outs_rel_checks>-dmbtr - ABS( wa_zcheck_monitor_collect-zrwbtr ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      Move records to output table
        CALL METHOD me->process_data.
      ENDMETHOD.                    "sum_gl_accounts
      METHOD monday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 3.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 4.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 4.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "monday_routines
      METHOD sunday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 2.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 3.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 3.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "sunday_routines
      METHOD tuesday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 1.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 4.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 4.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "tuesday_routines
      METHOD other_days_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 1.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 2.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 3.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "other_days_routines
      METHOD difference_in_days.
        CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
          EXPORTING
            i_date_from          = im_budat
          I_KEY_DAY_FROM       =
            i_date_to            = im_date
          I_KEY_DAY_TO         =
          I_FLG_SEPARATE       = ' '
          IMPORTING
            e_days               = ex_diff.
          E_MONTHS             =
          E_YEARS              =
      ENDMETHOD.                    "difference_in_days
      METHOD outs_check_released.
        FIELD-SYMBOLS: <fs_zcheck_monitor>         LIKE LINE OF gt_zcheck_monitor.
        SELECT zzbukr zhbkid zhktid
               zubhkt zrwbtr zrlsvd
               zrlsdt
          FROM zcheck_monitor
          INTO TABLE gt_zcheck_monitor
         WHERE zrlsvd <> space.
        IF NOT gt_zcheck_monitor[] IS INITIAL.
          LOOP AT gt_zcheck_monitor ASSIGNING <fs_zcheck_monitor>.
            MOVE-CORRESPONDING <fs_zcheck_monitor> TO wa_zcheck_monitor_collect.
            COLLECT wa_zcheck_monitor_collect INTO gt_zcheck_monitor_collect.
            CLEAR wa_zcheck_monitor_collect.
          ENDLOOP.
        ENDIF.
      ENDMETHOD.                    "outs_check_released
      METHOD process_data.
        FIELD-SYMBOLS: <fs_t012k>           LIKE LINE OF gt_t012k,
                       <fs_company>         LIKE LINE OF gt_company,
                       <fs_cash_in_bank>    LIKE LINE OF gt_cash_in_bank,
                       <fs_outs_trade_coll> LIKE LINE OF gt_outs_trade_coll,
                       <fs_misc_collection> LIKE LINE OF gt_misc_collection,
                       <fs_outs_rel_checks> LIKE LINE OF gt_outs_rel_checks.
        LOOP AT gt_t012k ASSIGNING <fs_t012k>.
          READ TABLE gt_company ASSIGNING <fs_company>
                                WITH TABLE KEY bukrs = <fs_t012k>-bukrs.
          IF sy-subrc = 0.
            wa_header-bukrs = <fs_company>-bukrs.
            wa_header-butxt = <fs_company>-butxt.
            wa_header-hbkid = <fs_t012k>-hbkid.
            APPEND wa_header TO gt_header.
            CLEAR wa_header.
          ENDIF.
          wa_output-bukrs = <fs_t012k>-bukrs.
          wa_output-hktid = <fs_t012k>-hktid.
        Move cash in bank
          READ TABLE gt_cash_in_bank ASSIGNING <fs_cash_in_bank>
                                     WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                    hkont = <fs_t012k>-hkont.
          IF sy-subrc = 0.
            wa_output-cash_in_bank = <fs_cash_in_bank>-dmbtr.
            ADD wa_output-cash_in_bank TO wa_output-tot_cash_bal.
          ENDIF.
          CLEAR lv_hkont.
          lv_hkont = <fs_t012k>-hkont.
          ADD 1 TO lv_hkont.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = lv_hkont
            IMPORTING
              output = lv_hkont.
        Move outstanding trade collection(Deposit in transit)
          READ TABLE gt_outs_trade_coll ASSIGNING <fs_outs_trade_coll>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = lv_hkont.
          IF sy-subrc = 0.
            wa_output-one_day            = <fs_outs_trade_coll>-one_day.
            ADD wa_output-one_day TO wa_output-tot_cash_bal.
            wa_output-two_days           = <fs_outs_trade_coll>-two_days.
            ADD wa_output-two_days TO wa_output-tot_cash_bal.
            wa_output-more_than_two_days = <fs_outs_trade_coll>-more_than_two_days.
            ADD wa_output-more_than_two_days TO wa_output-tot_cash_bal.
          ENDIF.
        Move miscellaneous collection
          READ TABLE gt_misc_collection ASSIGNING <fs_misc_collection>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = lv_hkont.
          IF sy-subrc = 0.
            wa_output-misc_collection = <fs_misc_collection>-dmbtr.
            ADD wa_output-misc_collection TO wa_output-tot_cash_bal.
          ENDIF.
        Move outstanding checks released
          CLEAR lv_hkont.
          lv_hkont = <fs_t012k>-hkont.
          ADD 3 TO lv_hkont.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = lv_hkont
            IMPORTING
              output = lv_hkont.
          READ TABLE gt_outs_rel_checks ASSIGNING <fs_outs_rel_checks>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = <fs_t012k>-hkont.
          IF sy-subrc = 0.
            wa_output-outs_rel_checks = <fs_outs_rel_checks>-dmbtr.
          ENDIF.
        Move outstanding unreleased checks
          CLEAR wa_zcheck_monitor_collect.
          READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
                                               WITH TABLE KEY zzbukr = <fs_t012k>-bukrs
                                                              zubhkt = lv_hkont
                                                                       TRANSPORTING zrwbtr.
          IF sy-subrc = 0.
            wa_output-outs_unrel_checks = wa_zcheck_monitor_collect-zrwbtr.
          ENDIF.
        Move importation docs. due
          CLEAR wa_importation_docs_due.
          READ TABLE gt_importation_docs_due INTO wa_importation_docs_due
                                             WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                            hkont = <fs_t012k>-hkont
                                                                    TRANSPORTING dmbtr.
          IF sy-subrc = 0.
            wa_output-imp_docs_due = wa_importation_docs_due-dmbtr.
          ENDIF.
          APPEND wa_output TO gt_output.
          CLEAR wa_output.
        ENDLOOP.
        IF NOT gt_output[] IS INITIAL.
          CREATE OBJECT o_lcl_alv_routines.
          CALL METHOD o_lcl_alv_routines->display_data
            EXPORTING
              im_header = gt_header
              im_output = gt_output.
        ENDIF.
      ENDMETHOD.                    "process_data
    ENDCLASS.                    "lcl_get_data IMPLEMENTATION
          CLASS alv_routines IMPLEMENTATION
    CLASS lcl_alv_routines IMPLEMENTATION.
      METHOD alv_init.
        gv_repid = sy-repid.
        gs_layout-subtotals_text   = text-a01.
        gs_layout-key_hotspot      = 'X'.
        gs_layout-expand_fieldname = text-a02.
        gs_keyinfo-header01 = text-a03.
        gs_keyinfo-item01   = text-a03.
      ENDMETHOD.                    "alv_init
      METHOD build_fieldcat.
        DEFINE m_fieldcat.
          add 1 to wa_fieldcat-col_pos.
          wa_fieldcat-fieldname   = &1.
          wa_fieldcat-tabname     = &2.
          wa_fieldcat-rollname    = &3.
          wa_fieldcat-outputlen   = &4.
          wa_fieldcat-fix_column  = &5.
          wa_fieldcat-just        = &6.
          wa_fieldcat-do_sum      = &7.
          wa_fieldcat-emphasize   = &8.
          wa_fieldcat-hotspot     = &9.
          append wa_fieldcat to gt_fieldcat.
          clear wa_fieldcat.
        END-OF-DEFINITION.
        m_fieldcat 'BUKRS'              'gt_output'  text-a04  '' '' '' '' '' ''.
        m_fieldcat 'HKTID'              'gt_output'  text-a05  '' '' '' '' '' ''.
        m_fieldcat 'CASH_IN_BANK'       'gt_output'  text-a06  '' '' '' '' '' ''.
        m_fieldcat 'ONE_DAY'            'gt_output'  text-a07  '' '' '' '' '' ''.
        m_fieldcat 'TWO_DAYS'           'gt_output'  text-a08  '' '' '' '' '' ''.
        m_fieldcat 'MORE_THAN_TWO_DAYS' 'gt_output'  text-a09  '' '' '' '' '' ''.
        m_fieldcat 'MISC_COLLECTION'    'gt_output'  text-a10  '' '' '' '' '' ''.
        m_fieldcat 'OUTS_REL_CHECKS'    'gt_output'  text-a11  '' '' '' '' '' ''.
        m_fieldcat 'TREAS_TRANSACTIONS' 'gt_output'  text-a12  '' '' '' '' '' ''.
        m_fieldcat 'TOT_CASH_BAL'       'gt_output'  text-a13  '' '' '' '' '' ''.
        m_fieldcat 'TOTS_UNREL_CHECKS'  'gt_output'  text-a14  '' '' '' '' '' ''.
        m_fieldcat 'IMP_DOCS_DUE'       'gt_output'  text-a15  '' '' '' '' '' ''.
        m_fieldcat 'EST_CASH_BALANCE'   'gt_output'  text-a16  '' '' '' '' '' ''.
      ENDMETHOD.                    "build_fieldcat
      METHOD display_data.
        CALL METHOD me->alv_init.
        CALL METHOD me->build_fieldcat.
        gv_tabname_header = 'GT_HEADER'.
        gv_tabname_item   = 'GT_OUTPUT'.
        gt_header[] = im_header[].
        gt_output[] = im_output[].
        CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
          EXPORTING
          I_INTERFACE_CHECK              = ' '
            i_callback_program             = gv_repid
          I_CALLBACK_PF_STATUS_SET       = ' '
          I_CALLBACK_USER_COMMAND        = ' '
            is_layout                      = gs_layout
            it_fieldcat                    = gt_fieldcat
          IT_EXCLUDING                   =
          IT_SPECIAL_GROUPS              =
          IT_SORT                        =
          IT_FILTER                      =
          IS_SEL_HIDE                    =
          I_SCREEN_START_COLUMN          = 0
          I_SCREEN_START_LINE            = 0
          I_SCREEN_END_COLUMN            = 0
          I_SCREEN_END_LINE              = 0
          I_DEFAULT                      = 'X'
          I_SAVE                         = ' '
          IS_VARIANT                     =
          IT_EVENTS                      =
          IT_EVENT_EXIT                  =
            i_tabname_header               = gv_tabname_header
            i_tabname_item                 = gv_tabname_item
          I_STRUCTURE_NAME_HEADER        =
          I_STRUCTURE_NAME_ITEM          =
            is_keyinfo                     = gs_keyinfo
          IS_PRINT                       =
          IS_REPREP_ID                   =
          I_BYPASSING_BUFFER             =
          I_BUFFER_ACTIVE                =
          IR_SALV_HIERSEQ_ADAPTER        =
          IT_EXCEPT_QINFO                =
          I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
        IMPORTING
          E_EXIT_CAUSED_BY_CALLER        =
          ES_EXIT_CAUSED_BY_USER         =
          TABLES
            t_outtab_header                = gt_header
            t_outtab_item                  = gt_output
         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.
      ENDMETHOD.                    "display_data
    ENDCLASS.                    "alv_routines IMPLEMENTATION
    START-OF-SELECTION                           *
    START-OF-SELECTION.
      DATA: o_lcl_get_data TYPE REF TO lcl_get_data.
      CREATE OBJECT o_lcl_get_data.
      CALL METHOD o_lcl_get_data->get_bank_details.
    [/code]

    Thanks anyways...

  • Rounding decimals

    Dear all,
    Is there any way to restrict the Signed data decimal to 2 places? We have decimal formatted in the BPC Excel front end. But this doesnt stop data from Input schedule restricted to 2 decimal places in fact table.
    Some users wrongly enter data with more than two decimal places in input schedule. Although such data is rounded off in the excel front end view, it doesnt get rounded in the fact table. We have issue when we try to extract such data using custom SSIS. We have option to round off at the time of extraction using custom SSIS. But when we extract huge data records, there are some reconciliation differences due to rounding. So the BPC data and extracted data differs. Is it possible to round the data at face table level?

    Hi Lokesh,
    We also have the same requirement.  No decimal places required.  I had done the changes to include SIGNED_DATA_FORMAT to 13.0, and have rebuilt the indexes on the Consolidaiton Cube. However it still doesn't work as expected.
    When I run currency conversion, the coverted values still shows decimal places.
    Are we missing any step here?
    We are on BPC 10NW SP05.
    Please suggest.
    Regards,
    Rashmi

  • Rounding down using the floor function

    I need some help rounding down to the nearest 5 using the floor function.
    My code appears to be correct but I'm not getting the wrong result.
    create or replace
    TRIGGER "SALE_CALC" BEFORE
    INSERT OR
    UPDATE ON Prs FOR EACH Row
    BEGIN
    :New.Prsvf9c := (floor((:New.Prsprsc - :new.prsvf1c)/5)*5);
    END;
    *:New.Prsprsc = 100.00 and :new.prsvf1c = 46.00*
    After the trigger executes I get a result of *54.00*, which is the result before the rounding should take place. The result should be *50.00!*
    What am I doing wrong?

    The code you posted appears to produce the results you expect if the data is what you say it is
    SQL> create table prs(
      2    Prsvf9c number,
      3    Prsprsc number,
      4    prsvf1c number
      5  );
    Table created.
    SQL> create or replace
      2  TRIGGER "SALE_CALC" BEFORE
      3  INSERT OR
      4  UPDATE ON Prs FOR EACH Row
      5  BEGIN
      6
      7  :New.Prsvf9c := (floor((:New.Prsprsc - :new.prsvf1c)/5)*5);
      8
      9  END;
    10  /
    Trigger created.
    SQL> insert into prs( Prsprsc , prsvf1c )
      2    values( 100, 46 );
    1 row created.
    SQL> select * from prs;
       PRSVF9C    PRSPRSC    PRSVF1C
            50        100         46If you're seeing something different, it would be very helpful if you did something like I did here and post a reproducible test case.
    Incidentally, I'm not sure why you would have columns named prsvf1c and Prsvf9c but if that implies that you've denormalized your table to store 9 values rather than creating a child table with up to 9 rows, that's unlikely to be a reasonable solution.
    Justin

  • Round values using data transfer workbench

    Hi,
    I'm using data transfer workbench to migrate some data, and some values are being rounded wich generates errors in the system.
    Can sombedoy please help me with this  issue? i'm using sap business one 2005 patch 18.
    Thanks a lot

    Angie did you created the template using EXCEL?
    When you edit templates with MS EXCEL you must make sure that the cell properties are properly configure, because if the cell is configure as a number with no decimal it will round the number, the same goes when the cell is a string, if a cell has a comma it will include double quotes when it saves the excel file.
    Regards,
    WB

  • Decimals used on FX rate

    Hi,
    I have a consolidation system which does the FX translation. I enter the rates against the EUR and the system then triangulates the rate when I run a conversion to USD.
    For this triangulation BPC works with the maximum number of decimals allowed by the database.
    My question is, is there a way to restrict BPC in the number of decimals it uses for this calculation of the exchange rate?
    Thanks,
    Arnold

    Hello Arnold -
    The best practice for currency conversions that require high precision (many decimal places) to achieve acceptable accuracy is to use the MD property in the INPUTCURRENCY dimension.  For example, you can enter the rate for JPY as 120 (assuming conversion to USD) instead of 0.008333 and then adjust the MD property to D to use the rate as a divider instead of a multiplier.  This will allow the system to calculate the converted values using the full available precision provided by the system.
    Regards,
    Sheldon

  • CATS rounding difference using clock times

    Hello!
    We are facing rounding differences during CATS recording with clock times. E.g. we record multiple entries with 5 minutes in transaction CAT2:
    Clock Time -> CATS-hours
    9:00 - 9:05 -> 0,08
    9:05 - 9:10 -> 0,08
    9:10 - 9:15 -> 0,08
    9:15 - 9:20 -> 0,08
    Sum of Minutes entered = 20
    Sum of CATS-hours displayed = 0,32 which equals to 19 Minutes
    As the number of entries increases the rounding difference get bigger.
    Our company requires to-the-minutes time recording and by the way the employees get confused by the sum displayed.
    Do you have any ideas to solve this issue?
    Thanks in advance and best regards
      Reinhard
    Edited by: Reinhard Paizoni on Dec 2, 2010 10:10 AM

    Hello,
    You should use enhancement (user-exit) CATP0001 to validate this. You should write your coding for that as well.
    Link below is not that of good use but I am putting for your reference.
    http://help.sap.com/erp2005_ehp_04/helpdata/EN/64/400463470211d189720000e8322d00/frameset.htm
    REgards,
    Bentow.

Maybe you are looking for