How to calculate the subtotals in alv for curr field(bsik-wrbtr)

I want to calculate subtotal for netamt for every new lifnr(vendor )
this is my program
REPORT  Z23PRAC1.
*& Report  ZRFI_AP_AGING_REPORT
TABLES : lfa1,lfb1.
CONSTANTS : gc_linedat(1) TYPE c VALUE 'X',
            gc_duedate(1) TYPE c VALUE 'X',
            gc_koart(1) TYPE c VALUE 'K',
            gc_tname(9) TYPE c VALUE 'GT_OUTPUT'.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_output,
       bukrs    TYPE bsik-bukrs,                  "Company Code
       lifnr    TYPE bsik-lifnr,                  "Vendor Account
       blart    TYPE bsik-blart,                  "Document Type
       name1    TYPE lfa1-name1,                  "Vendor Name
       ktokk    TYPE lfa1-ktokk,                  "Account Group
       belnr    TYPE bsik-belnr,                  "Invoice
       ebeln    TYPE bsik-ebeln,                  "Purchasing Order
       bldat    TYPE bsik-bldat,                  "Document Date
       netdt    TYPE bsega-netdt,                 "Due Date
       wrbtr1   TYPE bsik-wrbtr,                            "Aged 1-30
       wrbtr2   TYPE bsik-wrbtr,                            "Aged 31-60
       wrbtr3   TYPE bsik-wrbtr,                            "Aged 61-90
       wrbtr4   TYPE bsik-wrbtr,                  "Aged Over 90
       grossamt TYPE bsik-wrbtr,                  "Gross Amount Due
       psskt    TYPE regup-psskt,                 "Discount
      netamt(13)   TYPE P decimals 2,                  "Net Amount Due
       NETAMT   TYPE BSIK-WRBTR,
       END OF ty_output.
TYPES: BEGIN OF ty_vendor1,
       lifnr   TYPE lfa1-lifnr,
       name1   TYPE lfa1-name1,
       ktokk   TYPE lfa1-ktokk,
END OF ty_vendor1.
TYPES :BEGIN OF ty_vendor,
      bukrs   TYPE bsik-bukrs,                   "COMPANY CODE
      lifnr   TYPE bsik-lifnr,                   "CUSTOMER ACCOUNT
END OF ty_vendor.
TYPES :BEGIN OF ty_ekko,
      bukrs   TYPE ekko-bukrs,                   "COMPANY CODE
      lifnr   TYPE ekko-lifnr,                   "CUSTOMER ACCOUNT
      ebeln    TYPE ekko-ebeln,
END OF ty_ekko.
DATA: gt_output   TYPE TABLE OF ty_output,        "OUTPUT TABLE
      gt_lineitem TYPE TABLE OF bapi3008_2,       "LINE ITEMS TABLE
     gt_custdet  TYPE TABLE OF ty_custdet,       "CUSTOMER ACCOUNT VALIDATION
      gt_fieldcat TYPE slis_t_fieldcat_alv,       "FIELD CATALOG
      gt_events   TYPE slis_t_event,              "EVENTS CATALOG
      gt_sort     TYPE slis_t_sortinfo_alv,       "SORT CATALOG
      gt_text_top_of_page TYPE slis_t_listheader, "TOP OF THE PAGE
      gt_vendor1 TYPE TABLE OF ty_vendor1,
      gt_vendor TYPE TABLE OF ty_vendor,
      gt_ekko   TYPE TABLE OF ty_ekko.
DATA: st_output   TYPE ty_output,                 "OUTPUT WORK AREA
      st_lineitem TYPE bapi3008_2,                "LINE ITEMS WORK AREA
     st_custdet  TYPE ty_custdet,                "CUSTOMER ACCOUNT VALIDATION
      st_faede    TYPE faede,                     "DUE DATE CALCULATION
      st_fieldcat LIKE LINE OF gt_fieldcat,
      st_events   LIKE LINE OF gt_events,
      st_sort     LIKE LINE OF gt_sort,
      st_text_top_of_page LIKE LINE OF gt_text_top_of_page,
      st_vendor1 TYPE ty_vendor1,
      st_vendor TYPE ty_vendor,
      st_ekko   TYPE ty_ekko.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr,
                 s_bukrs FOR lfb1-bukrs,
                 s_ktokk FOR lfa1-ktokk.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS : p_astid TYPE rfpdo-allgstid DEFAULT sy-datum.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_summed AS CHECKBOX,
            p_linedt AS CHECKBOX DEFAULT gc_linedat.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
PARAMETERS: p_docdat AS CHECKBOX,
            p_duedat AS CHECKBOX DEFAULT gc_duedate.
