web-dev-qa-db-ja.com

jr:itextロジックを使用して質問の回答を取得し、CommCareのラベルに表示する方法を教えてください。

Jr:itextロジックを設定して、アプリから質問の回答を取得し、ラベルに表示しようとしています。 CommCare documentation の指示に従い、表示するものに正しい質問パスが使用されていることを確認しました。ただし、アプリ上でデバイスを展開すると、jr:itextロジックはすべて[itext:ql_notification_details/patient_type_choicenew-label]として表示されます

このエラーをトラブルシューティングする最良の方法は何ですか?ドキュメントに表示されているロジックを正確に使用している場合、jr:itextロジックに何かが欠けていますか?

1
Claire C

ラベルにanswersを表示しようとしている場合は、このようなもので直接参照できるはずです(question_idはask_thisです)

<output value="/data/ask_this" />

後の出力で選択肢のlabelを表示する場合(たとえば、選択肢の値をケースプロパティとして保存しているが、使用されているラベルとは異なるため、選択的に表示する必要がある場合)ラベルを後でもう一度、このようなもの:

<output value="jr:itext(concat('ask_this-', /data/ask_this, '-label'))" />

編集:質問が最上位にない場合、そのようなパスを反映する必要があります:folder/ask_thisおよび/ data/folder/ask_this
さらに、これを非表示変数として保存する場合(計算条件で使用する場合など)、「出力値」ラッパーを削除し、二重引用符の間のビットのみを使用します(二重引用符)

つまり、/ data/hereコンポーネントがnullである場合、「エラー」は実際にはjr:itextフレーズの出力のように見えます。多分あなたは私がやったことをやったことがあります:多肢選択式の質問からフィードを設定し、エラーがあると思ったのですが、それは実際にはまだ答えを選択していないからですか?

さらに、「_ choicenew」の後に、または「label」の前にダッシュがない場合があります。これは、「null」エラーを作成した場合、ダッシュが2つ表示されるのではなく、 1。

私のための他の非面倒なトラブルシューティングは、ドキュメントの最後まで読んで、すべての「プレースホルダー」テキストを置き換えていないことに気づきました(あなたの質問を調査するのにかなりの時間を費やしました) 質問)。

さらに、「ソースXMLの編集」オプションを使用して生のXMLを開き、jr:itextが生のコードに実装される方法を確認しました。

3
Derek

出力(ラベルテキスト)非表示の値を保存している場合は、「出力値」を含める必要はありません。

代わりに、次を使用します。

jr:itext(concat('ask_this-', /data/ask_this, '-label'))
2
Nele Groosman