按类型遍历InfoPath字段

本文关键字:字段 InfoPath 遍历 类型 | 更新日期: 2023-09-27 18:12:14

是否有按类型迭代infopath字段的方法?

例如,遍历所有日期字段或所有整数字段等。我试图写一个类,在表单后面的代码执行字段验证,作为OOTB字段验证不工作时,从后面的代码提交表单。我想写一个可以用于任何infopath表单的泛型类。谢谢。

按类型遍历InfoPath字段

您不能仅通过InfoPath表单的XML来做到这一点。
你必须依靠我的模式。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>

一个很大的可能性是与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