blog

Caché コマンド・ブック ZWRITE コマンド

変数名とその値、または式の値を表示します。 変数名とその値および/または式の値を表示します。 オプション - 表示する変数または式、または表示する変数または式のカンマ区切りリスト。カンマ区切りのリス...

May 20, 2020 · 16 min. read
シェア

Caché コマンド・リスト ZWRITE コマンド

変数名とその値、または式の値を表示します。

ハイライト

  1. 変数名を ASCII 順に並べたものです。

概要

ZWRITE:pc expression,...
ZW:pc expression,...

パラメータ

  • pc オプション - ポスト式
  • expression オプション - 表示する変数または式、あるいは表示する変数または式のカンマ区切りリスト。カンマ区切りのリストには、変数とexpression.valuesとexpression valueの任意の組み合わせを含めることができます。

説明

ZWRITE コマンドは変数名とその値を一覧表示します。ZWRITE は、これらの変数とその子孫変数を varname = value という正規の順序で、現在のデバイス上の 1 行に 1 つずつリストします。 ZWRITE は式の値も一覧表示します。式は値として、指定された順序で 1 行に 1 つずつリストされます。 ZWRITE コマンドには 2 つの形式があります:

  • パラメータなし
  • パラメータ

ZWRITE は、オプションの後条件式を取ることができます。後条件式が True の場合、Caché はコマンドを実行します。後条件式が偽の場合、Caché はコマンドを実行しません。

エラーは、CTRL-Cを発行してZWRITEリストに割り込むことで発生します。

ZWRITEパラメータなし

式パラメータなしの ZWRITE は、パラメータなしの WRITE と機能的に同じです。プライベート変数を含め、ローカル変数環境のすべての変数の名前と値が表示されます。 n パラメータは、パラメータなしの WRITE と機能的に同じです。プロセス固有のグローバル変数や特殊変数は表示されません。変数は ASCII 順に名前順に表示されます。添え字付き変数は添え字ツリー順に表示されます。

パラメータなしの ZWRITE は、ローカル変数に代入された OREF の値を variable = <对象引用> [oref] という形式で表示 <对象引用> します。OREF に関する詳細な情報は表示されません。

パラメータなしの ZWRITE は、ローカル変数に割り当てられたビット文字列を圧縮文字列として表示します。ビット文字列の詳細情報は表示されません。

ZWRITE

