1

タイプごとにInfoPathフィールドを反復処理する方法はありますか?

のように、すべての日付フィールド、またはすべての整数フィールドなどを繰り返します。コードビハインドからフォームを送信するとOOTBフィールド検証が機能しないため、フォームの背後にあるコードでフィールド検証を実行するクラスを作成しようとしています。任意のinfopathフォームに使用できるジェネリッククラスを作成したいと思います。ありがとう。

4

2 に答える 2

1

これは、InfoPathフォームのXMLのみでは実行できません。
myschema.xsdに依存する必要があります(このファイルは、xsnファイルの名前をcabに変更して抽出するか、公開メニューから[ソースファイルのエクスポート]を選択することで取得できます)。xsdファイルが作成され、InfoPathフォームでフィールドの名前が一意である場合、次の操作を実行できます。1 -InfoPathフォーム
からファイルの名前を取得する
2-でそのフィールドのデータ型を確認するmyschema.xsdファイル
3-検証を実行します。

要するに、myschema.xsdファイルはデータ型を格納していますが
<xsd:element name="CurrentAccount" nillable="true" type="xsd:boolean"/>
、InfoPathフォームは、いくつかのデータ型に変換される可能性のある値を格納しているだけです(私はそれを文字列として扱います)
<my:CurrentAccount>false</my:CurrentAccount>

于 2011-11-03T08:16:13.103 に答える
0

大きな可能性は、Linqと関係があることです。たとえば、オブジェクトのリストがあり、そこにさまざまなものを配置しますが、文字列を反復処理するだけです。

var fields = new List<object>();
fields.Add(42);
fields.Add("one");
fields.Add(84);
fields.Add("two");
foreach (string s in fields.OfType<string>())
{
    Debug.Print(s);
}

出力ウィンドウが表示されます。

one
two
于 2011-10-25T11:06:18.830 に答える