02 データの表示

リスト化したデータを表示します。表示する場所は,描画面とコンソールの2ヶ所あります。

描画面では,罫線を入れた表形式で表示することができますが,データが多い場合,スクロールするためにプログラムを書く必要があります。

コンソールでは罫線は入りませんが,上下のスクロールは簡単にできます。データの確認をするのにはコンソールの方が便利ですが,1行目に項目名が入っているような場合,これを固定することはできません。

コンソールに表示する

リストになっているデータをそのまま表示するのでは視認しにくいので,整形して表示します。

要領は

① 要素のリストごとに改行する。(行データを表示して改行)

② 行の要素を並べる。

このとき,②で要素を並べるとき,空白やコンマで区切るのでなく,TABで区切ると縦がそろって見やすくなります。

さらに,コンソールに表示されたものを,そのまま Ctrl+C,Ctrl+V で表計算ソフトのワークシートにコピーすることもできます。(コンマでもTABでもできます) Cindyscriptで検索・抽出したデータを表計算ソフトに戻すことができるのです。

コードはたとえば次のようにするとよいでしょう。(他の方法もあります)

repeat(length(datalist),s,

repeat(length(datalist_s)-1,t,

print(datalist_s_t+unicode("0009"));

);

println(datalist_s_(-1));

);

これを,次のようにしてユーザー定義関数にしてしまうとよいでしょう。

ユーザー定義関数は Initialization スロットに書きます。

dispconsole(list):=(

repeat(length(list),s,

repeat(length(list_s)-1,t,

print(list_s_t+unicode("0009"));

);

println(list_s_(-1));

);

);

描画面に表示する

描画面に表を作る drawtable() 関数を使います。引数は表示位置とリスト名です。

ここでは,前項で読み込んだ,新体力テストのデータを使いますが,データ量が多いので,ひとまず10件だけ表示してみましょう。

drawtable([0,0],datalist_(1..10),width->80);

ここで,width->80 は,セル幅を80ピクセルとするオプション(修飾子)です。修飾子には,次のものがあります。

なお,列ごとにセル幅を指定することは残念ながらできません。

スクロールする

1行目の種目名は固定して,そのあとのデータをスクロールして表示します。表計算ソフトと同様に,スライダを使うのがよいでしょう。

表の左右どちらかにスライダを作ります。今は左側に作ることにして,作図ツールで適当な幅の線分を描き,点をとります。線分の両端がA,B(上がA),点をCとしたとき,次のようにして,表示するはじめの番号と終わりの番号を決めます。種目名は datalist_1 ですが,これを flip オプションを使って表示します。なお,スライダはインスペクタで点の大きさを変えたり,ラベルを非表示にしたりしています。

start=floor(|A,C|/|A,B|*(length(datalist)-10)+1)+1;

if(start+9>length(datalist),start=length(datalist)-9);

stop=start+9;

drawtable([0,7.6],datalist_1,flip->true,width->80);

drawtable([0,0],datalist_(start..stop),width->80);