SELECTION-SCREEN END OF BLOCK b4.
START-OF-SELECTION.
  SELECT lifnr name1 ktokk FROM lfa1
                                INTO TABLE gt_vendor1
                                WHERE lifnr IN s_lifnr.
  SELECT bukrs
           lifnr
           ebeln
           FROM ekko
           INTO TABLE gt_ekko
           WHERE bukrs IN s_bukrs
           AND lifnr IN s_lifnr.
IF s_bukrs IS NOT INITIAL AND s_lifnr IS NOT INITIAL.
  SELECT bukrs
         lifnr
         FROM lfb1
         INTO TABLE gt_vendor
         WHERE bukrs IN s_bukrs
         AND lifnr IN s_lifnr.
*LOOP AT GT_OUTPUT INTO ST_OUTPUT.
*endif.
  LOOP AT gt_vendor INTO st_vendor.
    READ TABLE gt_vendor1 INTO st_vendor1 WITH KEY lifnr = st_vendor-lifnr.
    READ TABLE gt_ekko INTO st_ekko WITH KEY lifnr = st_vendor-lifnr
                                                 bukrs = st_vendor-bukrs.
    CALL FUNCTION 'BAPI_AP_ACC_GETOPENITEMS'
      EXPORTING
        companycode = st_vendor-bukrs
        vendor      = st_vendor-lifnr
        keydate     = p_astid
      TABLES
        lineitems   = gt_lineitem.
    LOOP AT gt_lineitem INTO st_lineitem.
      st_faede-shkzg = st_lineitem-db_cr_ind.
      st_faede-koart = gc_koart.
      st_faede-zfbdt = st_lineitem-bline_date.
      st_faede-zbd1t = st_lineitem-dsct_days1.
      st_faede-zbd2t = st_lineitem-dsct_days2.
      st_faede-zbd3t = st_lineitem-netterms.
      st_faede-rebzg = st_lineitem-inv_ref.
      st_faede-rebzt = st_lineitem-nxt_doctyp.
      st_faede-bldat = st_lineitem-doc_date.
      CALL FUNCTION 'DETERMINE_DUE_DATE'
        EXPORTING
          i_faede                    = st_faede
        IMPORTING
          e_faede                    = st_faede
        EXCEPTIONS
          account_type_not_supported = 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.
      st_output-bukrs = st_vendor-bukrs.
      st_output-lifnr = st_vendor-lifnr.
      st_output-name1 = st_vendor1-name1.
      st_output-ktokk = st_vendor1-ktokk.
      st_output-blart = st_lineitem-doc_type.
      st_output-belnr = st_lineitem-doc_no.
      st_output-ebeln = st_ekko-ebeln.
      st_output-bldat = st_faede-bldat.
      st_output-netdt = st_faede-netdt.
      DATA : lv_date TYPE i.
      IF p_docdat = 'X'.
        lv_date = p_astid - st_output-bldat.
        IF lv_date < 30 .
          st_output-wrbtr1 = st_lineitem-amt_doccur.
        ELSEIF lv_date < 60 .
          st_output-wrbtr2 = st_lineitem-amt_doccur.
        ELSEIF lv_date < 90 .
          st_output-wrbtr3 = st_lineitem-amt_doccur.
        ELSEIF lv_date > 90 .
          st_output-wrbtr4 = st_lineitem-amt_doccur.
        ENDIF.
      ELSE.
        lv_date = p_astid - st_output-bldat.
        IF lv_date < 30 .
          st_output-wrbtr1 = st_lineitem-amt_doccur.
        ELSEIF lv_date < 60 .
          st_output-wrbtr2 = st_lineitem-amt_doccur.
        ELSEIF lv_date < 90 .
          st_output-wrbtr3 = st_lineitem-amt_doccur.
        ELSEIF lv_date > 90 .
          st_output-wrbtr4 = st_lineitem-amt_doccur.
        ENDIF.
      ENDIF.
DATA :  A TYPE BSIK-WRBTR,
        C TYPE STRING.
      st_output-grossamt = st_output-wrbtr1 +
                           st_output-wrbtr2 +
                           st_output-wrbtr3 +
                           st_output-wrbtr4 .
      A = st_output-grossamt - ( st_output-grossamt * st_output-psskt ) / 100.
      MOVE A TO C.
      MOVE C TO st_output-netamt .
*st_output-netamt = st_output-grossamt - ( st_output-grossamt * st_output-psskt ) / 100.
      APPEND  st_output TO gt_output.
      CLEAR st_output.
    ENDLOOP.
  ENDLOOP.
SORT gt_output.
END-OF-SELECTION.
  PERFORM fill_field_catalog.
  PERFORM fill_event_catalog.
  PERFORM sort_catalog.
  PERFORM display_alv_list.
*&      Form  fill_field_catalog
      text
