1つのキーセット中に同名のキーラベルが2箇所以上についている場合、index番号で参照する。
#x(i) ←#xをキーラベルとするキーの中でi+1番目(i = 0、1、2、・・・)のキー
また、階層を持つキーラベルの場合、キーラベルを続けて記述することで参照が可能。
klb1klb2と表記すると、klb1の子孫キー中にある(klb1キーストリング内の)klb2を意味する。
*データキーストリングでは、2つ以上のキーラベルを続けた場合、それらのキーラベルを持つキーは、親子関係になければならい。
サンプルでは、1行目にindexでの参照例、2行目に階層型データキーストリングの参照例を表示している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
Kf(_refer2Key2){ Pe{ /*キーステーションが最初に実行するキーセット*/ N(_main); } } K(_main){ /* スタイル定義 については、 https://ki.kathenas.com/style/362/ */ Se{ @s1{ ~border{ ~color="#ff408000"; ~width="1"; ~style="solid"; } } } /* データキーストリング */ De{ .a{ .val=".a内の.val"; } .b{ .c{ .val=".b内の.c内の.val"; } } } U{ /* 1行目 */ R(#row){ C(#col,@s1) C(#col,@s1) C(#col,@s1) Pe{ /* 同一ラベルはindexで指定可能 #label(i) */ #col(2)?="Set!"; /* ←#colラベルの3つ目 */ #col?="省略"; /* ←省略した場合、(0)と同一 */ } } /* 2行目 */ R(#row){ C(#col,@s1) C(#col,@s1) C(#col,@s1) Pe{ #row(1)#col(0)?=.a.val?; #row(1)#col(1)?=.b.val?; /* ← データキーストリングで親子関係にないキーを指定しているため、エラー(0)となる */ #row(1)#col(2)?=.b.c.val?; } } } } |
実行結果