0

頭脳明晰なあなたに質問です。特定の動作が必要な SharePoint リスト (Infopath リスト フォームと見なされることを意味します) の Infopath フォームがありますが、それを実現する方法がよくわかりません。

要点は、フォームに 2 つのドロップダウンがあり、最初のドロップダウンの選択に基づいて 2 番目のドロップダウンの値を変更することです。

どちらも同じリストを指しています。リストは次のようになります。

ID, ModuleName, SystemName, PayCode, LineOfBusoness
1, Mod1, Sys1, O, LOB1 
2, Mod2, Sys2, O, LOB2
3, Mod3, Sys3, C, LOB3
4, Mod3, Sys4, O, LOB3

最初のドロップダウンにはペイコードのみが含まれているため、基本的には「O」と「C」です。

2 番目のドロップダウンは、注意が必要な場所です。

2 番目のドロップダウンは、前のドロップダウンで選択された PayCode に基づいて、そのリストからすべての事業部門 (LOB) を表示することです。「O」を選択すると、「O」のペイコードを持つすべての LOB が表示されます。

しかし...「C」を選択すると...システムとモジュールがすでに選択されているフォームにドロップダウンもあります...したがって、選択された値を取得してリストの値を選択します彼らが選んだシステム、彼らが選んだモジュール、そして彼らが選んだペイコードを持っています。

どうやってやるの?私の最初の考えは、コードを使用することでした...しかし、Infopath では、"リスト フォーム" でカスタム コードを使用できないことがわかりました。したがって、次のオプションは、「カスケード ドロップダウン」アプローチを使用することです。これにより、ルールとフィルターを使用してこの動作を実現することもできます。

それはできますか?この問題にどのように取り組むかについて、あなたはどのように考えますか?

事前に感謝します。追加情報が必要な場合はお知らせください。

4

1 に答える 1

0

これを行う1つの方法は、コードビハインドにあります。

最初のドロップダウンを取得し、関連付けられているフィールドを見つけて右クリックし、「変更された」イベントを作成します。

コードビハインドイベントでは、そのフィールドに対してChangedイベントが作成されます。そこで、最初のドロップダウンで現在選択されているアイテムの値を取得できます。その値に応じて、2番目のドロップダウンの内容を変更できます。

これを行うには、元のリストを取得し、「O」または「C」または選択された値を持つすべてのアイテムを選択するSPQueryを実行します。リストのすべてのアイテムに対してlinqまたはforeachステートメントを実行することもできます:)

注:ドロップダウンリストコントロールのプロパティで、プロパティの[ブラウザフォーム]タブで[常に]が選択されていることを確認してください(ドロップダウンリストを右クリックして、これらのプロパティにアクセスします)。

お役に立てれば!

于 2013-03-05T23:51:42.130 に答える