输出命令 ZWRITE 显示所有字符

105 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第48天,点击查看活动详情

  • ZWRITE显示所有字符。包含使用$CHAR函数显示不可打印字符,将每个不可打印字符表示为串联的$c(n)值。但不执行非打印控制字符。
ClassMethod ZWrite5()
{
	s str = $c(65,7,66,67,0,68,11,49,50)
	zw str
	
	s str = "yx"
	zw str
	
	s str = "y"_$c(0)_"x"
	zw str
}
  • 如果表达式是多维属性,则ZWRITE将不显示该属性的后代。要使用ZWRITE显示整个多维属性,请将其merge到局部变量中并显示该数组或者ZWRITE对象。
Property list [ MultiDimensional ];
ClassMethod ZWrite6()
{
	s oref = ..%New()
	s oref.list(1) = "1"
	s oref.list(1, 1) = "1, 1"
	s oref.list(1, 2) = "1, 2"
	s oref.list(1, 1 ,1) = "1, 1, 1"
	s oref.list(1, 1 ,2) = "1, 1, 2"
	s oref.list(2) = "2"
	s oref.list(2, 1) = "2, 1"
	zw oref.list
	
	m array = oref.list
	zw array
	
	zw oref
}

  • 可以为ZWRITE指定列表结构(%List)作为变量或表达式。 ZWRITE将列表结构显示为$lb(element1,element2)
ClassMethod ZWrite7()
{
	s list = $listbuild("Red", "Blue", "Green", "Yellow")
	s subList = $list(list, 2, 4)
	s str = $listfromstring("c#^m^java", "^")
	zw list, subList, str
	w list,!,subList,!,str,!
}
  • ZWRITE显示Global及其所有后代节点的内容。
ClassMethod ZWrite8()
{
	s ^colorD(1) = $lb("","red")
	s ^colorD(2) = $lb("","black")
	s ^colorD(3) = $lb("","white")
	s ^colorI("color" , "red" , 1) = $lb("","red")
	s ^colorI("color" , "black" , 2) = $lb("","black")
	s ^colorI("color" , "white" , 3) = $lb("","white")
	
	zw ^colorD,^colorI
	zw ^["dhc-app"]colorD,^["dhc-app"]colorI
	w ##class(%SYSTEM.Process).RefInKind(1)
}

ZWRITE对对象OREF的使用与解读

  • ZWRITE显示对象oref。如果指定了对象引用,则显示ZWRITE variable=<OBJECT REFERENCE>[oref]<OBJECT REFERENCE>[oref] 还显示对象属性的“常规信息general information”,“属性值attribute values”和“混合引用swizzled references”和“计算引用calculated references”,每行一个属性。
ClassMethod ZWrite9()
{
    s oref = ##class(%SQL.Statement).%New()
    zw oref
    
	s oref=##class(Sample.Person).%OpenId(1)
	zw oref
}
oref=<OBJECT REFERENCE>[1@%SQL.Statement]
+----------------- general information ---------------
|      oref value: 1
|      class name: %SQL.Statement
| reference count: 2
+----------------- attribute values ------------------
|           %Dialect = ""  <Set>
|  %ObjectSelectMode = 0
|(%PreparedStatement) = ""  <Set>
|        %SchemaPath = ""
|        %SelectMode = 0
|(%StatementActualArgs) = ""
|(%StatementArgCount) = 0
|   (%StatementArgs) = ""
|   (%StatementGUID) = ""
|   (%StatementHash) = ""
|   (%StatementType) = ""
|           %msqlvar = ""
+----------------- swizzled references ---------------
|        i%%Metadata = ""  <Get>
|        r%%Metadata = ""  <Get>
  • ZWrite显示对象oref信息
    • general information - 通用信息,包含引用次数,类型。
    • attribute values - 可以直接用点语法使用属性。
    • swizzled references - 为其他引用对象,如果不为空可以用点语法使用该对象。如果该对象里面有其他属性,可以使用连续点语法使用属性。
    • calculated references 表示该字段为由其他字段或方法计算而来。
    w oref.%SelectMode,!
    zw oref.Metadata
    w oref.Metadata.columnCount,!