0

ODK Opendatakit の修正に取り組んでいます。ODK は XFORMS を使用してデータから入力を取得し、データを使用して XML インスタンスを作成します。次に、このインスタンスがサーバーにアップロードされます。私が達成したいのは、データ キャプチャーからの入力に基づいて、ローカル データベースから一部のデータを自動補完することです。たとえば、ID が入力された場合、その ID はローカル データベースから検証され、存在する場合は、いくつかの定義済みフィールドが自動入力されます。ID が存在しない場合は、ID を確認するようにメッセージが表示されます。

ローカル データベースからのエントリを検証し、入力するフィールドの値を ODK XML インスタンスに返すウィジェットまたは別のアプリを使用することを提案されました。私が得られないのは、ODK のインスタンス セッションに値を渡す方法です。

4

1 に答える 1

0

私は ODK を使用したことはありませんが、XForms に関するいくつかの作業を手伝うことができるかもしれません。

XForms のデータ転送は、RESTful XML Web サービスと密接に結びついています。あなたの説明から、相互作用パターンは次のようになると思います。

  • inputIDのフィールドを作成します。instanceこれ (およびサーバーに送信する必要がある他のすべてのデータ) をXFormのメインに格納します。
  • その入力フィールドの「xforms-value-changed」または「DOMFocusOut」イベントのいずれかにバインドされた を作成しますaction(xforms-value-changed はすべての変更でトリガーされますが、DOMFocusOut はユーザーが実際にフィールドを離れたときにのみトリガーされます。使用するユーザー エクスペリエンスやサーバー側の機能によって異なります)。
  • この 内で、入力フィールドに入力された ID を含むmain を使用して、サーバーに対してactiona を実行します。submissioninstance
  • 次に、サーバーは、必要な値がすべて入力された、フォームのスキーマに一致する XML ドキュメントでこの要求に応答する必要があります。
  • メインにsubmission設定してください。replaceinstance

もちろん、これは非常に高いレベルの要約です。

コード例は次のとおりです。

http://en.wikibooks.org/wiki/XForms/Suggesting_Items

正確にはあなたが求めているものではありませんが、多くの同じ特徴があります。テキスト フィールドにテキストを入力し、そのテキストを Web サービスに送信し、Web サービスからの応答を使用してフォーム内のモデルを更新します。

于 2012-06-24T02:55:11.207 に答える