AFormsでは自動見積で条件分岐を実現するのに「ラベリングロジック」という独自の方法を使っています。
基本的な考え方は「ユーザーが何か特別なことをしたら、ユーザーにぺたっとラベルを貼る」。そして「ユーザーに貼られているラベルを見て、フォーム部品をコントロールする」というものです。
実例で説明するのが分かりやすいと思いますので、例を挙げていきます。
例1:特定の選択肢を選んだユーザーにだけ、後の項目で追加の選択肢を提供したい
たとえば、DELLのようなBTOパソコンのカスタマイズフォームで、Windows10 Proを選んだユーザーだけがメモリを32GB以上にできる、というようなロジックです。
この場合、OSの選択の際に、Windows10 Proが選ばれたらユーザーに「pro-edition」というラベルを貼りつけるようにします。そして、メモリの選択の際に、「pro-edition」ラベルが付いてい場合だけ32GBのメモリを選べるようにします。
実際にこの形でフォームを作るには、Wondows10 Proの選択肢の「ラベル」に「pro-edition」と記入し、メモリ32GBの選択肢の「必要ラベル」にまた「pro-edition」と記入します。
例2:見積金額が一定額以上のユーザーには値引きしたい
この場合は「料金監視項目」を使います。
料金チェッカー項目は、見積金額を監視していて、それが指定した条件を満たしている場合にラベルを貼りつける部品です。
たとえば、見積金額が10万円以上なら「large-price」ラベルを貼りつける、というようなことができます。
特定のラベルが付いているときだけ見積に明細行を追加するには「自動項目」を「必要ラベル」付きで使います。
たとえば、名前を「値引き」、金額を「-5000円」、必要ラベルを「large-price」とすると、「large-price」ラベルが貼られたユーザーにだけ、値引き名目で-5000円の明細行を追加できます。
ラベルと部品
AForms2.1.0時点の情報です。
ラベルを貼るのに使える部品
- 選択肢
選択項目の選択肢は、ユーザーがその選択肢を選んだときにラベルを貼れます。貼りたいラベルの名前を「ラベル」欄に入力してください。 - 料金監視項目
見積額が特定の条件を満たす場合(〇円以上とか、〇円未満とか)にラベルを貼れます。貼りたいラベルの名前を「ラベル」欄に入力してください。 - 数量監視項目
監視対象に指定した数量が、特定の条件(〇個以上など)の場合にラベルを貼れます。貼りたいラベルの名前を「ラベル」欄に入力してください。
なお、「ラベル」欄にラベルを2つ以上書いた場合、それらすべてがユーザーに貼られます。
ラベルでコントロールできる部品
- 自動項目
自動項目はユーザーに入力欄を見せずに明細行を追加できる部品ですが、ラベルでコントロールできます。「必要ラベル」欄にラベルの名前を書くと、そのラベルが貼られている場合にのみ明細行を追加するようになります。 - 調整項目
調整項目は自動項目に似ていて、ユーザーに入力欄を見せずに割引・割増の明細行を追加できる部品です。調整項目もラベルでコントロールできます。「必要ラベル」欄にラベルの名前を書くと、そのラベルが貼られている場合にのみ明細行を追加するようになります。 - 選択肢・数量付き選択肢
選択項目の選択肢と数量付き選択肢はラベルでコントロールできます。「必要ラベル」欄にラベルの名前を書くと、そのラベルが貼られている場合にのみ選択肢が有効になります。(ラベルが貼られていないと選択できなくなります) - 数量項目・スライダー項目
数量項目とスライダー項目は、共にユーザーに数量を入力してもらうための部品です。これらもラベルでコントロールできます。「必要ラベル」欄にラベルの名前を書くと、そのラベルが貼られている場合にのみ項目が表示されるようになります。 - ストップ
ストップはフォームの送信をブロックするための部品です。これもラベルでコントロールできます。「必要ラベル」欄にラベルの名前を書くと、そのラベルが貼られている場合にフォームの送信がブロックされるようになります。
なお、「必要ラベル」欄にラベルを2つ以上書いた場合、それらすべてが貼られていないと、条件を満たしたことになりません。
ラベルの仕様
- ラベルに使える文字は英語、数字、ハイフン「-」、アンダースコア「_」(すべて半角)です。ラベルの前後に付いた半角スペース「 」はラベル名から除去されます。
- ラベルを複数書く場合は半角カンマ「,」で区切ってください。
ラベルの否定
ラベルを読み取る場面で、ラベルの否定を使えます。通常は「ユーザーにラベルXが貼られている場合」ですが、否定を使うと「ユーザーにラベルXが貼られてない場合」とすることができます。
ラベルを否定するには、そのラベルの前に!
(半角のビックリマーク)を付けてください。
ラベルが複数ある場合、たとえばA, !B, C
は、「Aかつ、Bでないかつ、Cの場合」という意味になります。
否定はラベルを読み取る場面(部品をラベルでコントロールするとき)にしか使えませんのでご注意ください。
部品でラベルを貼るときに否定を使うことはできません。