1. 程式人生 > >如何實現輸入的密碼顯示為*號

如何實現輸入的密碼顯示為*號



幾天做一個系統維護的程式,需要用戶輸入用名和密。可怎樣實現輸入密碼顯示星號的框呢?在其它言中簡單那個文字框控制元件作“Password”示就OK了(一般會有行、密和多行供)。可在ABAP中,把I/O欄位屬性了個遍,沒找見類似的屬性,鬱

網上一搜,前人已經實現了。一看,更鬱!居然是不可屬性!!(原以為選上他控制元件會消失呢!)寫在裡,留個份,也需要的朋友作個參考。

下面分不同介面程的具體實現方法:

1選擇螢幕(Selection-Screen)中實現框:

設選擇螢幕中有如下宣告:

PARAMETERS txt_pass type string.

“txt_pass“是要接收密的欄位,選擇螢幕的出事件中加入如下代,修改個欄位不可

AT SELECTION-SCREEN OUTPUT. 
loop at screen.
    if screen-name = 'TXT_PASS'.
      screen-invisible = '1'.
      modify screen.
    endif.
  endloop.

經過上面修改,txt_pass在介面上將示成星號的文字域。

2)在螢幕(Screen)中實現框:

選擇螢幕上面一不可屬性,只是更簡單(不用寫代了)。

在螢幕設計器上放了個名叫“txt_pass”I/O域來接收密碼輸入,擊這個欄位,在屬性視窗下面的不可(如右所示),啟用,OK

總結

1SAP個屬性搞的變態(不想一下,也有道理);

2)自己以後可不能想當然了,要注重踐。

3)上面密資料型我使用了stringSAP資料字典中提供了個叫“XUNCODE”的文字元素專門用於密資料型,可以使用它。

(4)如果要實現螢幕某個元素不顯示的話,screen-invisible = '1'.必須與screen-input搭配使用,如果單獨使用screen-invisible = '1'.

的話

只能實現顯示密碼為星號這種style