Smartform打印的時候,如果打印內容中因為有中文而出現亂碼的情況,一般是由于系統打印設備設置導致的,如果是這種情況可以解決辦法如下:
輸入T-code:SPAD,新建一個打印設備,設備屬性選擇 CNSAPWIN:MS Windows drive via SAPLPD
遇到一個report 中用到 CALL METHOD cl_gui_frontend_services=>gui_download 來download報表亂碼的問題,下面是亂碼的截圖,主要是Customer Name使用的中文顯示,download 保存為Excel中
Customer Name亂碼
Customer Name是亂碼。
問題其實很容易解決,是因為在download的 method 輸入參數中沒有指定 code page ,所以需要針對中文傳入對應的Code Page。那問題來了,如果不知道中文對應的codepage 那需要怎么去查找呢?可以用這個Function Module來查詢對應的codepage “NLS_GET_FRONTEND_CP” 。可以看下面的截圖,輸入ZH(中文在SAP中對應的code)。可以看到返回的結果是8400,所以在上面的method中如果輸入codepage 8400,亂碼問題就解決了。
中文在SAP中就是ZH
下面是輸入codepage后的輸出結果,可以明顯看到現在已經是中文。亂碼問題就這樣解決了。當然這個只是SAP亂碼問題中一個簡單的例子,后續如果再遇到其他亂碼問題再繼續分享給大家。謝謝。