使用部分名称在全局名称中搜索名称

时间:2019-09-13 18:43:16

标签: intersystems-cache mumps

我创建了一个全局名称,我试图仅使用与该名称开头相同的字符来打印出匹配的名称。示例:输入Sm并返回值Smith,John A。

我创建了这个:

N prompt,val
S prompt="Enter a name (LAST,FIRST MI): "
F  W !,prompt R val Q:val=""  D
.   I val'?1.A1",".1" "1.A.1(1" "1A) W !,"Invalid name"
.   E  S ^ZNAME(val)=""
F  S val=$O(^ZNAME(val)) Q:val=""  D
.   W !,"You entered: ",val
Q

我输入了两个名字,并得到了想要的结果。^ ZNAME(“ MITCHELL,DAVID J”)^ ZNAME(“ SMITH,JOHN A”)。

我希望能够读取部分名称,并且它搜索^ ZNAME并返回其匹配的值。在这种情况下,请阅读“ Sm”并返回“ Smith,John A。”

N partial,val
S partial="Enter a name or partial name: "
F  W !,partial R val Q:val=""  D
.   W !,$O(^ZNAME("val"))
Q

当我从读取命令中输入“ Sm”时,它会循环返回“输入名称”或“部分名称”,而不是给我Smith约翰A的期望结果。我错过了一些我知道的东西,但是有点累了。任何帮助都将非常感谢!

1 个答案:

答案 0 :(得分:0)

您在val周围有双引号:

.   W !,$O(^ZNAME("val"))
Q

因此它正在尝试将值写入^ ZNAME(“ val”),而该值没有一个。删除双引号,它应该可以工作。

相关问题