FORM fill_field_catalog .
*Definition
  DEFINE field_cat.
    st_fieldcat-tabname      = &1.
    st_fieldcat-fieldname    = &2.
    st_fieldcat-ref_tabname  = &3.
    st_fieldcat-seltext_m    = &4.
    st_fieldcat-do_sum       = &5.
      append st_fieldcat to gt_fieldcat.
    clear st_fieldcat.
  END-OF-DEFINITION.
  field_cat gc_tname 'BUKRS' 'BSIK' 'Company Code' ''.
  field_cat 'GT_OUTPUT' 'LIFNR' 'BSIK' 'Customer Account' ''.
  field_cat 'GT_OUTPUT' 'BLART' 'BSIK' 'Document Type' ''.
  field_cat 'GT_OUTPUT' 'NAME1' 'LFA1' 'Vendor Name' ''.
  field_cat 'GT_OUTPUT' 'KTOKK' 'LFA1' 'Account Group' ''.
field_cat gc_TNAME 'ALLGSTID' 'RFPDO' 'Key Date' ''.
  field_cat gc_tname 'BELNR' 'BSIK' 'Invoice' ''.
  field_cat gc_tname 'EBELN' 'EKKO' 'Purchasing Order' ''.
  field_cat gc_tname 'BLDAT' 'BSIK' 'Document Date' ''.
  field_cat gc_tname 'NETDT' 'BSEGA' 'Due Date' ''.
  field_cat gc_tname 'WRBTR1' 'BSIK' 'Aged 1-30' ''.
  field_cat gc_tname 'WRBTR2' 'BSIK' 'Aged 31-60' ''.
  field_cat gc_tname 'WRBTR3' 'BSIK' 'Aged 61-90' ''.
  field_cat gc_tname 'WRBTR4' 'BSIK' 'Aged Over 90' ''.
  field_cat gc_tname 'GROSSAMT' 'BSIK' 'Gross Amount' ''.
  field_cat gc_tname 'PSSKT' 'REGUP' 'Discount' ''.
  field_cat gc_tname 'NETAMT' 'BSIK' 'Net Amount' 'X' .
ENDFORM.                    " fill_field_catalog
*&      Form  fill_event_catalog
      EVENTS FILLING SUBROUTINE TO FIND THE TOP OF THE PAGE EVENT
FORM fill_event_catalog .
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      i_list_type     = 0
    IMPORTING
      et_events       = gt_events
    EXCEPTIONS
      list_type_wrong = 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.
  READ TABLE gt_events TRANSPORTING NO FIELDS WITH KEY name = 'TOP_OF_PAGE'.
  IF sy-subrc EQ 0.
    st_events-form = 'FILL_HEADER'.
    MODIFY gt_events FROM st_events INDEX sy-tabix TRANSPORTING form.
  ENDIF.
ENDFORM.                    " fill_event_catalog
*&      Form  FILL_HEADER
      FILL HEADER DATA
FORM fill_header .
st_text_top_of_page-typ = 'S'.
st_text_top_of_page-info = sy-mandt.
APPEND st_text_top_of_page TO gt_text_top_of_page.
st_text_top_of_page-info = sy-uname.
APPEND st_text_top_of_page TO gt_text_top_of_page.
WRITE sy-datum TO st_text_top_of_page-info.
APPEND st_text_top_of_page TO gt_text_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
   EXPORTING
     it_list_commentary = gt_text_top_of_page.
ENDFORM.                   "fill header
*&      Form  sort_catalog
      text
-->  p1        text
<--  p2        text
FORM sort_catalog .
  st_sort-up = 'X'.
  st_sort-spos = 1.
  st_sort-subtot = 'X'.
  st_sort-fieldname = 'LIFNR'.
  APPEND st_sort TO Gt_sort.
  CLEAR st_sort.
  st_sort-up = 'X'.
  st_sort-spos = '2'.
  st_sort-subtot = ''.
  st_sort-fieldname = 'NETAMT'.
  APPEND st_sort TO gt_sort.
  CLEAR st_sort.
ENDFORM.                    " sort_catalog
*&      Form  display_alv_list
      CREATE THE OUTPUT IN THE ALV LIST FORMAT
FORM display_alv_list .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      it_fieldcat        = gt_fieldcat
      it_sort            = gt_sort
      i_default          = 'X'
      it_events          = gt_events
    TABLES
      t_outtab           = 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.
ENDFORM.                    " display_alv_list

Hi,
This is the sample report for ALV SUBTOTAL.
REPORT  YMS_ALVSUBTOTAL.
*REPORT z_alv_sub_totals .
TYPE-POOLS: slis.
DATA: BEGIN OF it_output OCCURS 0,
          var1(8) TYPE n,
          var2(10),
          var3 TYPE I,
      END OF it_output.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
       t_fieldcat TYPE slis_fieldcat_alv,
      it_sort TYPE slis_t_sortinfo_alv,
      t_sort TYPE slis_sortinfo_alv,
      v_repid LIKE sy-repid.
