絞り込みをするには
完全一致による絞り込み
mt:SheetAssetTable
テンプレートタグにfilter_field
属性とfilter_value
属性を指定します。
正規表現による絞り込み
mt:SheetAssetTable
テンプレートタグにfilter_field
属性とfilter_regex
属性を指定します。
複雑な絞り込み
mt:SheetAssetTable
テンプレートタグにfilter_eval
属性を指定します。
filter_eval
属性にはPerlの式を記述できます。データベース・テーブルの各レコードが変数$_
にハッシュリファレンスとして渡されます。
式が真
を返すレコードを絞り込みます。
条件に合致しないレコードの絞り込み
mt:SheetAssetTable
テンプレートタグにfilter_invert
属性を指定します。
絞り込みの例
<!-- 値による絞り込み -->
<mt:SheetAssetTable filter_field="prefecture" filter_value="東京都">
<!-- prefecture列が"東京都"のレコードのみ表示 -->
</mt:SheetAssetTable>
<!-- 正規表現による絞り込み -->
<mt:SheetAssetTable filter_field="code" filter_regex="^ABC-">
<!-- code列が"ABC-"で始まるレコードのみ表示 -->
<!-- "ABC-111"は表示されますが、"111-ABC"は表示されません -->
</mt:SheetAssetTable>
<!-- 式による絞り込み -->
<mt:SheetAssetTable filter_eval="$_->{code} eq 'ABC-111' && $_->{sales} > 10">
<!-- code列が"ABC-111"で、かつ sales列が10以上のレコードのみ表示 -->
</mt:SheetAssetTable>
<!-- 検索条件の反転 -->
<mt:SheetAssetTable filter_field="prefecture" filter_value="東京都" filter_invert="1">
<!-- prefecture列が"東京都"ではないレコードのみ表示 -->
</mt:SheetAssetTable>
並べ替えをするには
指定した列の昇順による並べ替え
mt:SheetAssetTable
テンプレートタグにsort_field
属性として列名を指定します。
指定した列の降順による並べ替え
mt:SheetAssetTable
テンプレートタグにsort_field
属性として列名と、sort_order
属性としてdesc
を指定します。
数値としてよる並べ替え
mt:SheetAssetTable
テンプレートタグにsort_as
属性としてnumber
を指定すると、値を数値として比較します。
この指定を行わないと、例えば昇順において10
が9
よりも上位に並べ替えられます。
複雑な並べ替え
mt:SheetAssetTable
テンプレートタグにsort_eval
属性として式を指定します。
sort_eval
属性にはPerlの式を記述できます。Perlのmap
関数と同様に、変数$a
と$b
にそれぞれハッシュリファレンスとしてレコードが渡されます。
詳しくは例を参考ください。
<!-- name列による昇順の並べ替え -->
<mt:SheetAssetTable sort_field="name">
<!-- name列の昇順に並べ替えられます -->
</mt:SheetAssetTable>
<!-- number列による数値の降順の並べ替え -->
<mt:SheetAssetTable sort_field="number" sort_as="number" sort_order="desc">
<!-- number列を数値として比較し、値の大きい順に並べ替えられます -->
</mt:SheetAssetTable>
<!-- 式による絞り込み -->
<mt:SheetAssetTable sort_eval="($b->{sales} <=> $a->{sales}) || ($a->{name} cmp $b->{name})">
<!-- sales列の数値が大きい順、同じ値の場合はname列の昇順に並べ替えられます -->
</mt:SheetAssetTable>