ABAP日期格式轉換
data: mydate type d value = '20070519'.data: newdate(10) type c.concatenate mydate+0(4) mydate+4(2) mydate+6(2) into newdate separated by '-'. newdata 的結果為:2007-05-19[@more@]
ALV報表不能正確顯示數據問題
用ALV寫了一個報表,但是沒有數據顯示,多次檢查沒有什么錯誤。最后發現原來是對應ALV的欄位的名稱出現問題,ALV顯示的欄位不能用小寫,一定要用大寫才行,如matnr要改為MATNR。暈......[@more@]
Table Control問題
寫Dialog程式時,如果同一Screen用到2個或以上Table Control,如果是直接將Table Control拖入Screen的,咝袝r會有一個Table Control不能顯示數據。解決方法是將PAI中兩個Table Control自動生成的代碼順序調過來就OK了.具體原因不明。[@more@]
AUTHORITY-CHECK OBJECT檢查用戶是否TCODE的使用權限
AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD <tcode>. IF SY-SUBRC <> 0. MESSAGE '沒有<tcode>的使用權限'. leave to screen 0 . ENDIF. 其中<tcode>是要檢查權限的TCODE.[@more@]
取得內表記錄數
1. data: count_lines type i. describe table <table> lines count_lines.2. data: count_lines type i, count_lines = LINES( <table> ).[@more@]
使用Report輸入一個圖標代碼
INCLUDE <list>. “必須要添加此引用WRITE icon_green_light AS ICON. “顯示一個綠燈圖標黃燈:icon_yellow_light 紅燈:icon_red_light[@more@]
ABAP算朮表達式匯總
數學表達式語句關鍵字語句加法n = x + y.ADD y TO X.減法n = x – y.SUBTRACT y FROM x.乘法n = x * y.MULTIPLY x BY y.除法n = x / y.DIVIDE x BY y.整除n = x DIV y.無取余n = x MOD y.無冪(乘方)n = x ** y無[@more@]
ABAP數學函數匯總
ABS返回輸入參數的絕對值SIGN返回輸入參數符號:正數返回1、0返回0、負數返回-1TRUNC返回輸入參數的整數部分FRAC返回輸入參數的小數部分CEIL返回不小於輸入參數的最小整數值FLOOR返回不大於輸入參數的最大整數值COS、SIN、TAN三角函數ACOS、ASIN、ATAN返三角函數COSH、SINH、TANH雙曲函數EXP底數為eLOG底數為e的自然對數LOG10底數為10的對數SQRT平方根[@more@]
幾個常用函數的使用
1. 在字符串前補0. (如果p_input的位數未滿,則會於前面補0,直至位數爲自定的長度. call function 'CONVERSION_EXIT_ALPHA_INPUT' exporting input = p_input IMPORTING OUTPUT = p_input . 2.去掉字符串前的0call function 'CONVERSION_EXIT_ALPHA_OUTPUT' exporting input = p_input IMPORTING OUTPUT = p_input .3.用戶確認對話框[@more@] call function 'POPUP_TO_CONFIRM' exporting* TITLEBAR = ' '* DIAGNOSE_OBJECT = ' ' text_quest
SAP逐行寫出Excel文件
report ztest_export_excel. include ole2incl. data: application type ole2_object, workbook type ole2_object, sheet type ole2_object, cells type ole2_object.constants: row_max type i value 256.data index type i.data: begin of itab occurs 0, first_name(10), last_name(10), address(100), end of itab.start-of-selection. ...[@more@]"Add data to itab itab-first_name = '123445'. itab-last_name = 'tesst'. itab-address = '中國'. append itab. clear itab. itab-first_name = 'AB
根据TCODE找用户出口的代码
EPORT z_find_userexit NO STANDARD PAGE HEADING.TABLES : tstc, "SAP Transaction Codes tadir, "Directory of Repository Objects modsapt, "SAP Enhancements - Short Texts modact, "Modifications trdir, "System table TRDIR tfdir, "Function Module enlfdir, "Additional Attributes for Function Modules tstct. "Transaction Code Texts*&-------------------------------------------------------
匯入物料主檔基本資料的BDC程式
Report zbdc_mm_w_test no standard page heading line-size 255.include .tables:mara,makt.data : bdcdata_itab like bdcdata occurs 0 with header line.data : messtab like bdcmsgcoll occurs 0 with header line.data: s_mode(1) type c.data : size type i.data: begin of wa_tab,matnr like mara-matnr, "物料碼mtart like mara-mtart, "物料類型maktx like makt-maktx, "物料描述maktxen like makt-maktx, "物料英文名meins like mara-meins, " 物料單位bismt like mara-bismt, "舊物產碼matkl li
列印SAP報表時顯示日期及用戶名
1.使用SAP標準Menu: 設定(S)->配置(A)->更改(C)... 2. 在配置設定中選擇"顯示"Tab 3.選擇最後一個選項"含日期,標題及頁數的印出"4.保存退出即可.[@more@]
建立背景作業
在SAP中建立背景作業很簡單, 3個步驟即可完成, 代碼如下:data: g_jobname TYPE tbtcjob-jobname VALUE 'JOB_TEST', g_jobcount TYPE tbtcjob-jobcount, g_jobdate TYPE BTCSDATE value '20070801', g_jobtime TYPE BTCSTIME value '123000'. 1.使用FM:JOB_OPEN建立作業 CALL FUNCTION 'JOB_OPEN' EXPORTING jobname = p_jobname IMPORTING jobcount = p_jobcount EXCEPTIONS cant_create_job = 1 invalid_job_data = 2 jobname_missing = 3 OTHERS
根據frame的大小自動調整頁面高度
將以下代碼置於要顯示於frame的頁面中即可,有一點需要注意的就是定義的frame必須要有name屬性, 否則無效.<script>function f_frameStyleResize(frameObj){var targWin = frameObj.parent.document.all[frameObj.name];if(targWin != null) {var HeightValue = frameObj.document.body.scrollHeight// if(HeightValue < 500){HeightValue = 500} //限制最小高度targWin.style.pixelHeight = HeightValue;}}function f_iframeResize(){f_frameStyleResize(self);}window.onload = f_iframeResize;</script>[@more@]
at new <field>的使用例子
report demo_use_at.data: begin of wa, field1(1) type c, field2(2) type c, field3(6) type c, end of wa.data itab like wa occurs 0 .wa-field1 = 'A'.do 2 times. wa-field2 = sy-index. CONDENSE wa-field2. concatenate wa-field1 wa-field2 into wa-field2. do 3 times. wa-field3 = sy-index. CONDENSE wa-field3. concatenate 'Line' wa-field3 into wa-field3. insert wa into table itab. enddo.enddo.wa-field1 = 'B'.do 3 times. wa-field2 = sy-index. CONDENSE wa-fiel
ABAP FM: REUSE_ALV_GRID_LAYOUT_INFO_GET
函數REUSE_ALV_GRID_LAYOUT_INFO_GET是取得ALV GRID中的訊息, 如在使用ALV 標準工具過濾, 排序等功能時, 可使用該FM取得各種操作訊息. 例: data: itfilter type slis_t_filtered_entries. call function 'REUSE_ALV_GRID_LAYOUT_INFO_GET' importing et_filtered_entries = itfilter. itfilter表中會取得當前ALV過濾條件外的記錄資料.函數格式具體如下: call function 'REUSE_ALV_GRID_LAYOUT_INFO_GET'* IMPORTING* ES_LAYOUT =* ET_FIELDCAT =* ET_SORT =*
ABAP中Char類型數據轉換成Decimal類型
在ABAP中CHAR轉到Decimal的功能, 到目前爲止我在ABAP的FM中找不到相關轉函數, 所以衹有自己寫了, 代碼如下:data: varChar(40) type c.data: varDec type p decimal 3.varChar = '1,500'."這時如果使用varDec = varChar.會提示出錯(因爲有',')replace all occurrences of ',' in varChar with space.condense varChar no-gaps. varDec = varChar.[@more@]
ABAP計算自動義公式
原理是動態建立一個ABAP程式處理 以下代碼是根據自動的字符串公式自動計算出結果,如輸入公式字串:12 + 5 * ( 5 -2 ), 計算出的結果爲27, 這樣就不用用固定代碼了, 可以根據公式動態計算結果......不錯吧不過需注意的有, 字串公式中不能出現小數點, 如3.5 *2 等, 要改爲35 / 10 * 2, 還有一點就是各參數及操作符之單要有一個空格, 要懂得ABAP語法哦...... report ZABAP_Test_01.parameters: p_code1(100) type c.data t_source_tab(72) occurs 0 with header line.data g_program_name like sy-repid.data g_message(128).data g_line_
根據用戶不同的選擇動態改變程式的標題
根據用戶不同的選擇動太改變程式的標題(SY-TITLE)。原代碼:REPORT ZRP_CHANGE_TITLE NO STANDARD PAGE HEADING.SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE T1.PARAMETER: OPT_1 RADIOBUTTON GROUP OPT1 TYPE C,OPT_2 RADIOBUTTON GROUP OPT1 TYPE C.SELECTION-SCREEN END OF BLOCK B1.INITIALIZATION.T1 = 'Select Option:'.SY-TITLE = 'Testing SY-TITLE.'.START-OF-SELECTION.IF OPT_1 = 'X'.SY-TITLE = 'You Select The First Option.'.ELSEIF OPT_2 = 'X'.SY-TITLE = 'You Select The Second Option.'.ENDIF. [@more@]