我创建了一个全局名称,我试图仅使用与该名称开头相同的字符来打印出匹配的名称。示例:输入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的期望结果。我错过了一些我知道的东西,但是有点累了。任何帮助都将非常感谢!
答案 0 :(得分:0)
您在val周围有双引号:
. W !,$O(^ZNAME("val"))
Q
因此它正在尝试将值写入^ ZNAME(“ val”),而该值没有一个。删除双引号,它应该可以工作。