代表的なキーメソッドを紹介します。
その他のキーメソッドについては、REFERENCE「キーメソッド一覧」を参照してください。
%sort() 特定のキーの子キーを並べ替えるメソッドです。データを並べ替えて表示する場合などに使用します。
引数:
[(str)並べ替えに使用する子キー以下のキーラベルを指定する(省略時、子キーの値が使われる)]
[(int)ソート順 true:昇順 false:降順 デフォルト=true]
[(int)並べ替え対象範囲の開始インデックス]
[(int)並べ替え対象範囲の終了インデックス]
戻り値:
(key)並べ替えられたキーツリー
サンプルでは、並べ替えボタンをクリックした際に、画面上部表示エリアの行番号を元に各条件で並べ替えを行っています。
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
Kf(_Method_sort){ Pe{ /*キーステーションが最初に実行するキーセット*/ N(_main); } } K(_main){ Se{ @area{~border{~style="solid";}~margin="30"{~top;~left;~right;~bottom="0";}} @row{~back{~color="#ffffffff";}~border{~style="solid";~width{~top="0";~left="0";~right="0";~bottom="1";}}} @col{~border{~style="solid";~width{~top="0";~left="0";~right="1";~bottom="0";}}} @rNum{~back{~color="#ffcccccc";}} } De{ (int).selectRow=0; (int).selectCol=0; } U{ /* 非表示(R0)の行列定義 */ R0(#base){ R(#row,@row){ C0.1(#rNum,"1",@rNum) Cbb(@col){ Bp{ /* 選択行列を退避 */ .selectRow?=#me\<#row%num; .selectCol?=#me<<2%num; #me<<2%editing=true; #me<<2%focus(); } Bo{ #me<<2%editing=false; } } } } /* 表示エリア */ R(#area,@area) /* ボタンエリア */ R0.2{ C(@area){ R0.7("行") R{ Cb("+"){ Bs{ /* #areaの末子に行を追加する */ (key)r=#area%addC(#base#row); r[0]?=r%num+1; } } Cb("-"){ Bs{ /* %delC(int)で選択した行を削除 */ #area%delC(.selectRow?); } } } } C(@area){ R0.7("列") R{ Cb("+"){ Bs{ /* 第2引数にfalse(=0)を設定し、#rowの末子に列のみ追加する */ #area#row(.selectRow?)%addC(#base#row,0); } } Cb("-"){ Bs{ /* %delC(int)で選択した列を削除する */ #area#row(.selectRow?)%delC(.selectCol?); } } } } C2(@area){ R0.7("並べ替え") R{ Cb("昇順"){ Bs{ /* 行番号(#rNumラベル)順にソート */ #area%sort("#rNum"); } } Cb("降順"){ Bs{ /* 第2引数にfalseを設定し、降順にソート */ #area%sort("#rNum",false); } } Cb("降順(2行目以降)"){ Bs{ /* 第3引数に開始番号(0から)を設定し、2行目からソート */ #area%sort("#rNum",false,1); } } Cb("降順(2行目まで)"){ Bs{ /* 第4引数に終了番号を設定し、2行目までソート */ #area%sort("#rNum",false,0,1); } } } } } R0.1 Pe(#Init){ /* 初期表示 #areaの末子に行を追加する */ #area%addC(#base#row); } } } |
Method_sort.ksf 4.07 KB
実行結果