問(wèn)題描述:SMARTFORMS中文本元素的內(nèi)容長(zhǎng)度限制255奋姿,項(xiàng)目上一次性打印到QR中的S/N號(hào)已超過(guò)255素标。
解決方法:Tcode:SO10建個(gè)標(biāo)準(zhǔn)文本
SO10創(chuàng)建ST.png
<C2>就是SMARTSTYLES中的設(shè)置了二維碼的字符格式:
字符格式C2.png
IV_SN_STR1~IV_SN_STR5就是SF的表格接口中的參數(shù)称诗,
至于幾個(gè)參數(shù)由項(xiàng)目所需決定,這里我用5個(gè)就能滿足了:
SF表格接口參數(shù).png
SMARTFORMS中文本選擇包含文本:
image.png
程序行里代碼如下:
DATA:lt_text TYPE STANDARD TABLE OF tline.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'ST'
language = sy-langu
name = 'ZMMR0180_SN_QR'
object = 'TEXT'
TABLES
lines = lt_text.
DESCRIBE TABLE lt_text LINES sy-tfill.
CALL FUNCTION 'REPLACE_TEXTSYMBOL'
EXPORTING
endline = sy-tfill
startline = 1
TABLES
lines = lt_text.
調(diào)用SF的程序里對(duì)IV_SN_STR1~IV_SN_STR5的處理:
DATA(lt_gernr_tmp) = lt_gernr.
DO 5 TIMES.
LOOP AT lt_gernr_tmp INTO DATA(ls_gernr_tmp) FROM 1 TO 11.
CASE sy-index.
WHEN 1.
IF lv_sn_str1 IS INITIAL.
lv_sn_str1 = ls_gernr_tmp-gernr && '\c010\'.
ELSE.
lv_sn_str1 = lv_sn_str1 && ls_gernr_tmp-gernr && '\c010\'.
ENDIF.
WHEN 2.
IF lv_sn_str2 IS INITIAL.
lv_sn_str2 = ls_gernr_tmp-gernr && '\c010\'.
ELSE.
lv_sn_str2 = lv_sn_str2 && ls_gernr_tmp-gernr && '\c010\'.
ENDIF.
WHEN 3.
IF lv_sn_str3 IS INITIAL.
lv_sn_str3 = ls_gernr_tmp-gernr && '\c010\'.
ELSE.
lv_sn_str3 = lv_sn_str3 && ls_gernr_tmp-gernr && '\c010\'.
ENDIF.
WHEN 4.
IF lv_sn_str4 IS INITIAL.
lv_sn_str4 = ls_gernr_tmp-gernr && '\c010\'.
ELSE.
lv_sn_str4 = lv_sn_str4 && ls_gernr_tmp-gernr && '\c010\'.
ENDIF.
WHEN 5.
IF lv_sn_str5 IS INITIAL.
lv_sn_str5 = ls_gernr_tmp-gernr && '\c010\'.
ELSE.
lv_sn_str5 = lv_sn_str5 && ls_gernr_tmp-gernr && '\c010\'.
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
DELETE lt_gernr_tmp FROM 1 TO 11.
ENDDO.
\C010\的作用是分割S/N號(hào),使掃描QR時(shí)头遭,能友好顯示寓免!