Spread

Q
Spreadの列をソートする
[内容]
Spreadのタイトルをクリックして、データをソートさせる


A
[解決方法]
Spreadのプロパティ設定のみでは、表示しているデータをソートすることは出来ません。

CSVDocumentオブジェクトにsortメソッドが用意されているので、これを利用します。


[サンプルコード]

Form Form1 {
    CSVDocument csvobj;

    Number flg = 0; /*0:降順 1:昇順*/

    Spread Spread1 {
        SpreadRow row[0] {
            SpreadColumn col1 {
            }
            SpreadColumn:Number col2 {
                Format = "MI999,999,990";
            }
            SpreadColumn:Number col3 {
                Format = "MI999,999,990";
            }
            <省略>
        }
        
        Function OnLabelClicked( e ) {
            ^.fncSpreadSort(e.col);
        }
    }

    Function fncSpreadSort( param1 ){
        var sort_arrow = "";
        var sort_str = "";
        /* sortメソッドのソートキー(ソートするカラムと昇順/降順の指定)文字列作成 */
        if( flg == 0 ){
            sort_str = str(param1) + "nd";
            sort_arrow = " ▼";
            flg = 1;
        } else {
            sort_str = str(param1) + "n";
            sort_arrow = " ▲";
            flg = 0;
        }

        /* CSVDocumentのsortメソッドでデータをソート */
        csvobj.sort( sort_str );
        /* ソート済みのデータをSpreadに格納 */
        Spread1.row << csvobj;

        switch( param1 ){
            case 0:
                break;
            case 1:
                /* ソート列のタイトルに△/▽を付与 */    
                Spread1.row.col2.Title = col2_title + sort_arrow;
                /* ソート列の背景色を薄緑色に変更 */
                Spread1.row.col2.BgColor=$CCFFCC;
                break;
            case 2:
                Spread1.row.col3.Title = col3_title + sort_arrow;
                Spread1.row.col3.BgColor=$CCFFCC;
                break;
            :
            <省略>
        };
    }

}
上記例は列のラベルクリックでソートを行っており、押す毎に昇順、降順を制御します。

CRSファイル形式のサンプルを
  「Spreadソートサンプル(Spd_004.zip)
よりご利用いただけます。

管理番号:Spd_004
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