ORDAのエンティティセレクションやコレクションを扱う際に、For each…End for eachループを使用したことがあるかと思います。その使い方は簡単でわかりやすいものです。 SHTMLページで4Dタグとして使用したいですか?あるいは、PROCESS 4D TAGSコマンドで使用したいですか?
4D v19で、それが可能になりました。もっと詳しく知るために、読み進めてください。
新しい4Dタグが利用可能になりました:4DEACHタグです。
4DEACH タグは、For each…End for eachのループに非常に似ています。
注意点
ここでは、簡単な例として、エンティティ選択におけるFor each…End for eachループの使い方を説明します。
var $customer :cs.CustomersEntity
For each ($customer;ds.Customers.all())
$customer .name:=Uppercase($customer.name)
$customer .save()
End for each
そして、新しい4DEACHタグを使ってみましょう。
このブログ記事で、ユーザーに関連するいくつかのデータをウェブセッションに入れる方法を紹介しました。 たとえば、営業担当者の上位3人の顧客などです。
以下は、この上位3人の顧客(Session.storage.myTop3)を表示するSHTMLコードで、これはエンティティ選択となります。
4DEACH タグでループ再生が可能であることが確認できます。
customers.shtmlファイルを参照してください。
<table class="table">
)
<tr><th>Name</th><th>Total purchase</th></tr>
<!--#4DEACH $customer in Session.storage.myTop3-->
<tr>
<td ><!--#4DTEXT $customer.
name--></td>
<td ><center><!--#4DTEXT String($customer.totalPurchase;"$###,##0")--></center></td>
</tr>
<!--#4DENDEACH--> </table> <td ><!--#4DTEXT $customer.totalPurchase;></td></center></tr> <td ><!--#4DTEXT String($customer.totalPurchase
そして、その結果がこちらです。
この構文は、For each…End for eachのループと非常によく似ています。
このタグは、コレクションや オブジェクトにも使えます (オブジェクトのプロパティをループで処理する場合)。
また、PROCESS 4D TAGSとWEB SEND FILEコマンドでもサポートされています。
上記の HDI をダウンロードして、この新しいタグで遊んでみてください。