ABAP 自己定義一個長文字TEXT的編寫、儲存
阿新 • • 發佈:2019-02-20
TEXT長文字的編寫
大家在程式設計過程中,一定經常用到READ_TEXT這個函式來讀取長文字,下面我介紹的是如果自己定義一個長文字object和ID,自己儲存長文字。
在專案中,做了很多功能性開發,使用者要寫一些備註或者是審批意見和建議,自定義表裡面儲存欄位的長度是有限的,這個時候能自定義長文字就很實用了。
第一步:建長文字的OBJECT,TCODE SE75,選擇‘文字物件和識別碼’,點選change,這個時候就會看到SAP系統中存在的所有長文字OBJECT,點‘新建’,輸入文字物件,描述,選擇儲存狀態是更新,選擇編輯器應用格式是TA,行寬選一下,回車,搞定
第二步:建長文字的ID,雙擊剛剛建立的OBJECT,點新建,就可以建立ID了
第三步:先READ_TEXT,如果sy-subrc = 0,說明可以讀到,如果不等於0,就說明還沒有寫長文字,那就可以用INIT_TEXT函式先初始化一下,再EDIT_TEXT編輯一下,最後SAVE_TEXT儲存一下就OK了.
?
長文字的編輯能做到:第二次編輯的時候,第一次編輯的內容都是灰色的,這樣就可以用來寫審批意見。也可以做到,第二次編輯的時候,第一次的編輯也可以修改,這由幾個引數決定。
SAP的標準例子:SDTEXTE,可以參考
module mod_custom_control output。 data: lv_dmode type xfeld. "Display mode. ** Get display mode. if t340-trtyp = 'H'. lv_dmode = space. elseif t340-trtyp = 'V'. lv_dmode = space. elseif t340-trtyp = 'A'. lv_dmode = 'X'. endif. ** Get what input in the textedit. perform frm_read_text. ** Text editor set. call function 'RH_EDITOR_SET' exporting repid = sy-repid dynnr = sy-dynnr controlname = 'ZCBOX' max_cols = 79 show_tool = 'X' show_status = 'X' display_mode = lv_dmode tables lines = gt_lines exceptions create_error = 1 internal_error = 2 others = 3. endmodule. " MOD_CUSTOM_CONTROL OUTPUT
form frm_read_text . data: lv_name like thead-tdname. "Name. ** Object name. clear: lv_name. lv_name = mgef-stoff. ** Read text. if gv_enter_flg eq 'X'. clear gt_lines. call function 'RH_EDITOR_GET' exporting controlname = 'ZCBOX' tables lines = gt_lines exceptions internal_error = 1 others = 2. clear gv_enter_flg. else. call function 'READ_TEXT' exporting id = 'ZHAZ' language = 'E' name = lv_name object = 'ZHAZARDMAT' tables lines = gt_text exceptions id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 others = 8. if sy-subrc eq 0. ** Transfer text. loop at gt_text into gs_text. gs_lines = gs_text-tdline. append gs_lines to gt_lines. clear: gs_text, gs_lines. endloop. endif. endif. endform. " FRM_READ_TEXT
來源:http://www.renren.it/a/shujuku/Access/20111031/103634.html