パラメータ付きZWRITEでは、式パラメータまたは式パラメータのカンマ区切りリストを指定できます。これらのパラメータは、左から右の順に評価されます。各引数には、変数または式を指定できます。expression がカンマ区切りのリストの場合、各変数または式は別々の行に表示されます。

  • 変数: varname として表示= value
  • 式:計算され、結果が値として表示されます。
  • 特殊変数:値として表示
  • Caché リスト構造 : $lb として表示されます。
  • 添え字付きのグローバル変数 (SQL データ値や SQL インデックス値を格納するために使用されるものを含む) は、 $lb() リスト構造として示されます。
  • オブジェクト参照:[oref]と表示。これは、ZWRITEがパラメータなしで表示する値です。オブジェクト・リファレンス・パラメータを持つZWRITEは、この値だけでなく、他の一般情報、属性値、およびスウィズルされたリファレンスと "Calculated References "情報も表示します。"計算された参照" 情報が表示されます。
  • JSON配列とJSONオブジェクト:オブジェクト参照として表示されます。
  • ビット文字列: $ZWCHARで圧縮されたバイナリ文字列、およびビット文字列内のすべての "1 "ビットをユーザーが読み取り可能な形で表示。
  • ZWRITEは、数値以外の文字を1文字以上含む文字列を引用符で囲んだ文字列として表示します。

    ZWRITEは、数値を正準数として表示します。 ZWRITEは、正準形式の数値を含む数値文字列を、引用符で囲まれていない正準数として表示します。ZWRITEは、非正準形式の数値文字列を引用符で囲んだ文字列として表示します。ただし、非正規形式の数値文字列に対する算術演算は、それを正規数に変換することに注意してください。以下の例では

    /// d ##class(PHA.TEST.Command).TestZWrite()
    ClassMethod TestZWrite()
    {
    	SET numcanon=7.9 // returns number
    	SET num=+007.90 // returns number
    	SET strnum="+7.9" // returns string
    	SET strcanon="7.9" // returns number
    	SET strnumop=+"+7.90" // returns number
    	ZWRITE numcanon,num,strnum,strcanon,strnumop
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite()
    numcanon=7.9
    num=7.9
    strnum="+7.9"
    strcanon=7.9
    strnumop=7.9
    

    ZWRITEは、非常に長い文字列の表示を切り捨て、文字列の表示が切り捨てられたことを示すために...文字列の表示が切り捨てられることを示します。

    ZWRITEは、制御文字を含む値を読みやすい形式で表示します。この形式の結果、最大文字列長を超える非常に長い文字列値になる場合、 ZWRITEは表示された文字列を切り捨て、文字列が切り捨てられたことを示す...を付加して文字列が切り捨てられたことを示します。

    Variables

    expression が変数の場合、ZWRITE は varname = value を別の行に書き込みます。変数はローカル変数、プロセス固有のグローバル変数、グローバル変数、またはオブジェクト参照です。

    ZWRITE は未定義の変数を無視します。エラーは発生しません。カンマ区切りの変数リストに未定義の変数が 1 つ以上指定されている場合、 ZWRITE は未定義の変数を無視し、定義されている変数を返します。この動作により、すべての変数が定義されているかどうかを確認せずに、 複数の変数を表示することができます。未定義の変数が WRITE、ZZDUMP、または ZZWRITE に指定された場合、Caché はエラーを発行します。

    変数には添え字を付けることができます。変数に子ノードが定義されている場合、ZWRITE は添え字ツリー順に子ノードごとに varname = value 行を記述します。ルート・ノードが指定されている場合、ZWRITE は、ルート・ノードが定義されていなくても、その子ノードをすべて表示します。

    拡張グローバル参照を使用すると、現在のネームスペースにマッピングされていないグローバル変数を指定できます。Config.MiscellaneousZWRITE は、%SYSTEM.Process クラスの RefInKind() メソッドまたはクラスの RefInKind プロパティが拡張グローバル参照を削除するように設定されていても、拡張グローバル参照を表示します。存在しないネームスペースが指定されると、Caché ではエラーが発生します。権限のないネームスペースが指定され、その後にグローバル名やデータベース・パスなどが続くと、Caché ではエラーが発生します:<PROTECT> ^myglobal,c:\intersystems\cache\mgr\.

    Non-Display Characters

    ZWRITE は、印字可能な文字をすべて表示します。これは、$CHAR 関数を使用して非印字可能文字を表示し、各非印字可能文字を連結した $c 値として表します。これは、印字不可能な制御文字を実行しません。これは、以下の例で表示されます:

     SET charstr=$CHAR(65,7,66,67,0,68,11,49,50)
     ZWRITE charstr
    
    DHC-APP> SET charstr=$CHAR(65,7,66,67,0,68,11,49,50)
     
    DHC-APP> ZWRITE charstr
    charstr="A"_$c(7)_"BC"_$c(0)_"D"_$c(11)_"12"
     
    DHC-APP>w charstr
    ABCD
     12
    

    表現

    expression がリテラル式の場合、ZWRITE は式を評価し、結果の値を別の行に書き込みます。式に未定義の変数が含まれている場合、Caché はエラーを発行します。

    式が多次元プロパティの場合、ZWRITE はそのプロパティの子孫を表示しません。ZWRITE を使用して多次元プロパティ全体を表示するには、それをローカル配列にマージしてその配列を表示するか、オブジェクト全体を表示します。

    Caché List Structures

    Caché リスト構造は、ZWRITE の変数または式として指定できます。 ZWRITE は、以下の例に示すように、リスト構造を $lb として表示します:

    /// d ##class(PHA.TEST.Command).TestZWrite1()
    ClassMethod TestZWrite1()
    {
    	SET FullList = $LISTBUILD("Red","Blue","Green","Yellow")
    	SET SubList = $LIST(FullList,2,4)
    	SET StrList = $LISTFROMSTRING("Crimson^Azure^Lime","^")
    	ZWRITE FullList,SubList,StrList
    	w !!
    	w FullList,SubList,StrList
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite1()
    FullList=$lb("Red","Blue","Green","Yellow")
    SubList=$lb("Blue","Green","Yellow")
    StrList=$lb("Crimson","Azure","Lime")
     
     
    RedBlueGreeYellowBlueGreeYellow CrimsonAzureLime
    

    添え字グローバルとその子孫

    以下の例は、添え字付きグローバル変数とそのすべての子孫ノードの内容を表示する ZWRITE を示しています。この例では、SQL テーブルに投影される Sample.Person 永続クラスに定義されたデータが表示されます。グローバル変数の名前は、永続クラス名から派生し、大文字と小文字が区別されます。子孫ノードにはリスト構造が含まれ、$LISTBUILD 構造として表示されることに注意してください:

     ZWRITE ^Sample.PersonD
    
    DHC-APP> ZWRITE ^Sample.PersonD
    ^Sample.PersonD=215
    ^Sample.PersonD(1)=$lb("","yaoxin","111-11-1117",54536,$lb("889 Clinton Drive","St Louis","WI","78672"),$lb("9619 Ash Avenue","Ukiah","AL","56589"),13,$lb("Red","Orange","Yellow","Green"))
    ^Sample.PersonD(2)=$lb("~Sample.Employee~","xiaoli","111-11-1111","",$lb("","","",""),$lb("","","",""),"","")
    ^Sample.PersonD(2,"Employee")=$lb("","",2000,"test","")
    ^Sample.PersonD(6)=$lb(""," ,"111-11-1112","","","","","")
    ^Sample.PersonD(9)=$lb(""," ,"111-11-1113","","","","","")
    ^Sample.PersonD(10)=$lb(""," ,"111-11-1114","","","","","")
    ^Sample.PersonD(13)=$lb(""," ,"111-11-1115","","","","",$lb("Red","Orange"," Yellow","Green"))
    ^Sample.PersonD(14)=$lb(""," ,"111-11-1116","","","","",$lb("Red","Orange"," Yellow","Green","Green"))
    ^Sample.PersonD(15)=$lb("","Isaacs,Roberta Z.","590-93-6378","","","","",$lb("Red","Orange","Yellow","Green","Yellow"))
    ^Sample.PersonD(16)=$lb("","Chadwick,Zelda S.","293-24-9782",50066,$lb("9889 Clinton Drive","St Louis","WI",78672),$lb("9619 Ash Avenue","Ukiah","AL",56589),"13",$lb("White"))
    ^Sample.PersonD(17)=$lb("","Fives,James D.","581-20-8980",33527,$lb("2091 Washington Blvd","Denver","ND",68036),$lb("4972 Franklin Place","Xavier","IA",68974),"6",$lb("Black"))
    ^Sample.PersonD(18)=$lb("","Vonnegut,Jose P.","396-81-1511",48488,$lb("3660 Main Place","Boston","WI",24855),$lb("3426 Ash Place","Youngstown","ID",50727),"6",$lb("Green","White"))
    

    個々のデータ レコードを表示するには、以下のように RowID 値をグローバル添え字として指定します:

     ZWRITE ^Sample.PersonD(22)
    
    DHC-APP> ZWRITE ^Sample.PersonD(22)
    ^Sample.PersonD(22)=$lb("","Willeke,Alvin L.","766-92-7792",37099,$lb("2890 Franklin Avenue","Boston","NJ",82033),$lb("4695 Maple Drive","Reston","MD",55741),"10",$lb("Black","Black"))
    

    インデックスの内容を表示するには、永続クラス名を指定し、インデックス名を添え字として " I" を付加します。 インデックス名では大文字と小文字が区別されます:

     ZWRITE ^Sample.PersonI("NameIDX")
    
    ^Sample.PersonI("NameIDX"," ZUCHERRO,MILHOUSE I.",64)=$lb("","Zucherro,Milhouse I.") ^Sample.PersonI("NameIDX"," ZUCHERRO,OLGA H.",78)=$lb("","Zucherro,Olga H.")
    ^Sample.PersonI("NameIDX"," ZWEIFELHOFER,ROBERTA A.",72)=$lb("","Zweifelhofer,Roberta A.") ^Sample.PersonI("NameIDX"," ZWEIFELHOFER,ZELDA J.",101)=$lb("","Zweifelhofer,Zelda J.") ^Sample.PersonI("NameIDX","  ,6)=$lb("","ルート・ノードが定義されていなくても、ルート・ノードを指定するとすべての子ノードが表示されることに注意する。)
    ^Sample.PersonI("NameIDX","  ,9)=$lb("","ルート・ノードが定義されていなくても、ルート・ノードを指定するとすべての子ノードが表示されることに注意する。)
    ^Sample.PersonI("NameIDX","  ,10)=$lb("","ルート・ノードが定義されていなくても、ルート・ノードを指定するとすべての子ノードが表示されることに注意する。)
    ^Sample.PersonI("NameIDX","  ,13)=$lb("","ルート・ノードが定義されていなくても、ルート・ノードを指定するとすべての子ノードが表示されることに注意する。)
    ^Sample.PersonI("NameIDX","  ,14)=$lb("","ルート・ノードが定義されていなくても、ルート・ノードを指定するとすべての子ノードが表示されることに注意する。)
    

    リストで使用されているその他の非印刷文字も表示されます。

    以下の例は、ZWRITE で拡張グローバル参照を使用して、指定されたネームスペースにある添え字付きグ ローバル変数の内容を表示しています:

     ZWRITE ^["USER"]Sample.PersonD
    

    ネームスペース名には、別のネームスペースまたは現在のネームスペースを指定できます。ネームスペース名の大文字と小文字は区別されません。

    RefInKind メソッドやプロパティの設定に関係なく、ZWRITE は常に拡張モジュールのグローバル参照を表示します。これは、$QUERY または $NAME が返すグローバル変数から拡張モジュールのグローバル参照を取り除くように設定できます。

    Object References

    ZWRITE オブジェクト参照は、変数または式として指定できます。ZWRITE variable=<OBJECT REFERENCE>[oref] <OBJECT REFERENCE>[oref] オブジェクト参照が指定されている場合、または表示されている場合、オブジェクト・プロパティの一般情報、プロパティ値、およびスウィズル参照も表示されます。"計算された参照" が 1 行に 1 プロパティずつ表示されます。

    <object reference>注意: ブラウザ・インターフェイスでZWRITEを実行すると、ブラウザは先の尖った括弧をラベルとして解釈するため、識別子の接頭辞が表示されないことがあります。

    ZWRITE パラメータが埋め込みオブジェクト・プロパティの場合、ZWRITE は、コンテナ・プロパティの配列要素の概 要情報とプロパティ値を 1 行に 1 プロパティずつ表示します。表示形式は、%SYSTEM.OBJ.Dump() メソッドと同じです。

    次の例では、OREFに続いて「一般情報」、「属性値」、「紛らわしい参照」を示しています:

     SET oref = ##class(%SQL.Statement).%New()
     ZWRITE oref
    
    DHC-APP>SET oref = ##class(%SQL.Statement).%New()
     
    DHC-APP>ZWRITE 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>
    +-----------------------------------------------------
    

    次の例では、OREF の後に "General Information"、"Attribute Values"、"Calculated References" と表示されます:

    /// d ##class(PHA.TEST.Command).TestZWrite2()
    ClassMethod TestZWrite2()
    {
    	SET doref=##class(%iKnow.Domain).%New("mytempdomain")
    	DO doref.%Save()
    	SET domId=doref.Id
    	ZWRITE doref
    	SET stat=##class(%iKnow.Domain).%DeleteId(domId)
    }
    ```java
    以下の例は、OREF の後に "General Information" を表示する。”,「属性値”,「混乱を招く参照”および "計算された参照” 
    
    ```java
    DHC-APP> d ##class(PHA.TEST.Command).TestZWrite3()
    poref=<OBJECT REFERENCE>[1@Sample.Person]
    +----------------- general information ---------------
    | oref value: 1
    | class name: Sample.Person
    | %%OID: $lb("1","Sample.Person")
    | reference count: 2
    +----------------- attribute values ------------------
    | %Concurrency = 1 <Set>
    | DOB = 54536
    | Name = "yaoxin"
    | SSN = "111-11-1117"
    +----------------- swizzled references ---------------
    | i%FavoriteColors = ""
    |i%FavoriteColors(1) = "Red"
    |i%FavoriteColors(2) = "Orange"
    |i%FavoriteColors(3) = "Yellow"
    |i%FavoriteColors(4) = "Green"
    | r%FavoriteColors = "" <Set>
    | i%Home = $lb("889 Clinton Drive","St Louis","WI","78672") <Set>
    | r%Home = "" <Set>
    | i%Office = $lb("9619 Ash Avenue","Ukiah","AL","56589") <Set>
    | r%Office = "" <Set>
    | i%Spouse = 13
    | r%Spouse = ""
    +--------------- calculated references ---------------
    | Age <Get>
    +-----------------------------------------------------
     
    
    /// d ##class(PHA.TEST.Command).TestZWrite4()
    ClassMethod TestZWrite4()
    {
    	SET myquery = "SELECT TOP 2 Name,DOB FROM Sample.Person"
    	SET oref = ##class(%SQL.Statement).%New()
    	SET qStatus = oref.%Prepare(myquery)
    	IF qStatus'=1 {WRITE "%Prepare failed:" DO $System.Status.DisplayError(qStatus) QUIT}
    	SET rset = oref.%Execute()
    	ZWRITE rset
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite4()
    rset=<OBJECT REFERENCE>[5@%sqlcq.DHCdAPP.cls152]
    +----------------- general information ---------------
    | oref value: 5
    | class name: %sqlcq.DHCdAPP.cls152
    | reference count: 3
    +----------------- attribute values ------------------
    | (%CursorDataTS) = ""
    | (%CursorDataTS2) = ""
    | (%CursorDatac) = 1
    | (%CursorDatad(1)) = 0
    | (%CursorDatad(3)) = 0
    | (%CursorDatad(4)) = ""
    | (%CursorDatad(5)) = 2
    | (%CursorDatad(6)) = 1
    | (%CursorDataerr) = ""
    | (%CursorDatahdbc) = ""
    | (%CursorDatahstmt) = ""
    | (%CursorDataiot) = ""
    |(%CursorDataparloop) = ""
    | (%CursorDataparms) = ""
    | (%CursorDatapdt) = ""
    | (%CursorDatapl) = ""
    | (%CursorDataps) = ""
    | (%CursorDatarlist) = ""
    | (%CursorDatasql) = ""
    | %CursorNumber = 1
    | %ExtendedMetadata = $lb($lb("Sample.Person||Name","%Library.String",10),$lb("Sample.Person||DOB","%Library.Date",2)) | %Message = ""
    | %Metadata(0) = $lb(2,"Name",12,50,0,0,"Name","Person","Sample",0,$c(0,0,0,0,0,0,0,0,0,0,0,0),"DOB",9,10,0,1,"DOB","Person","Sample",0,$c(0,0,0,0,0,0,0,0,0,0,0,0))
    | (%NextColumn) = 3
    | %Objects = ""
    | %OutputColumnCount = 0
    | %Parameters = ""
    | %ROWCOUNT = 0
    | %ROWID = ""
    | %ResultColumnCount = 2
    | %SQLCODE = 0
    | (%SelectMode) = 0
    | %StatementType = 1
    | %routine = ""
    +----------------- swizzled references ---------------
    | i%%CurrentResult = "5@%sqlcq.DHCdAPP.cls152"
    | r%%CurrentResult = ""
    | i%%PrivateTables = "" <Set>
    | r%%PrivateTables = "" <Set>
    | (i%%ProcCursor) = ""
    | (r%%ProcCursor) = ""
    | (i%%rsmd) = ""
    | (r%%rsmd) = ""
    +--------------- calculated references ---------------
    | %StatementTypeName <Get>
    | DOB <Get>
    | Name <Get>
    +-----------------------------------------------------
     
    

    JSON Arrays JSON オブジェクトの場合

    ZWRITE は、JSON ダイナミック配列および JSON ダイナミック・オブジェクトをオブジェクト参照として表示します。変数添え字を階層順に表示する。.DynamicArray変数添え字を階層順に表示する。.DynamicObject参照されるオブジェクト・クラスは、 .これは以下の例に示されています:

    JSON配列。

     SET jarray = ["apples","oranges"]
     ZWRITE jarray
    
    DHC-APP>SET jarray = ["apples","oranges"]
     
    DHC-APP>ZWRITE jarray
    jarray=<OBJECT REFERENCE>[1@%Library.DynamicArray]
    +----------------- general information ---------------
    | oref value: 1
    | class name: %Library.DynamicArray
    | reference count: 2
    +----------------- attribute values ------------------
    | (none)
    +-----------------------------------------------------
     
    

    JSONオブジェクト。

     SET jobj = {"fruit":"apples","count":24}
     ZWRITE jobj
    
    DHC-APP>SET jobj = {"fruit":"apples","count":24}
     
    DHC-APP>ZWRITE jobj
    jobj=<OBJECT REFERENCE>[4@%Library.DynamicObject]
    +----------------- general information ---------------
    | oref value: 4
    | class name: %Library.DynamicObject
    | reference count: 2
    +----------------- attribute values ------------------
    | (none)
    +-----------------------------------------------------
     
    

    Bitstrings

    ZWRITE ビット文字列は、変数または式として指定できます。ZWRITE パラメータが Caché 圧縮ビット文字列の場合、ZWRITE は、圧縮バイナリ文字列の 10 進表現を $ZWCHAR 2 バイト文字として表示します。

    /// d ##class(PHA.TEST.Command).TestZWrite5()
    ClassMethod TestZWrite5()
    {
     SET $BIT(a,1) = 0
     SET $BIT(a,2) = 0
     SET $BIT(a,3) = 1
     SET $BIT(a,4) = 0
     SET $BIT(a,5) = 1
     SET $BIT(a,6) = 1
     SET $BIT(a,7) = 1
     SET $BIT(a,8) = 0
     ZWRITE a
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite5()
    a=$zwc(408,1,0,1,3,7)/*$bit(3,5..7)*/
     
    

    代表例

    ZWRITEパラメータなし

    次の例では、パラメータを指定せずに ZWRITE を実行すると、定義されているすべてのローカル変数が ASCII の名前順にリストされます。

     SET A="A",a="a",AA="AA",aA="aA",aa="aa",B="B",b="b"
     ZWRITE
    
    DHC-APP>SET A="A",a="a",AA="AA",aA="aA",aa="aa",B="B",b="b"
     
    DHC-APP>ZWRITE
     
    A="A"
    AA="AA"
    B="B"
    a="a"
    aA="aA"
    aa="aa"
    b="b"
    

    次の例では、パラメータなしのZWRITEで、正規値と非正規値をリストアップしています:

    /// d ##class(PHA.TEST.Command).TestZWrite6()
    ClassMethod TestZWrite6()
    {
    	SET w=10
    	SET x=++0012.00
    	SET y="6.5"
    	SET z="007"
    	SET a=w+x+y+z
    	ZWRITE
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite6()
     
    <Private variables>
    w=10
    x=12
    y=6.5
    z="007"
    a=35.5
    

    ZWRITE

    次の例では、ZWRITEは3つの変数をvarname = valueとして、それぞれの行に表示しています:

    /// d ##class(PHA.TEST.Command).TestZWrite7()
    ClassMethod TestZWrite7()
    {
    	SET alpha="abc"
    	SET x=100
    	SET y=80
    	SET sum=x+y
    	ZWRITE x,sum,alpha
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite7()
    x=100
    sum=180
    alpha="abc"
    

    次の例では、ZWRITEは第1引数の式を計算します。式は値として返され、変数は varname = value として返されます:

    /// d ##class(PHA.TEST.Command).TestZWrite8()
    ClassMethod TestZWrite8()
    {
    	SET x=100
    	SET y=80
    	ZWRITE x+y,y
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite8()
    180
    y=80
     
    

    次の例では、ZWRITEとWRITEで異なる変数値を表示する場合を比較しています。 ZWRITEでは引用符で文字列を区切って返しますが、WRITEでは区切りません:

    /// d ##class(PHA.TEST.Command).TestZWrite9()
    ClassMethod TestZWrite9()
    {
    	SET a=+007.00
    	SET b=9E3
    	SET c="+007.00"
    	SET d=""
    	SET e="Rhode Island"
    	SET f="Rhode"_"Island"
    	ZWRITE a,b,c,d,e,f
    	WRITE !,a,!,b,!,c,!,d,!,e,!,f
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite9()
    a=7
    b=9000
    c="+007.00"
    d=""
    e="Rhode Island"
    f="RhodeIsland"
     
    7
    9000
    +007.00
     
    Rhode Island
    RhodeIsland
    

    ZWRITE添え字付きサブノードの表示

    以下の例は、プロセス固有のグローバル変数の内容を添え字付きで表示する ZWRITE を示しています。 ZWRITE は、変数の添え字を階層順に表示します:

    /// d ##class(PHA.TEST.Command).TestZWrite10()
    ClassMethod TestZWrite10()
    {
    	SET ^||fruit(1)="apple",^||fruit(4)="banana",^||fruit(8)="cherry"
    	SET ^||fruit(1,1)="Macintosh",^||fruit(1,2)="Delicious",^||fruit(1,3)="Granny Smith"
    	SET ^||fruit(1,2,1)="Red Delicious",^||fruit(1,2,2)="Golden Delicious"
    	SET ^||fruit="Fruits"
    	WRITE "global arg ZWRITE:",!
    	ZWRITE ^||fruit
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite10()
    global arg ZWRITE:
    ^||fruit="Fruits"
    ^||fruit(1)="apple"
    ^||fruit(1,1)="Macintosh"
    ^||fruit(1,2)="Delicious"
    ^||fruit(1,2,1)="Red Delicious"
    ^||fruit(1,2,2)="Golden Delicious"
    ^||fruit(1,3)="Granny Smith"
    ^||fruit(4)="banana"
    ^||fruit(8)="cherry"
    

    ルート・ノードを指定すると、ルート・ノードが定義されていなくても、すべての子ノードが表示されることに注意してください:

    /// d ##class(PHA.TEST.Command).TestZWrite11()
    ClassMethod TestZWrite11()
    {
    	SET fruit(1)="apple",fruit(4)="banana",fruit(8)="cherry"
    	SET fruit(1,1)="Macintosh",fruit(1,2)="Delicious",fruit(1,3)="Granny Smith"
    	SET fruit(1,2,1)="Red Delicious",fruit(1,2,2)="Golden Delicious"
    	WRITE "global arg ZWRITE:",!
    	ZWRITE fruit
    }
    
    DHC-APP>d ##class(PHA.TEST.Command).TestZWrite11()
    global arg ZWRITE:
    fruit(1)="apple"
    fruit(1,1)="Macintosh"
    fruit(1,2)="Delicious"
    fruit(1,2,1)="Red Delicious"
    fruit(1,2,2)="Golden Delicious"
    fruit(1,3)="Granny Smith"
    fruit(4)="banana"
    fruit(8)="cherry"
    
Read next

Android Viewの描画プロセス

Android Viewの描画処理は、Viewに関するコアな知識であり、高度なUIを理解するための必須条件です。Androidシステムでは、Windowは最も基本的なウィンドウ単位であり、各アクティビティはWindowクラスを作成します。

May 20, 2020 · 19 min read