ユーザーが入力するパスワードを PULL する必要がありますが、文字を画面に表示したくありません。REXXでこれを達成するのを手伝ってくれませんか.
2 に答える
@cshneid として、ISPF パネルを使用します (そしてそれを ISPPLIB に配置します)。以下は、 ISPF マニュアルから抜粋したパスワード フィールド ($ 属性を参照) を含むパネルの例です。
)ATTR
* TYPE(TEXT) INTENS(HIGH) COLOR(WHITE) CAPS(OFF)
# TYPE(TEXT) INTENS(HIGH) COLOR(BLUE) CAPS(OFF)
@ TYPE(TEXT) INTENS(LOW) COLOR(BLUE) HILITE(REVERSE)
? TYPE(TEXT) INTENS(LOW) COLOR(TURQ) CAPS(OFF)
_ TYPE(INPUT) INTENS(HIGH) COLOR(YELLOW)
$ TYPE(INPUT) INTENS(NON)
ø TYPE(OUTPUT) INTENS(LOW) COLOR(TURQ) CAPS(OFF)
)BODY
* --------------------------@EMPLOYEE RECORD*--------------------------
# SERIAL NO.*===>_SERNUM +&rbl %
#
#
# NAME:?&LAST, &FIRST
#
# ADDRESS:øADDR1 +
# øADDR2 +
# øADDR3 +
# øADDR4 +
#
# POSITION:øPOSIT +
#
# YEARS EXPERIENCE:øYRS+
#
# SALARY:øSALARY + # PASSWORD*===>$PSW +
# (Password is required for salary)
#
#
* Enter#END*command to terminate application.
#
)PROC
VER(&SERNUM,NB,NUM)
.ATTR(.CURSOR) = 'COLOR(RED) HILITE(BLINK)'
)END
私はチェックできるメインフレームを持っていないので、次のように構文エラーが発生する可能性があることに注意してください。
パネルを表示する Rexx コマンド:
Address ispexec display panel(panelName)
DSN を ISPPLIB に追加する必要がある場合
"ispexec libdef ispplib dataset id(panel-dsn)"
背景情報
ISPF は一連のファイル (ispplib、ispmlib、isptlib など) を使用して、使用する詳細を保管します。rexx/clist プログラムでLIBDEF機能を使用して、追加の PDS を (一時的に) ISPF に追加できます。歴史的に、これらの PDS は RECFM=FB で、LRECL は 80 でした。これは変更されました。既存の ispplib PDS の属性を確認し、同様の属性を使用する必要があります。
パネルを表示するには、ISPPLIB (または LIBDEF を使用してispplibに割り当てられた PDS ) に保管する必要があります。
パネルを pds my.panels(test) に保存し、my.panels を ISPPLIB に割り当てると、rexx は次のようになります。
/* rexx */
address ispexec 'display panel(test)'
say rc /* show return code, will indicate possible errors */
LIBDEFを使用する場合、rexx は
/* rexx */
address ispexec "libdef ispplib dataset id(panel-dsn)"
say rc
address ispexec 'display panel(test)'
say rc /* show return code, will indicate possible errors */
マクロの編集ガイドには、サービスのリスト (およびリターン コードがあります) があります。
パネルをパネル ライブラリに割り当てる場合は、ispf テスト モード (ispf 7.1 ??? メインフレームを使用してからしばらく経ちます) を使用してテストすることもできます。