是否可以在REXX程序中隐藏用户输入的输入

时间:2013-08-06 15:39:54

标签: rexx

我需要提取用户将输入的密码,但不需要 要在屏幕上显示的字符。你能帮我在REXX中实现这个目标。

2 个答案:

答案 0 :(得分:6)

由于您在ISPF中运行,因此您可以使用不显示的密码字段定义驻留在ISPPLIB并置中的面板。

答案 1 :(得分:6)

作为@cshneid,使用ISPF Panel(并将其放在ISPPLIB中)。 以下是一个示例面板,其中包含取自ISPF Manual

的密码字段(请参阅$ attribute)
)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 功能向ISPF添加额外的PDS(临时)。从历史上看,这些PDS的RECFM = FB且LRECL为80.这已发生变化。您应该检查现有ispplib PDS的属性并使用类似的属性。

要显示面板,需要将其存储在ISPPLIB(或分配给的PDS)中 ispplib使用 LIBDEF )。

如果您将面板存储在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 */

Edit Macro guide有一个服务列表(还有返回码)

如果你将面板分配到面板库,你也可以使用ispf测试模式(ispf 7.1 ???我使用大型机已经有一段时间了)测试它