ユーザーがフォームの特定の質問に答える正確な時間を知りたいです。これは、CommCareのnow()関数を使用して可能ですか?
たとえば、質問alis_favorite_colorがいつ発生するかを知りたい場合、隠し値alis_favorite_color_timeを作成し、そのHVの表示条件をalis_favorite_color!= ''として設定し、計算条件をdouble(now())として設定しますalis_favorite_color_time HVの出力は?表示条件がTRUEと評価される時間ですか、それともフォームの完成時間ですか?
now()
は、コントロール外のさまざまな時点(フォームの開始、フォームの検証など)で計算されます。
計算条件は表示条件とは無関係に(多少直感的ではない)処理されるため、アプリはフォームに関連するまでnow()
関数の処理を遅らせません。
現在のアプリで説明していることを達成する唯一の方法は、0個の要素で始まる繰り返しを作成し、質問の回答時に条件付きでカウントを1個の要素に設定し、要素のデフォルト値に時間条件を設定することですその繰り返しで。
その繰り返しには、その中に少なくとも1つの質問(非表示の値ではない)が必要ですが、その質問にはfalse()
表示条件を設定できます。
また、ユーザーはover繰り返しをナビゲートする必要があります。 IE:ユーザーがフォームの構造内の繰り返しがある場所をスワイプするまで、now()
はトリガーされません。