INITIALIZATION.
  v_repid = sy-repid.
START-OF-SELECTION.
  PERFORM get_data.
  PERFORM sort_fields.
  PERFORM fill_fieldcat.
  PERFORM list_display.
*&      Form  GET_DATA
      text
-->  p1        text
<--  p2        text
FORM get_data.
  it_output-var1 = 1000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
it_output-key = 'X'.
  APPEND it_output.
  CLEAR it_output.
  it_output-var1 = 1000.
  it_output-var2 = 'siddhu'.
  it_output-var3 = '20000'.
  APPEND it_output.
  CLEAR it_output.
  it_output-var1 = 1000.
  it_output-var2 = 'chinni'.
  it_output-var3 = '100000'.
  APPEND it_output.
  CLEAR it_output.
  it_output-var1 = 2000.
  it_output-var2 = 'chicchu'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.
  it_output-var1 = 2000.
  it_output-var2 = 'candy'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.
  it_output-var1 = 1000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.
  it_output-var1 = 4000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.
ENDFORM.                    " GET_DATA
*&      Form  fill_fieldcat
      text
-->  p1        text
<--  p2        text
FORM fill_fieldcat.
  PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',
                             'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',
                             'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.
ENDFORM.                    " fill_fieldcat
*&      Form  fill_fields
      text
     -->P_0146   text
     -->P_0147   text
     -->P_0148   text
     -->P_0149   text
FORM fill_fields USING    value(tabname) TYPE slis_tabname
                          value(fieldname) TYPE slis_fieldname
                          value(seltext_m) LIKE dd03p-scrtext_m
                          value(do_sum) TYPE c.
  t_fieldcat-tabname = tabname.
  t_fieldcat-fieldname = fieldname.
  t_fieldcat-seltext_m  = seltext_m.
  IF do_sum = 'X'.
    t_fieldcat-datatype = 'CURR'.
  ENDIF.
  t_fieldcat-do_sum = do_sum.
  APPEND t_fieldcat TO it_fieldcat.
  CLEAR t_fieldcat.
ENDFORM.                    " fill_fields
*&      Form  list_display
      text
-->  p1        text
<--  p2        text
FORM list_display.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
   EXPORTING
     i_callback_program             = v_repid
     it_fieldcat                    = it_fieldcat
     it_sort                        = it_sort[]
   TABLES
      t_outtab                       = it_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.
ENDFORM.                    " list_display
*&      Form  sort_fields
      text
-->  p1        text
<--  p2        text
FORM sort_fields.
  t_sort-fieldname = 'VAR1'.
  t_sort-tabname = 'IT_OUTPUT'.
  t_sort-spos = 1.
  t_sort-up = 'X'.
  t_sort-subtot = 'X'.
  APPEND t_sort TO it_sort.
  CLEAR t_sort.
  t_sort-fieldname = 'VAR3'.
  t_sort-tabname = 'IT_OUTPUT'.
  t_sort-spos = 2.
  t_sort-up = 'X'.
  APPEND t_sort TO it_sort.
  CLEAR t_sort.
ENDFORM.                    " sort_fields
Thanks,
Sankar M

