Function module for weight conversion

Hi all,
Is there any standard function module available which converts weight of format 59,250 into 59 kg 250 g.

Hi Deep,
check following code
  DATA :  LV_VALUE  TYPE I.
  DATA :  LV_KGS    TYPE I.
  DATA :  LV_GRMS   TYPE I.
  DATA :  LV_WEGT   TYPE STRING.
  DATA :  LV_K      TYPE STRING.
  DATA :  LV_G      TYPE STRING.
  BREAK-POINT.
  LV_VALUE = '59250'.
  LV_KGS   = LV_VALUE / 1000.
  LV_GRMS  = LV_VALUE - ( LV_KGS * 1000 ).
  LV_K = LV_KGS.
  LV_G = LV_GRMS.
  CONCATENATE LV_K 'kg '  LV_G 'g' INTO LV_WEGT SEPARATED BY SPACE.
  WRITE : LV_WEGT.
  BREAK-POINT.

Similar Messages

  • Hi is there any function module for radix conversion

    Hi,
    I need to convert number of base 36 to decimal number. Is there any function module for that.
    i.e) z to 35
         10 to 36
         11 t0 37

    Hai,
    This program perfectly converts a number from one number system to another number system.
    REPORT  Z_RADIX_CONVERSION.
    PARAMETERS:
      P_S_RAD(2) TYPE N,                   " Source Radix
      P_D_RAD(2) TYPE N,                   " Destination Radix
      P_S_NUM(5) TYPE C.                   " Source Number
    *" Data declarations...................................................
    Work variables                                                      *
    DATA:
      W_LEN         TYPE I,
      W_FACT        TYPE I,
      W_D_NUM(5)    TYPE N,
      W_T_LEN       TYPE I,
      W_NUM         TYPE C,
      W_NUM1        TYPE I,
      W_REM         TYPE I,
      W_INDEX       TYPE I VALUE 20,
      W_T_NUM(30)   TYPE C,
      W_T_NUMBER(5) TYPE N.
    IF P_S_RAD GE 1  AND
       P_S_RAD LE 16 AND
       P_D_RAD GE 1  AND
       P_D_RAD LE 16.
      IF P_S_RAD EQ 01 AND P_S_NUM CO '0 ' OR
         P_S_RAD EQ 02 AND P_S_NUM CO '01 ' OR
         P_S_RAD EQ 03 AND P_S_NUM CO '012 ' OR
         P_S_RAD EQ 04 AND P_S_NUM CO '0123 ' OR
         P_S_RAD EQ 05 AND P_S_NUM CO '01234 ' OR
         P_S_RAD EQ 06 AND P_S_NUM CO '012345 ' OR
         P_S_RAD EQ 07 AND P_S_NUM CO '0123456 ' OR
         P_S_RAD EQ 08 AND P_S_NUM CO '01234567 ' OR
         P_S_RAD EQ 09 AND P_S_NUM CO '012345678 ' OR
         P_S_RAD EQ 10 AND P_S_NUM CO '0123456789 ' OR
         P_S_RAD EQ 11 AND P_S_NUM CO '0123456789A ' OR
         P_S_RAD EQ 12 AND P_S_NUM CO '0123456789AB ' OR
         P_S_RAD EQ 13 AND P_S_NUM CO '0123456789ABC ' OR
         P_S_RAD EQ 14 AND P_S_NUM CO '0123456789ABCD ' OR
         P_S_RAD EQ 15 AND P_S_NUM CO '0123456789ABCDE ' OR
         P_S_RAD EQ 16 AND P_S_NUM CO '00123456789ABCDEF ' .
        W_LEN = STRLEN( P_S_NUM ).
        W_T_LEN = W_LEN - 1.
        DO W_LEN TIMES.
          W_NUM = P_S_NUM+W_T_LEN(1).
          CASE W_NUM.
            WHEN 'A'.
              W_NUM1 = 10.
            WHEN 'B'.
              W_NUM1 = 11.
            WHEN 'C'.
              W_NUM1 = 12.
            WHEN 'D'.
              W_NUM1 = 13.
            WHEN 'E'.
              W_NUM1 = 14.
            WHEN 'F'.
              W_NUM1 = 15.
            WHEN OTHERS.
              W_NUM1 = W_NUM.
          ENDCASE.
          W_D_NUM = W_D_NUM + W_NUM1 * ( P_S_RAD ** W_FACT ).
          ADD 1 TO W_FACT.
          SUBTRACT 1 FROM W_T_LEN.
        ENDDO.
      ELSE.
        WRITE'Invalid Number'(003).
      ENDIF.
    ELSE.
      WRITE'Enter radix between 1 and 16 '(002).
    ENDIF.
    W_T_NUMBER = W_D_NUM.
    IF P_D_RAD = 1.
      DO W_D_NUM TIMES.
        WRITE'O'.
      ENDDO.
    ELSE.
      WHILE W_T_NUMBER NE 0.
        W_REM = W_T_NUMBER MOD P_D_RAD.
        CASE W_REM.
          WHEN  10.
            W_T_NUM+W_INDEX(1) = 'A'.
          WHEN  11.
            W_T_NUM+W_INDEX(1) = 'B'.
          WHEN  12.
            W_T_NUM+W_INDEX(1) = 'C'.
          WHEN  13.
            W_T_NUM+W_INDEX(1) = 'D'.
          WHEN  14.
            W_T_NUM+W_INDEX(1) = 'E'.
          WHEN  15.
            W_T_NUM+W_INDEX(1) = 'F'.
          WHEN OTHERS.
            W_T_NUM+W_INDEX(1) = W_REM.
        ENDCASE.                           " CASE W_REM.
        SUBTRACT 1 FROM W_INDEX.
        W_T_NUMBER = W_T_NUMBER DIV P_D_RAD.
      ENDWHILE.
    ENDIF.
    WRITE:
      /10 'The Equivallent number in Base'(001),
           P_D_RAD,
           'is',
           W_T_NUM.
    <b>Reward points if helpful .</b>
    regards,
    rama pammi

  • Any Function module for Date conversion

    Hi,
    In my output the date is coming like 80999898 but the actual date is 01.01.1900.
    Could you please tell me is there any Function module for that.
    Regards,
    Tushar

    Use the conv. exit CONVERSION_EXIT_INVDT_OUTPUT for this purpose.
    BR,
    Suhas

  • Function modules for unit conversion

    hai gurus.
    what is the function module to make one qty to the same unit as other qty.
    if one is in kg and other in pounds
    i want to make both in pounds.
    pls help me with this

    Hi
    chk UNIT_CONVERSION_SAMPLE
    also chk this
    CF_UT_UNIT_CONVERSION
    Some Insights-
    Unit conversions
    with NW2004s the HOW-TO GUIDE for qty conversion is obsolete.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/27/b65c42b4e05542e10000000a1550b0/content.htm
    As of SAP NetWeaver 2004s you can create quantity conversion types using transaction RSUOM.
    The business transaction rules of the conversion are established in the quantity conversion type. The conversion type is a combination of different parameters (conversion factors, source and target units of measure) that determine how the
    conversion is performed.
    In terms of functionality, quantity conversion is structured similarly to currency translation.
    Quantity conversion allows you to convert key figures with units that have different units of measure in the source system into a uniform unit of measure in the BI system when you update them into InfoCubes
    http://help.sap.com/saphelp_nw04s/helpdata/en/27/b38c4284a8c353e10000000a1550b0/content.htm
    It is entered in ODS table linked to info object (0material)
    What you need to do basically is-
    1 ) Goto your infoobject for eg- 0material
    2 ) In Info object Maintenance- Tab page- Bex Explorer
    3 ) Enter 0BASE_UOM in Base unit of measure
    4 ) Generate UOM ODS (System generates it with prefix UOM)
    It is made of 4 fields (1 more in case of compounding) with SID for them. This is the place where you enter numerator and
    denominator to calculate conversion factor
    5 ) Load the UOM ODS with conversion from 0MAT_UNIT_ATTR or flat file
    6 ) Define conversion type
    7 ) In the conversion type, then you can select 0Material in the dynamic determination of conversion factor
    8 ) Select source unit and target unit
    For more help refer SAP help file on NW2004s. It is comprehensive and even explain - How to do unit conversion in
    transformation rule?
    http://help.sap.com/saphelp_nw04s/helpdata/en/4f/707242df019c60e10000000a1550b0/content.htm
    Check this sample code,
      CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
        EXPORTING
    *     CLIENT                  = SY-MANDT
          DATE                    = pdate
          FOREIGN_AMOUNT          = p_amt1
          FOREIGN_CURRENCY        = p_curr1
          LOCAL_CURRENCY          = p_curr2
    *     RATE                    = 0
    *     TYPE_OF_RATE            = 'M'
    *     READ_TCURR              = 'X'
        IMPORTING
          EXCHANGE_RATE           = w_rate
          FOREIGN_FACTOR          = w_fact1
          LOCAL_AMOUNT            = w_amt
          LOCAL_FACTOR            = w_fact2
    *     EXCHANGE_RATEX          =
    *     FIXED_RATE              =
    *     DERIVED_RATE_TYPE       =
        EXCEPTIONS
          NO_RATE_FOUND           = 1
          OVERFLOW                = 2
          NO_FACTORS_FOUND        = 3
          NO_SPREAD_FOUND         = 4
          DERIVED_2_TIMES         = 5
          OTHERS                  = 6.
      IF SY-SUBRC <> 0.
        write: / 'Conversion to loc.curr. failed:',
                 p_curr1, '->', p_curr2, 'err.code=', sy-subrc.
      ELSE.
        write: / 'to Loc.curr:', p_amt1 currency p_curr1, p_curr1, '->',
               w_amt currency p_curr2, p_curr2,
               '(', w_rate, ')', w_fact1, w_fact2.
      ENDIF.
    http://www.geocities.com/victorav15/sapr3/examples/currconv.txt
    Check this
    CONVERSION_FACTOR_GET
    Measurement unit conversion: Get measurement unit conversion factor Not for Dimensionless Units of Measure
    UNIT_CONVERSION_SIMPLE Measurement unit conversion by table T006, with rounding
    UNIT_OF_MEASURE_SAP_TO_ISO 
    UNIT_OF_MEASURE_ISO_TO_SAP
    MATERIAL_UNIT_CONVERSION Material quantity conversion from Base Unit of Measure to Alternative Unit of Measure and vice versa. For Dimensionless Units of Measure (Each, Piece, Box etc.) conversion depends on the given Material (see table MARM). For other Units of Measure (Length, Weigth etc.) conversion can be calculated from the T006 table or via CONVERSION_FACTOR_GET.
    CONVERSION_EXIT_CUNIT_INPUT Conversion exit for commercial (3-char) measurement unit INPUT
    CONVERSION_EXIT_CUNIT_OUTPUT Conversion exit for commercial (3-char) measurement unit OUTPUT
    CONVERSION_EXIT_LUNIT_INPUT Conversion exit for technical (6-char) measurement unit INPUT
    CONVERSION_EXIT_LUNIT_OUTPUT Conversion exit for technical (6-char) measurement unit OUTPUT
    UNIT_OF_MEASUREMENT_HELP Input help for measurement units of a predefined dimension
    http://www.geocities.com/victorav15/sapr3/abapfun.html
    Reward all helpfull answers
    Regards
    Pavan

  • Function module for weight

    Is there a function module to retieve weight of a material by providing the material number and the UoM. Or the material number and the batch number
    Thankyou

    Please check the below FM's and just pass material number,you get material details
    LEINT_MARA_READ
    MARA_SINGLE_READ
    Thanks
    Seshu

  • Function Module for DATE Conversion

    Hi All,
    I need some help to know a function module to get the exact date in a year.
    If i give the no. of days and the year.. it has to give me the exact date.
    for eg: if no. of days are 90 and the year is 2006 the output should be 31st MARCH 2006. Like that if i enter any number (< 364 or 363) and the year it has to tell me the date of the count of no.of days.
    Thank You,
    Suresh

    Hi Suresh,
    You can use FM HR_SEN_CALE_DAYS_DATE.
    Here you can pass '01.01.2006' , operator as '+' and in
    IS_DURATION enter the number of days under 'CALDD'.
    For eg:
    Test for function group      HRSEN00CRULE_CALE_DAYS                              
    Function module              HR_SEN_CALE_DAYS_DATE                               
    Import parameters                                                                               
    ID_DATE                         01.01.2006  
      ID_OPERATOR                     +             
      IS_DURATION                         0.0000     0.0000       30.0000                                                                               
    Export parameters               Value                                                                               
    ED_DATE                         30.01.2006                                                                               
    Regards,
    Raj

  • Function Module for Date Conversion - 20060131 - January 31, 2006

    I can write some quick code and use the T015M table, but I figure there must be an existing function module.  I want to convert a system date to a character string.  Ideally, I would like it based on a country field.
    20060131 -> January 31, 2006
    20060131 -> 31 January 2006

    Norman
    Strange I've used edit mask LDATE, function CONVERSION_EXIT_LDATE_OUTPUT, and get the full month name.
    Anyway, here is a little program to see the outputs for different countries. It does need updating for edit mask MODAT, and checking the return code after select and function calls:
    REPORT ZZMATTG004 .
    DATA: D8(20),
          WA_MASK LIKE DD01D-CONVEXIT,
          MONTH_NAMES LIKE T247 OCCURS 12 WITH HEADER LINE.
    TABLES: T005.                          "Countries
    PARAMETERS: DATE LIKE SY-DATUM DEFAULT SY-DATLO.
    SELECT-OPTIONS S_LAND FOR T005-LAND1 NO INTERVALS.
    PARAMETERS: P_LANGU AS CHECKBOX DEFAULT 'X'.
    D8  =  DATE.
    DESCRIBE FIELD DATE EDIT MASK WA_MASK.
    WRITE: 'MASK IS :- ''', WA_MASK NO-GAP, '''' NO-GAP.
    SKIP.
    WRITE:
           / DATE DD/MM/YYYY, 22 'DD/MM/YYYY',
           / DATE MM/DD/YYYY, 22 'MM/DD/YYYY',
           / DATE DD/MM/YY  , 22 'DD/MM/YY',
           / DATE MM/DD/YY  , 22 'MM/DD/YY',
           / DATE DDMMYY    , 22 'DDMMYY',
           / DATE MMDDYY    , 22 'MMDDYY',
           / DATE YYMMDD    , 22 'YYMMDD'.
    SKIP.
    WRITE:
           / D8   USING EDIT MASK '==LDATE', 'LDATE',
           / D8   USING EDIT MASK '==SDATE', 'SDATE',
           / D8   USING EDIT MASK '==IDATE', 'IDATE',
           / D8   USING EDIT MASK '==D3DAT', 'D3DAT',
           / D8   USING EDIT MASK '==PDATE', 'PDATE',
           / D8   USING EDIT MASK '==INVD1', 'INVD1',
           / D8   USING EDIT MASK '==INVDT', 'INVDT'.
    LOOP AT S_LAND.
    * BREAK-POINT.
      SET COUNTRY S_LAND-LOW.
      SELECT SINGLE SPRAS INTO T005-SPRAS FROM T005
             WHERE  LAND1  =  S_LAND-LOW.
      IF  P_LANGU  =  'X'.
        SET LANGUAGE T005-SPRAS.
      ENDIF.
      REFRESH MONTH_NAMES.
      CALL FUNCTION 'MONTH_NAMES_GET'
           EXPORTING
                LANGUAGE              = T005-SPRAS
    *      IMPORTING
    *           RETURN_CODE           =
           TABLES
                MONTH_NAMES           = MONTH_NAMES
           EXCEPTIONS
                MONTH_NAMES_NOT_FOUND = 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 MONTH_NAMES INDEX DATE+4(2).
      READ TABLE MONTH_NAMES WITH KEY MNR  =  DATE+4(2).
      SKIP.
      WRITE: / 'COUNTRY SET TO', S_LAND-LOW COLOR 2,
             / 'Month name is', MONTH_NAMES-KTX, MONTH_NAMES-LTX,
               'Language (T005) is', T005-SPRAS, '(SYST)', SY-LANGU.
      WRITE:
             / DATE DD/MM/YYYY, 22 'DD/MM/YYYY',
             / DATE MM/DD/YYYY, 22 'MM/DD/YYYY',
             / DATE DD/MM/YY  , 22 'DD/MM/YY',
             / DATE MM/DD/YY  , 22 'MM/DD/YY',
             / DATE DDMMYY    , 22 'DDMMYY',
             / DATE MMDDYY    , 22 'MMDDYY',
             / DATE YYMMDD    , 22 'YYMMDD'.
      SKIP.
      WRITE:
             / D8   USING EDIT MASK '==LDATE', 'LDATE',
             / D8   USING EDIT MASK '==SDATE', 'SDATE',
             / D8   USING EDIT MASK '==IDATE', 'IDATE',
             / D8   USING EDIT MASK '==D3DAT', 'D3DAT',
             / D8   USING EDIT MASK '==PDATE', 'PDATE',
             / D8   USING EDIT MASK '==INVD1', 'INVD1',
             / D8   USING EDIT MASK '==INVDT', 'INVDT'.
    ENDLOOP.
    SET COUNTRY SPACE.
    * SET LANGUAGE T005-SPRAS.
      REFRESH MONTH_NAMES.
      CALL FUNCTION 'MONTH_NAMES_GET'
           EXPORTING
                LANGUAGE              = SY-LANGU
    *      IMPORTING
    *           RETURN_CODE           =
           TABLES
                MONTH_NAMES           = MONTH_NAMES
           EXCEPTIONS
                MONTH_NAMES_NOT_FOUND = 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 MONTH_NAMES INDEX DATE+4(2).
      READ TABLE MONTH_NAMES WITH KEY MNR  =  DATE+4(2).
      SKIP.
      WRITE: / 'COUNTRY SET TO', 'SPACE'    COLOR 2,
             / 'Month name is', MONTH_NAMES-KTX, MONTH_NAMES-LTX.
      WRITE:
             / DATE DD/MM/YYYY, 22 'DD/MM/YYYY',
             / DATE MM/DD/YYYY, 22 'MM/DD/YYYY',
             / DATE DD/MM/YY  , 22 'DD/MM/YY',
             / DATE MM/DD/YY  , 22 'MM/DD/YY',
             / DATE DDMMYY    , 22 'DDMMYY',
             / DATE MMDDYY    , 22 'MMDDYY',
             / DATE YYMMDD    , 22 'YYMMDD'.
      SKIP.
      WRITE:
             / D8   USING EDIT MASK '==LDATE', 'LDATE',
             / D8   USING EDIT MASK '==SDATE', 'SDATE',
             / D8   USING EDIT MASK '==IDATE', 'IDATE',
             / D8   USING EDIT MASK '==D3DAT', 'D3DAT',
             / D8   USING EDIT MASK '==PDATE', 'PDATE',
             / D8   USING EDIT MASK '==INVD1', 'INVD1',
             / D8   USING EDIT MASK '==INVDT', 'INVDT'.
    MattG.

  • Function module for converting weight unit to another unit.

    What is the function module for converting weight unit to another unit.
    I want to convert LB to KG.
    Tried with fm UNIT_CONVERSION_SIMPLE.
    INPUT                           100
    NO_TYPE_CHECK
    ROUND_SIGN                      X
    UNIT_IN                         LB
    UNIT_OUT                        KG
    But there is no output.
    Can some one help.

    The trick here is we need decalre input output with non-character data type like VBPLK-BRGEW.
    We can test using normal SE37.
    I tested and this program worked fine:
       data: UNIT_IN  LIKE T006-MSEHI,
           UNIT_OUT LIKE T006-MSEHI,
           output LIKE VBPLK-BRGEW,
           input LIKE VBPLK-BRGEW.
    input = 10.
      CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
           EXPORTING
                INPUT    = INPUT
                UNIT_IN  = 'LB' "UNIT_IN
                UNIT_OUT = 'KG' "UNIT_OUT
           IMPORTING
                OUTPUT   = OUTPUT.
      write: output.

  • Function Modules for Format Date, Month Name and Quarter value.

    Hi All,
    1. I am getting the date field from the Flatfile, so i need to format the date to YYYYMMDD. Is there any Function module for that in BW.
    2. Based on the above Formated Date i have to find out the Name of the Month like JANUARY, FEBUARY etc.
    3. Based on the same above Formated Date i need to find out the Quarter like 1, 2 etc.
    Could you please let me know if any function modules are there for the above questions in BW not in ABAP, why i mention is some Function modules are there in ABAP but not in BW.
    Thanks in advance.
    Regards,
    srinivas

    Hi ,
    1.If your input date format is MMDDYYYY then Use SDATE as conversion routine in trans strucutre to convert into YYYYMMDD.
    2.By passing year as input parameter for the following FM you would get all the months with text.Using READ statement in routine you can get month name
    MONTH_NAMES_GET
    3.For Quarters you can use the following FM:
    TSTR_PERIODS_QUARTERS
    hope it helps...
    regards,
    Raju

  • Function Module to retrive conversion exit function module names based on conversion routine

    Hi All,
    Can you people help me out in finding a function module, which takes conversion routine name as input and gives all the conversion exit function modules as output.
    Thanks and Regards,
    Shivaraj Naik.

    Curious, I looked for the way SAP do the job in SE11, and they also use the CONCATENATE option...
    From Include LSD11F01 Form OBJ_GOTO
    *       Objektspezifische Navigationsziele
    *      --> GOTOID   Kennung für Navigationsziele
    *      --> DDNAME   Dictonary-Name
    form obj_goto using  gotoid type gotoid
                         ddname.
      case gotoid.
        when 'CNVE'.   "Konvertierungsexit zu Domäne
          data: wb_request type ref to cl_wb_request.
          data: fb_name like tfdir-funcname
                            value 'CONVERSION_EXIT_'.
          concatenate fb_name ddname '*' into fb_name.
          condense fb_name.
    * Request für Infosystem erzeugen
          class cl_wb_infosystem definition load.
          call method cl_wb_infosystem=>create_request
            exporting
              p_object_type        = 'FF'
              p_object_name        = fb_name
              p_operation          = swbm_c_op_search
              p_suppress_selection = 'X'
              p_show_as_popup      = 'X'
            importing
              p_wb_request         = wb_request
            exceptions
              action_cancelled     = 1
              execute_in_batch     = 2
              error_occured        = 3.
    Regards,
    Raymond

  • Function Module for Dollar Amount

    Hi All,
    I have a requirement where a REFX contract once created has to go through a series of approvals. How do I get the dollar amount on the contract so that it can be routed to the proper level for approval? Is there a function module for this?
    Thanks a lot in advance.

    Hi Amlan,
    For the condition (amount) on contract you can get using..
    BAPI_RE_CN_GET_DETAIL or
    API_RE_CN_GET_DETAIL
    And if you doing currency conversion there are lot of FM.
    Thanks
    Veman

  • Z function modules for OLE

    Hi all,
    Is there any Z function modules for OLE, which will download the data directly to Excel with 2 sheets.
    Regards,
    Shalini

    Hi Shalini Reddy
    there is no FM  but code is there... u can see...
    *& Report  YOLE_FOR_EXCEL
    REPORT  yole_for_excel.
    *REPORT ZTEST_BYW.
    OLE specific include file
    INCLUDE ole2incl.
    INCLUDE excel__c.
    data definitions of OLE objects with type ole2_object
    PARAMETERS: p_filenm(80) LOWER CASE OBLIGATORY
    DEFAULT 'd:\temp\report_tsl.xls'.
    DATA: g_tmp_workbook TYPE ole2_object.
    DATA: g_tmp_worksheets TYPE ole2_object.
    DATA: g_tmp_worksheet1 TYPE ole2_object.
    DATA: g_tmp_worksheet2 TYPE ole2_object.
    DATA: g_pc_template LIKE rcgfiletr-ftappl
    VALUE 'd:\temp\mmr_rpt_tsl_tmp.xls'.
    DATA: g_excel TYPE ole2_object.
    DATA: g_workbooks TYPE ole2_object.
    DATA: g_workbook TYPE ole2_object.
    DATA: g_worksheets TYPE ole2_object.
    DATA: g_worksheet TYPE ole2_object.
    DATA: g_cell TYPE ole2_object.
    DATA: g_cell1 TYPE ole2_object.
    DATA: g_cell2 TYPE ole2_object.
    DATA: g_cellrange TYPE ole2_object.
    DATA: g_font TYPE ole2_object.
    DATA: g_interior TYPE ole2_object.
    DATA: g_borders TYPE ole2_object.
    DATA: g_first_ws VALUE 'Y'.
    DATA: g_row TYPE i.
    DATA: g_col TYPE i.
    definition of loop counter
    DATA: i TYPE i VALUE '5'.
    DATA: BEGIN OF t_sheet1 OCCURS 1,
    col1(10),
    col2(20),
    END OF t_sheet1.
    DATA: BEGIN OF t_sheet2 OCCURS 1,
    col1(10),
    col2(20),
    END OF t_sheet2.
    START-OF-SELECTION.
      PERFORM prepare_data.
      PERFORM download_to_excel.
    END-OF-SELECTION.
    call method of excel 'QUIT'.
    it is now possible to leave the EXCEL application
    remark: you have to go to the EXCEL application and answer the
    popup dialog screen
    *& Form PREPARE_DATA
    FORM prepare_data.
      t_sheet1-col1 = 'A1'.
      t_sheet1-col2 = 'A2'.
      APPEND t_sheet1.
      t_sheet1-col1 = 'B1'.
      t_sheet1-col2 = 'B2'.
      APPEND t_sheet1.
      t_sheet2-col1 = 'Y1'.
      t_sheet2-col2 = 'Y2'.
      APPEND t_sheet2.
      t_sheet2-col1 = 'Z1'.
      t_sheet2-col2 = 'Z2'.
      APPEND t_sheet2.
    ENDFORM. " PREPARE_DATA
    *& Form DOWNLOAD_TO_EXCEL
    FORM download_to_excel.
      PERFORM open_excel.
      PERFORM add_worksheet1.
      PERFORM add_worksheet2.
      PERFORM open_template_file.
      PERFORM close_excel.
      WRITE: / 'End of program'.
    ENDFORM. " DOWNLOAD_TO_EXCEL
    *& Form FILL_CELL
    *& FORM routine, which fills the specified cell in the EXCEL sheet
    *& with the given value
    FORM fill_cell USING i_row TYPE i
    i_col TYPE i
    i_value
    i_fontbold
    i_digit
    i_wraptext
    i_horizon_align
    i_vertical_align.
      DATA: l_str TYPE string.
      CALL METHOD OF g_excel 'CELLS' = g_cell
        EXPORTING #1 = i_row
        #2 = i_col.
      SET PROPERTY OF g_cell 'VALUE' = i_value.
      IF i_fontbold = 'X'.
        GET PROPERTY OF g_cell 'Font' = g_font.
        SET PROPERTY OF g_font 'Bold' = 1.
      ENDIF.
      IF NOT i_wraptext IS INITIAL.
        SET PROPERTY OF g_cell 'WrapText' = 1.
      ENDIF.
      IF NOT i_horizon_align IS INITIAL.
        IF i_horizon_align = 'L'.
          SET PROPERTY OF g_cell 'HorizontalAlignment' = xlleft.
        ELSEIF i_horizon_align = 'R'.
          SET PROPERTY OF g_cell 'HorizontalAlignment' = xlright.
        ELSEIF i_horizon_align = 'C'.
          SET PROPERTY OF g_cell 'HorizontalAlignment' = xlcenter.
        ENDIF.
      ENDIF.
      IF NOT i_vertical_align IS INITIAL.
        IF i_vertical_align = 'T'.
          SET PROPERTY OF g_cell 'VerticalAlignment' = xltop.
        ELSEIF i_vertical_align = 'B'.
          SET PROPERTY OF g_cell 'VerticalAlignment' = xlbottom.
        ELSEIF i_vertical_align = 'C'.
          SET PROPERTY OF g_cell 'VerticalAlignment' = xlcenter.
        ENDIF.
      ENDIF.
    To set number format for cell
      IF i_digit <> ''.
        IF i_value IS INITIAL AND i_digit <> '%'.
          SET PROPERTY OF g_cell 'VALUE' = ''.
        ELSE.
    Set number format for cell with number
          IF i_digit = '1'.
            SET PROPERTY OF g_cell 'NumberFormat' = '#,###.0 '.
          ELSEIF i_digit = '2'.
            SET PROPERTY OF g_cell 'NumberFormat' = '#,##0.00 '.
          ELSEIF i_digit = '%'.
            SET PROPERTY OF g_cell 'NumberFormat' = '#,##0.00% '.
          ELSE.
            SET PROPERTY OF g_cell 'NumberFormat' = '#,### '.
          ENDIF.
        ENDIF.
      ENDIF.
      ADD 1 TO i_col.
    ENDFORM.                    "FILL_CELL
    *& Form OPEN_EXCEL
    FORM open_excel.
      DATA: l_cnt TYPE i.
    create object excel of OLE class 'EXCEL.APPLICATION'
      CREATE OBJECT g_excel 'EXCEL.APPLICATION'.
      CALL METHOD OF g_excel 'WORKBOOKS' = g_workbooks.
      CALL METHOD OF g_workbooks 'ADD' = g_workbook.
      GET PROPERTY OF g_workbook 'Worksheets' = g_worksheets.
      GET PROPERTY OF g_excel 'ACTIVESHEET' = g_worksheet.
      SET PROPERTY OF g_excel 'DISPLAYALERTS' = 0.
      GET PROPERTY OF g_worksheets 'Count' = l_cnt.
      l_cnt = l_cnt - 1.
    Delete unwanted worksheets
      DO l_cnt TIMES.
        GET PROPERTY OF g_excel 'ACTIVESHEET' = g_worksheet.
        CALL METHOD OF g_worksheet 'DELETE'.
      ENDDO.
    ENDFORM. " OPEN_EXCEL
    *& Form CLOSE_EXCEL
    FORM close_excel.
      SET PROPERTY OF g_excel 'VISIBLE' = 1.
      CALL METHOD OF g_workbook 'SAVEAS'
        EXPORTING #1 = p_filenm.
    quit Excel and free all OLE objects
    call method of g_excel 'QUIT'.
      FREE OBJECT g_interior.
      FREE OBJECT g_borders.
      FREE OBJECT g_font.
      FREE OBJECT g_cell.
      FREE OBJECT g_cell1.
      FREE OBJECT g_cell2.
      FREE OBJECT g_cellrange.
      FREE OBJECT g_excel.
      FREE OBJECT g_workbooks.
      FREE OBJECT g_workbook.
      FREE OBJECT g_worksheets.
      FREE OBJECT g_worksheet.
    ENDFORM. " CLOSE_EXCEL
    *& Form ADD_WORKSHEET
    FORM add_worksheet USING i_name.
    Add new worksheet
      IF g_first_ws <> 'N'.
        g_first_ws = 'N'.
        GET PROPERTY OF g_excel 'ACTIVESHEET' = g_worksheet.
      ELSE.
        CALL METHOD OF g_worksheets 'Add' = g_worksheet.
      ENDIF.
      SET PROPERTY OF g_worksheet 'NAME' = i_name.
      g_row = 1.
      g_col = 1.
    ENDFORM. " ADD_WORKSHEET
    *& Form ADD_WORKSHEET1
    FORM add_worksheet1.
      PERFORM add_worksheet USING 'Test 1'.
    fill line in EXCEL sheet with headerlines of table columns
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'My First Worksheet' 'X' ''
      PERFORM merge_cell USING g_row 1 g_row 4.
      PERFORM set_border USING g_row 1 g_row 4 4 ''.
      ADD 1 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'ID'(001) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Name'(002) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Telephon'(003) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Rabatt'(004) 'X' '' '' '' ''.
    loop at customr table and print values into EXCEL sheet
      ADD 1 TO g_row.
      LOOP AT t_sheet1.
        g_col = 1.
        PERFORM fill_cell USING g_row g_col t_sheet1-col1 '' '' '' '' ''.
        PERFORM fill_cell USING g_row g_col t_sheet1-col2 '' '' '' '' ''.
        ADD 1 TO g_row.
      ENDLOOP.
      g_col = 4.
      PERFORM set_border USING 1 1 g_row g_col '' 4.
    ENDFORM. " ADD_WORKSHEET1
    *& Form ADD_WORKSHEET2
    FORM add_worksheet2.
      PERFORM add_worksheet USING 'Test 2'.
    fill line in EXCEL sheet with headerlines of table columns
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'My Second Worksheet' 'X' ''
      PERFORM merge_cell USING g_row 1 g_row 4.
      PERFORM set_border USING g_row 1 g_row 4 1 'X'.
      PERFORM set_color USING g_row 1 g_row 4 'LT'.
      ADD 1 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'ID'(001) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Name'(002) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Telephon'(003) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Rabatt'(004) 'X' '' '' '' ''.
    loop at customr table and print values into EXCEL sheet
      ADD 1 TO g_row.
      LOOP AT t_sheet2.
        g_col = 1.
        PERFORM fill_cell USING g_row g_col t_sheet2-col1 '' '' '' '' ''.
        PERFORM fill_cell USING g_row g_col t_sheet2-col2 '' '' '' '' ''.
        ADD 1 TO g_row.
      ENDLOOP.
      g_col = 4.
      PERFORM set_border USING 1 1 g_row g_col 2 'X'.
      ADD 4 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'This is a wrap text' 'X' ''
      'X' 'C' 'T'.
      PERFORM fill_cell USING g_row g_col 'Vertical - Bottom' 'X' ''
      '' 'L' 'T'.
      ADD 4 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'Amount 1' 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col '100.04' '' 'X' '' '' ''.
      ADD 1 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'Amount 2' 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col '200.01' '' 'X' '' '' ''.
      ADD 1 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'Total' 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col '=SUM(B13:B14)' 'X' 'X' '' '' ''.
      PERFORM fill_cell USING g_row g_col '0.00' 'X' 'X' '' '' ''.
      PERFORM copy_cell USING g_row 2 17 5 25 8.
    ENDFORm. " ADD_WORKSHEET2
    *& Form MERGE_CELL
    FORM merge_cell USING i_row1 i_col1
    i_row2 i_col2.
      CALL METHOD OF g_excel 'Cells' = g_cell1
        EXPORTING #1 = i_row1
        #2 = i_col1.
      CALL METHOD OF g_excel 'Cells' = g_cell2
        EXPORTING #1 = i_row2
        #2 = i_col2.
      CALL METHOD OF g_excel 'Range' = g_cellrange
        EXPORTING #1 = g_cell1
        #2 = g_cell2.
      CALL METHOD OF g_cellrange 'Merge'.
    ENDFORM. " MERGE_CELL
    *& Form SET_BORDER
    FORM set_border USING i_row1 i_col1
    i_row2 i_col2
    i_thickness
    i_allborders.
      CALL METHOD OF g_excel 'Cells' = g_cell1
        EXPORTING #1 = i_row1
        #2 = i_col1.
      CALL METHOD OF g_excel 'Cells' = g_cell2
        EXPORTING #1 = i_row2
        #2 = i_col2.
      CALL METHOD OF g_excel 'Range' = g_cellrange
        EXPORTING #1 = g_cell1
        #2 = g_cell2.
      IF i_allborders IS INITIAL.
        CALL METHOD OF g_cellrange 'BorderAround'
        EXPORTING #1 = 1 "Continuous line
        #2 = i_thickness. "Thickness: 1 - Normal, 4 - Thick
      ELSE.
        GET PROPERTY OF g_cellrange 'Borders' = g_borders.
        SET PROPERTY OF g_borders 'LineStyle' = '1'.
        SET PROPERTY OF g_borders 'Weight' = i_thickness.
      ENDIF.
    ENDFORM. " SET_BORDER
    *& Form SET_COLOR
    FORM set_color USING i_row1 i_col1
    i_row2 i_col2
    i_color.
      DATA: l_colorindex TYPE i.
      CASE i_color.
        WHEN 'BK'.
          l_colorindex = 1. "Black
        WHEN 'BR'.
          l_colorindex = 53. "Brown
        WHEN 'OG'.
          l_colorindex = 52. "Olive Green
        WHEN 'DG'.
          l_colorindex = 51. "Dark Green
        WHEN 'DT'.
          l_colorindex = 49. "Dark Teal
        WHEN 'DB'.
          l_colorindex = 11. "Dark Blue
        WHEN 'ID'.
          l_colorindex = 55. "Indigo
        WHEN 'G4'.
          l_colorindex = 56.                                    "Gray 80%
        WHEN 'DR'.
          l_colorindex = 9. "Dark Red
        WHEN 'OR'.
          l_colorindex = 46. "Orange
        WHEN 'DY'.
          l_colorindex = 12. "Dark Yellow
        WHEN 'GR'.
          l_colorindex = 10. "Green
        WHEN 'TL'.
          l_colorindex = 14. "Teal
        WHEN 'BL'.
          l_colorindex = 5. "Blue
        WHEN 'BY'.
          l_colorindex = 47. "Blue Gray
        WHEN 'G3'.
          l_colorindex = 16.                                    "Gray 50%
        WHEN 'RD'.
          l_colorindex = 3. "Red
        WHEN 'LO'.
          l_colorindex = 45. "Light Orange
        WHEN 'LI'.
          l_colorindex = 43. "Lime
        WHEN 'SG'.
          l_colorindex = 50. "Sea Green
        WHEN 'AQ'.
          l_colorindex = 42. "Aqua
        WHEN 'LB'.
          l_colorindex = 41. "Light Blue
        WHEN 'VL'.
          l_colorindex = 13. "Violet
        WHEN 'G2'.
          l_colorindex = 48.                                    "Gray 40%
        WHEN 'PK'.
          l_colorindex = 7. "Pink
        WHEN 'GD'.
          l_colorindex = 44. "Gold
        WHEN 'YL'.
          l_colorindex = 6. "Yellow
        WHEN 'BG'.
          l_colorindex = 4. "Bright Green
        WHEN 'TQ'.
          l_colorindex = 8. "Turquoise
        WHEN 'SB'.
          l_colorindex = 33. "Sky Blue
        WHEN 'PL'.
          l_colorindex = 54. "Plum
        WHEN 'G1'.
          l_colorindex = 15.                                    "Gray 25%
        WHEN 'RS'.
          l_colorindex = 38. "Rose
        WHEN 'TN'.
          l_colorindex = 40. "Tan
        WHEN 'LY'.
          l_colorindex = 36. "Light Yellow
        WHEN 'LG'.
          l_colorindex = 35. "Light Green
        WHEN 'LT'.
          l_colorindex = 34. "Light Turquoise
        WHEN 'PB'.
          l_colorindex = 37. "Pale Blue
        WHEN 'LV'.
          l_colorindex = 39. "Lavender
        WHEN 'WH'.
          l_colorindex = 2. "White
        WHEN OTHERS.
          l_colorindex = 2. "White
      ENDCASE.
      CALL METHOD OF g_excel 'Cells' = g_cell1
        EXPORTING #1 = i_row1
        #2 = i_col1.
      CALL METHOD OF g_excel 'Cells' = g_cell2
        EXPORTING #1 = i_row2
        #2 = i_col2.
      CALL METHOD OF g_excel 'Range' = g_cellrange
        EXPORTING #1 = g_cell1
        #2 = g_cell2.
      GET PROPERTY OF g_cellrange 'Interior' = g_interior.
      SET PROPERTY OF g_interior 'ColorIndex' = l_colorindex.
    ENDFORM. " SET_COLOR
    *& Form COPY_CELL
    FORM copy_cell USING i_crow i_ccol
    i_prow1 i_pcol1
    i_prow2 i_pcol2.
      CALL METHOD OF g_excel 'Cells' = g_cell
        EXPORTING #1 = i_crow
        #2 = i_ccol.
      CALL METHOD OF g_cell 'Copy'.
      CALL METHOD OF g_excel 'Cells' = g_cell1
        EXPORTING #1 = i_prow1
        #2 = i_pcol1.
      CALL METHOD OF g_excel 'Cells' = g_cell2
        EXPORTING #1 = i_prow2
        #2 = i_pcol2.
      CALL METHOD OF g_excel 'Range' = g_cellrange
        EXPORTING #1 = g_cell1
        #2 = g_cell2.
      CALL METHOD OF g_worksheet 'Paste'
        EXPORTING #1 = g_cellrange.
    ENDFORM. " COPY_CELL
    *& Form OPEN_TEMPLATE_FILE
    FORM open_template_file.
      CALL METHOD OF g_workbooks 'Open' = g_tmp_workbook
        EXPORTING #1 = g_pc_template
        #2 = 2
        #3 = 0
        #4 = 1
        #5 = 0
        #6 = 0
        #7 = 1.
      CALL FUNCTION 'FLUSH'
        EXCEPTIONS
          OTHERS = 0.
      GET PROPERTY OF g_tmp_workbook 'Worksheets' = g_tmp_worksheets.
      GET PROPERTY OF g_tmp_worksheets 'Item' = g_tmp_worksheet1
      exporting #1 = 1.
      GET PROPERTY OF g_tmp_worksheets 'Item' = g_tmp_worksheet2
      exporting #1 = 2.
      CALL METHOD OF g_tmp_worksheet1 'Copy'
        EXPORTING #1 = g_worksheet.
      CALL METHOD OF g_tmp_worksheet2 'Copy'
        EXPORTING #1 = g_worksheet.
    call method of g_tmp_workbook 'Close'.
      CALL FUNCTION 'FLUSH'
        EXCEPTIONS
          OTHERS = 0.
    ENDFORM. " OPEN_TEMPLATE_FILE

  • Functional module for automatic creation of pur requisition & pur order

    hello,
    what is the functional module for automatic creation of puchase requisition and automatic creation of purchase order which we will assign in action box in service order processing management.
    please let me know as early as possible
    regards,
    rajesh kumar raju

    Hi,
             Please check with following.
    IDOC_INPUT_ACC_PURCHASE_REQUI
    IDOC_INPUT_ACC_PURCHASE_ORDER
    /ISDFPS/OR_PURCHASE_ORDER_CR
    BS01_PURCHASE_DOCUMENT_CREATE
    CO_MP_CREATE_PURCHASE_ORDER
    Thanks & Regards
    Sadhu Kishore

  • Function module for calculating planned and actual cost of production order

    Hi ,
    Do we have any standard function module for calculating planned and actual cost for production order?
    i need to implement this in a Z-report.
    Thanks
    Srini

    Hi,
    try below function module
    CRMCO_GET_PLAN_ACTUAL_COSTS
    CO_IH_GET_PLANNED_COSTS_TOTAL
    Regards,
    Sankaran

  • How to create the INBOUND Function Module for INBOUND IDOCs

    Hi Friends,
    Can any Suggest me How to proceed to Create an INBOUND Function Module for Processing the INBOUND IDOCS
    which are recieved from XI Server ?
    I am working in SAP-ISU
    Here i will recieve the INBOUND IDOCs for the Meter Reading Orders.
    We have a Standard INBOUND FUNCTION MODULE
    IDOC_INPUT_ISU_MR_UPLOAD
    which Uploads the Meter Reading Results.
    I copied the Same function Module into ZIDOC_INPUT_
    and working on it.
    Can any one suggest me, whether i am going in correct way or not.
    In IDOC_INPUT_ISU_MR_UPLOAD Inbound fun module,
    BAPI_MTRREADDOC_UPLOAD is used to Update or Insert the Meter Reading Results,
    My requirment is to Insert and Update the Meter Reading Orders which are Inbounded from XI.
    Can I Use the Same BAPI
    BAPI_MTRREADDOC_UPLOAD
    to Update the below fields,
    EABL-SERNR
    EABL-ZWNUMMER
    EABLG-ABLESGR
    EABL-V_ZWSTAND
    EABL-N_ZWSTAND
    EABL-ABLHINW
    EABL-ZSKIPC
    EABL-ADAT
    EABL-ATIMTATS
    EABL-ADATTATS
    EABL-ATIM
    EABL-ZMESSAGE
    EABL-ABLESER(Meter reader number)
    Kindly Suggest me,
    Thanks in Advance,
    Ganesh

    Hello Ganesh
    I think you are going completely astray with you z-function module for IDoc processing.
    If you look at TABLES parameter METERREADINGRESULTS (type BAPIEABLU ) of BAPI_MTRREADDOC_UPLOAD you will find many of the requested fields already:
    EABL-SERNR => BAPIEABLU-SERIALNO
    EABL-ZWNUMMER =>REGISTER
    EABLG-ABLESGR
    EABL-V_ZWSTAND
    EABL-N_ZWSTAND
    EABL-ABLHINW
    EABL-ZSKIPC
    EABL-ADAT
    EABL-ATIMTATS => ACTUALMRTIME
    EABL-ADATTATS => ACTUALMRDATE
    EABL-ATIM
    EABL-ZMESSAGE
    EABL-ABLESER(Meter reader number)
    Field EABL-ZMESSAGE appears to be custom field (at least I cannot find it on ECC 6.0). If this field was added using include CI_EABL then you probably can get these values into the BAPI using the EXTENSIONIN parameter.
    Check routine CHECK_UPLOADRECORDS in the BAPI which allows two extension structures:
    - BAPI_TE_EABL
    - BAPI_TE_EOSB
    Not surprisingly BAPI_TE_EABL contains the include CI_EABL.
    Regards
      Uwe

Maybe you are looking for

  • Stuck in License This Software loop - Adobe has no clue CC2014

    For weeks now, I've been stuck in a loop with having to "License this software" or "Start trial", when trying to start any CC Application. I started since i downloaded CC2014 and is happening also when trying to start my old CC apps. Have been on mai

  • Printing a PDF file from Chrome and Firefox - Image missing

    I created about 20 marketing sheets for work using the same default settings and a template. They contain several inserted images of drawings and floor plans on each sheet (saved individually). When I try to print a couple of different files directly

  • How to use photo booth with skype???

    I can't seem to figure out how to use the photo booth effects with Skype. I would just use iChat but my husband is on a PC and I am on TDY for the military with my MacBook.

  • (RHEL3) iAS form service 10g  with jpi  1.4x error

    hello~ my form service os is RHEL3 , and i install oracle form and report service 10g on it ! when i use jinit 1.3.1.13 and ienative VM to test form , everything is fine , but use jpi 1.4x to test form will raise the java exception like below : FRM-9

  • Mountain Lion Download option disappeared from app store.

    I purchased mountain lion and downloaded it to a few of my macs and I was trying to install it again and it no longer shows as a download option in the app store. Do they only let you download it a limited number of times?