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 37Hai,
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,
TusharUse 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 thisHi
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 -
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
ThankyouPlease 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,
SureshHi 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 2006Norman
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,
srinivasHi ,
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 -
Hi all,
Is there any Z function modules for OLE, which will download the data directly to Excel with 2 sheets.
Regards,
ShaliniHi 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 rajuHi,
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
SriniHi,
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,
GaneshHello 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?