Similar Messages

  • How to calculate the subtotals using reuse_alv_grid_display_lvc

    Hi folks,
    How to get the subtotals of shipped quantity monthly wise using reuse_alv_grid_display_lvc.
    Thanks in Advance
    Rao

    Hi,
    As per the standard SAP, it is not possible to display the subtotal in a different field. The solution is remove the subtotal field from the internal table.
    In the slis_t_sortinfo_alv table pass the kunnr field with subtot = 'X'.
    I hope this will solve your query.
    Reward all useful answers.
    Thank you.

  • How to calculate the total running time for process from sysssislog entries

    Hi All,
    I have the below query which gets me the log entries form the logs table when the process started/completed.
    Select row_number() over (order by starttime) row_num,Substring( Substring(message, CharIndex('''',message) +1 ,Len(message)) ,0, CharIndex('''',Substring(message, CharIndex('''',message) +1 ,Len(message)))) as Description,
    starttime,endtime,message
    from dbo.sysssislog
    where (message like 'start%' or message like 'finish%' ) and
    LEFT(Substring( Substring(message, CharIndex('''',message) +1 ,Len(message)) ,0, CharIndex('''',Substring(message, CharIndex('''',message) +1 ,Len(message)))),1) between 'A' and 'Z'
    order by starttime
    However,I have to build a report on the top of it showing how much time that attribute/dimension/heirarchy took to execute(Ex-How much time did YearlyReview dimension take to complete).I dont have much knowledge of T-SQL and unable to figure out how to calculate
    that on SQL or report level.
    Could someone please assist me in getting the exact query for that?
    Thanks a lot.

    I get the below output(sample 20 rows) on executing this query.Also,a start process does not necessarily follow up a finished message for the same dimension as it may have been stopped or it failed.So we need to leave it as NA in case it started but dint
    finish
    Row_Num Description starttime endtime Message
    1 PAC SC Super Type 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC SC Super Type' dimension.
    2 PAC SC Super Type 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC SC Super Type' dimension.
    3 Team Member Indicator 12/13/12 16:38 12/13/12 16:38 Started processing the 'Team Member Indicator' dimension.
    4 Team Member Indicator 12/13/12 16:38 12/13/12 16:38 Started processing the 'Team Member Indicator' dimension.
    5 PAC SC Super Type 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'PAC SC Super Type' attribute.
    6 PAC SC Super Type 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'PAC SC Super Type' attribute.
    7 Specialist Merger Indicator 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'Specialist Merger Indicator' attribute.
    8 Specialist Merger Indicator 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'Specialist Merger Indicator' attribute.
    9 YearlyReview 12/13/12 16:38 12/13/12 16:38 Started processing the 'YearlyReview' dimension.
    10 YearlyReview 12/13/12 16:38 12/13/12 16:38 Started processing the 'YearlyReview' dimension.
    11 PAC SC Repeat Caller 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC SC Repeat Caller' dimension.
    12 PAC SC Repeat Caller 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC SC Repeat Caller' dimension.
    13 Year 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'Year' attribute.
    14 Year 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'Year' attribute.
    15 Staffing Function 12/13/12 16:38 12/13/12 16:38 Started processing the 'Staffing Function' dimension.
    16 Staffing Function 12/13/12 16:38 12/13/12 16:38 Started processing the 'Staffing Function' dimension.
    17 PAC SC Repeat Caller 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'PAC SC Repeat Caller' attribute.
    18 PAC SC Repeat Caller 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'PAC SC Repeat Caller' attribute.
    19 PAC HV Cust 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC HV Cust' dimension.
    20 PAC HV Cust 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC HV Cust' dimension.

  • How to calculate the subtotals in smartform

    hi all
    can any body tell me how can i display teh subtotals in smartform, please tell me the steps how to do that and aslo is there any special events in smartforms that are helpfull in getting and displaying the subtotals in smartforms
    thanks in advance

    Hi,
    For doing subtotal calculation in SMARTFORMS, do like this.
    Create one "Program Lines" to your main window table row.
    Already you are maintaing "Internal table" for you table in main window.
    Before that, sort the particular internal table with key fields through which you want to find out the sub total, now within the program lines code, first identify how many quantity and currency fields are there.
    Declare respective temporary variables for each and every quantity and currency field.
    then write logic like this.
    at new matnr.
    v_menge = wa_out-menge + v_menge.
    v_netwr  = wa_out-netwr + v_netwr
    end at.
    Also dont forget to declare character variables for quantity and currency fields. We cannot directly display them in smartforms. we need to pass them to the respective quantity and currency fields.
    After end at statement write like this,
    write: / v_menge decimals 2 to v_mengetext,
              v_netwr   decimals 2 to v_netwrtext.
    after this dont forget to clear,
    clear: v_menge, v_netwr.
    no populate v_mengetext and v_netwrtext in your text elements.
    Regards,
    Santosh Kumar M.

  • How to calculate the next incoming PO for a given material/plant in an elegant way

    Hi experts,
    Given a material and a plant i want to find out when the next PO is arriving. Is there a function module to calculate it?
    This is the values i want to retrieve, but this method is not very optimized and can have performance issues:
    "Entry un EKPO with material (MATNR), plant (WERKS), and Delivery Completed Indicator (ELIKZ) = blank, select the PO
    numbers.
    For all the POs, sort in EKET for the field ‘Delivery Date’ (EINDT) to get the next delivery date being
    EINDT ≥ Todays day
    Take the next PO to be received. Do the calculation (MENGE – WEMNG) for the item
    The result of the calculation is the amount still open and that is supposed to be received. "

    Hi,
       You can use the FM: MD_STOCK_REQUIREMENTS_LIST_API. Execute the FM with plant and material number in selection. Now, check the structure: MDEZX which will give you all the requirements for the item. You can filter the items in the structure where MDEZX - DE = BE which will give you only the purchase orders. Also, the items will be sorted automatically based on the date.
        Please check the same and revert back.
    Regards,
    AKPT

  • How to increase the decimals in RPD for some field?

    Hello gurus,
    We have 1 filed in DW name as "EXCHANGE_RATE" when i query it DW it's showing me values with 4 decimal points.
    and same column when i m using in OBIEE frontend, it's giving me values with 2 decimals.
    So how to increase the decimals for that field in RPD?
    we have 10.1.3.4.1 version.
    Thanking You.

    Hello Svee,
    Thanks for ur help, But I found one different way that will make change only to that particular filed.
    Bcz if I will change the database properties that will change the configuration globally to all the fields.
    So what I did is, I went to column properties and change the Data Format to 4 decimals and saved it as System-wide default for that field.
    So, the change that i want will be their only for that filed...
    Though I really appreciate ur help.
    Thanking you.

  • How to calculate the disk failure level for a 3-way mirror pool?

    On another post in this forum, the following information regarding a 3-way mirroring storage pool is given:
    Pool requires a quorum of 50% plus drives to be present to survive.
    with 3 way mirror - we have a guarantee of surviving 2 disk failure.
    Maintaining the above requirements and providing the guarantee -
    mandates us to have minimum 5 disks in pool. As if we loose 2, we still
    have 3 in the pool (>50%) for pool to maintain it's quorum.
    Just to be sure, I would like Microsoft to confirm that the following calculation applies to any number of disks in a 3-way mirroring pool.
    If the number of disks in a 3-way mirroring pool is n, INT(n/2) disks can fail without data loss.
    Examples:
    With 5 disks, INT(5/2)=INT(2.5)=2 disks can fail.
    With 6 disks, INT(6/2)=INT(3)=3 disks can fail.
    With 9 disks, INT(9/2)=INT(4.5)=4 disks can fail.
    Am I right in this assumption?
    Thanks for your answer.

    Hi,
    >>Am I right in this assumption?
    Based on my understanding, it’s not this case.
    Mirror spaces are designed for increased performance and protect your files from drive failure by keeping more than one copy. Two-way mirror spaces make two copies of your
    files and can tolerate one drive failure, while three-way mirror spaces can tolerate two drive failures.
    Regarding this point, the following thread can be referred to for better understanding.
    Storage Spaces - Disk resiliency
    http://social.technet.microsoft.com/Forums/en-US/8f13ecf3-61c8-4505-90da-e8a01023c62d/storage-spaces-disk-resiliency?forum=winserverfiles
    In addition, regarding storage spaces, the following article can be referred to for more information.
    Storage Spaces Overview
    http://social.technet.microsoft.com/wiki/contents/articles/15198.storage-spaces-overview.aspx
    Best regards,
    Frank Shen

  • How to calculate the unit for RATE?

    Hey All,
    I am not sure if there is something standard for this or not.
    I am calculating the 'Rate' by using 'Value/Amount' and 'Quantity' as follows -
    Rate == Value /  Quantity
    I need to calculate the unit for the rate as below -
    Rate unit == Value unit (Currency) /  Quantity unit (Base_uom) 
    (for example -
    if value is 1000 USD and quantity is 10 TO then Rate should come out as 100 USD / TO)
    Could anyone please suggest how to calculate the unit in this case?
    Many Thanks!
    Tanu

    Hi,
    Go through the below link it may give some idea
    http://help.sap.com/saphelp_nw04/Helpdata/EN/19/1d7abc80ca4817a72009998cdeebe0/content.htm
    Regards,
    Marasa.

  • [svn:fx-trunk] 10545: Make DataGrid smarter about when and how to calculate the modulefactory for its renderers when using embedded fonts

    Revision: 10545
    Author:   [email protected]
    Date:     2009-09-23 13:33:21 -0700 (Wed, 23 Sep 2009)
    Log Message:
    Make DataGrid smarter about when and how to calculate the modulefactory for its renderers when using embedded fonts
    QE Notes: 2 Mustella tests fail:
    components/DataGrid/DataGrid_HaloSkin/Properties/datagrid_properties_columns_halo datagrid_properties_columns_increase0to1_halo
    components/DataGrid/DataGrid_SparkSkin/Properties/datagrid_properties_columns datagrid_properties_columns_increase0to1
    These fixes get us to measure the embedded fonts correctly when going from 0 columns to a set of columns so rowHeight will be different (and better) in those scenarios
    Doc Notes: None
    Bugs: SDK-15241
    Reviewer: Darrell
    API Change: No
    Is noteworthy for integration: No
    tests: checkintests mustella/browser/DataGrid
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-15241
    Modified Paths:
        flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as
        flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase .as
        flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColu mn.as

    Hi Matthias,
    Sorry, if this reply seems like a products plug (which it is), but this is really how we solve this software engineering challenge at JKI...
    At JKI, we create VI Packages (which are basically installers for LabVIEW instrument drivers and toolkits) of our reusable code (using the package building capabilities of VIPM Professional).  We keep a VI Package Configuration file (that includes a copy of the actual packages) in each of our project folders (and check it into source code control just as we do for all our project files).  We also use VIPM Enterprise to distribute new VI Packages over the network.
    Also, as others have mentioned, we use the JKI TortoiseSVN Tool to make it easy to use TortoiseSVN directly from LabVIEW.
    Please feel free to contact JKI if you have any specific questions about these products.
    Thanks,
    -Jim 

  • How to calculate the size each PSA request or all PSA for the Datasources?

    Hi All,
    Can anybody tell me how to calculate the size of each PSA Request or all PSA's requests for all datasources?
    Regards,
    Rajesh

    Hi ,
    PSA technical name can be found as,
    1)Right click on your Data Target,go to Display dataflow,click on the PSA ,here you can find the technical name.
    2)Goto RSRV tcode>PSA Table>Consistency between PSA Partitions and SAP Administration-->Give your Infosoure name,it gives u PSA technical name also,
    Thanks&Regards,
    Praveena.

  • In Report I have a 2D axis system. How do I properly calculate the grid line interval for exactly 10 dots per tick

    Having trouble getting the dots to line up correctly with the ticks of a 2D axis.  I would like to have exactly 10 dots per tick.  The programming is no problem.  I set the D2AxisGridInterv variable after opening the 2D axis object.  I can't seem to figure out how to calculate the number that results in exactly 10 dots per tick.  I also have tried manually iterating to get 10 dots and have not been succesful.  What is this number based from?  It says as a percentage of the diagonal of the worksheet.  I can get pretty close to 10 dots per tick, but it is always off just a bit.  Is there really a way to get scientific based dots on a 2D axis so that the data can be analyzed from a printed plot?
    Thanks-Ryan

    Hi Ryan,
    I'm not entirely sure what you mean by "dots", but I'm going to guess you meant grid lines set to dot display.  In that case you can align the grid lines to the axis sub-ticks, then set the sub-ticks to invisible.  The sub-ticks can be set to N of them per axis tick.  Attached you will find an example of 10 dotted vertical grid lines per X axis tick.
    Let me know if you meant something else,
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments
    Attachments:
    Ryan37.zip ‏30 KB

  • How to calculate the Daily Call Volume

    Hello,
    Can anyone please advise how to calculate the daily call volume in a contact center - the counts of the calls terminated in ICM ?
    Is there any webview report or a SQL query which provides the count ?
    Many thanks in advance for the help!
    Thanks & Regards,
    Naresh

    The ICM software generates a Termination_Call_Detail record for each call that arrives at the peripheral. From This report you can get the number of calls to ICM as well as the call details.
    To get the report run this sql query
    select * from dbo.t_Termination_Call_Detail where convert (varchar(10), DateTime, 101) = '12/03/2010'

  • How to calculate the quota base quantity in quota arrangement?

    Hi all,
    As we all know, when a new supplier is added in the quota arrangment, we take the help of quota base qunatity so that the new supplier does not get any unfair advantage over the existing suppliers. Would you please help me on how to calculate the quota base quantity or on what basis the quota base quantity is calculated?*
    Regards,
    Ranjan

    Dear,
    Quota arrangement divides the total requirements generated over a period of time among the sources of supplied by assigning a quota.
    Quota u2013 quota is equal to a number and its represents the proportionate of requirements. Total quota of all the vendors is equal to 100% of requirements.
    This quota arrangement is also specific to material and plant level.
    Quota rating = quota allocate quantity + quota base quantity / quota.
    Quota based quantity used only when a new vendor introduced.
    In the as on date situation, the minimum quota ratings will considered as preferred vendor.
    The 2 vendors has 2 same quota rating, the vendor who is having the highest quota will considered first.
    In the running quota, a new source of supply is included. (In situation of short supply) including a new source not means to reduce the quota for existing.
    Regards,
    Syed Hussain.

  • How to calculate the individual sums of multiple columns in a single query

    Hello,
    Using Oracle 11gR2 on windows 7 client. I have a question on calculating sum() on multiple columns on different columns and store the results in a view. Unfortunately I could not post the problem here as it keeps on giving error "Sorry, this content is not allowed", without telling where or what it is! So I had to post it in the stack-overflow forum, here is the link: http://stackoverflow.com/questions/16529721/how-to-calculate-the-individual-sums-of-multiple-columns-in-a-single-query-ora
    Will appreciate any help or suggestion.
    Thanks

    user13667036 wrote:
    Hello,
    Using Oracle 11gR2 on windows 7 client. I have a question on calculating sum() on multiple columns on different columns and store the results in a view. Unfortunately I could not post the problem here as it keeps on giving error "Sorry, this content is not allowed", without telling where or what it is! So I had to post it in the stack-overflow forum, here is the link: http://stackoverflow.com/questions/16529721/how-to-calculate-the-individual-sums-of-multiple-columns-in-a-single-query-ora
    Will appreciate any help or suggestion.
    ThanksLooks like you want a simple group by.
    select
              yr
         ,      mnth
         ,      region
         ,     sum(handled_package)
         ,     sum(expected_missing_package)
         ,     sum(actual_missing_package)
    from test
    group by
         yr, mnth, region
    order by      
         yr, mnth, region;I wouldn't recommend storing your data for year / month in 2 columns like that unless you have a really good reason. I would store it as a date column and add a check constraint to ensure that the date is always the first of the month, then format it out as you wish to the client.
    CREATE TABLE test
         year_month                              date,
        Region                     VARCHAR2(50),
        CITY                       VARCHAR2(50),             
        Handled_Package            NUMBER,       
        Expected_Missing_Package   NUMBER,   
        Actual_Missing_Package     NUMBER
    alter table test add constraint firs_of_month check (year_month = trunc(year_month, 'mm'));
    ME_XE?Insert into TEST (year_month, REGION, CITY, HANDLED_PACKAGE, EXPECTED_MISSING_PACKAGE, ACTUAL_MISSING_PACKAGE)
      2  Values (to_date('2012-nov-12', 'yyyy-mon-dd'), 'Western', 'San Fransisco', 200, 10, 5);
    Insert into TEST (year_month, REGION, CITY, HANDLED_PACKAGE, EXPECTED_MISSING_PACKAGE, ACTUAL_MISSING_PACKAGE)
    ERROR at line 1:
    ORA-02290: check constraint (TUBBY.FIRS_OF_MONTH) violated
    Elapsed: 00:00:00.03
    ME_XE?Insert into TEST (year_month, REGION, CITY, HANDLED_PACKAGE, EXPECTED_MISSING_PACKAGE, ACTUAL_MISSING_PACKAGE)
      2  Values (to_date('2012-nov-01', 'yyyy-mon-dd'), 'Western', 'San Fransisco', 200, 10, 5);
    1 row created.
    Elapsed: 00:00:00.01
    ME_XE?select
      2        to_char(year_month, 'fmYYYY')    as year
      3     ,  to_char(year_month, 'fmMonth')   as month
      4     ,  Region
      5     ,  CITY
      6     ,  Handled_Package
      7     ,  Expected_Missing_Package
      8     ,  Actual_Missing_Package
      9  from test;
    YEAR         MONTH                REGION                         CITY                    HANDLED_PACKAGE EXPECTED_MISSING_PACKAGE ACTUAL_MISSING_PACKAGE
    2012         November             Western                        San Fransisco                       200                       10                      5
    1 row selected.
    Elapsed: 00:00:00.01
    ME_XE?Then you have nice a nice and easy validation that ensures you data integrity.
    Cheers,

  • How to calculate the average inventory in ABAP

    Dear All,
    Please find the below formula and this formula how to calculate the Average inventory at value.Please let me know the abap base tables and the corresponding fields.
    Formula
    Inventory Turnover = Cost of Goods Sold (COGS) / Average Inventory at value.
    Thanks
    Regards,
    Sai

    Hi Arivazhagan,
    Thanks for your quick response .
    The field MBEWH from the table is fulfill the average inventory at value.
    For Eg :I want to calculate Inventory Turnover = Cost of Goods Sold (COGS)/
    Average Inventory at value.
    so shall i take Inventory Turnover = Cost of Goods Sold (COGS)/MBEWH
    The above formula will meet my requirement to find the average inventory Turnover.
    Thanks
    Regards,
    Sai

Maybe you are looking for

  • Gr Ir Assignment Updation with PO and Line Item

    In the GL for GR IR Account the sort key was not  maintained with PO number due to which the assigment field in the line item was getting updated with the posting date and not with the PO & LIne Item details. We have made the requiste changes and new

  • Macbook Problems: Hard Drive Failure or Bad Ram?

    I bought a used Black Macbook several months ago. Everything was fine until recently I ran into some problems. It wouldn't boot one day at all, so I wiped the drive clean and reinstalled Snow Leopard. Once again everything was fine for a while until

  • Issue related to ADDRESS ... ENDADDRESS in SAP Script

    Hi All, I have a issue using ADDRESS .... ENDADDRESS in SAP Script. ADDRESS PARAGRAPH AS   TITLE    &WA_LFA1-ANRED&   NAME     &WA_LFA1-NAME1&, &WA_LFA1-NAME2&   STREET   &WA_LFA1-STRAS& HOUSE &WA_ADRC2-STR_SUPPL3&   POBOX    &WA_LFA1-PFACH&  CODE &W

  • Create table - constraints

    Dear all, I have some tables and I need to create them but I cannot. Need help Create table address ( some column name CONSTRAINT IXADDRE0 PRIMARY KEY (ID), FOREIGN KEY (FK_ADDRESS_TYPE) REFERENCES ADDRESS_TYPE (CODE), FOREIGN KEY (FK_COUNTRY) REFERE

  • Af:selectBooleanCheckbox needs to have a linebreak

    Hello all, does anyone know how to linebreak a selectBooleanCheckbox ? i need to wrap "this is a quite long text that needs to be wrapped", otherwise it will ruin my layout i've played around with css and inlinestyles but no success greetings martin