using Microsoft.Office.InfoPath;
using System;
using System.Xml;
using System.Xml.XPath;
namespace 模板2
{
public partial class FormCode
{
// 启用浏览器功能的表单不支持成员变量。
// 请使用代码从 FormState 词典
// 写入和读取这些值,如下所示:
//
// 注意: 以下是 Microsoft Office InfoPath 所需的过程。
// 可以使用 Microsoft Office InfoPath 对其进行修改。
public void InternalStartup()
{
EventManager.XmlEvents["/my:myFields/my:group1/my:group2/my:field1"].Changed += new XmlChangedEventHandler(field1_Changed);
EventManager.XmlEvents["/my:myFields/my:group1/my:group2/my:field1"].Validating += new XmlValidatingEventHandler(field1_Validating);
EventManager.FormEvents.Loading += new LoadingEventHandler(FormEvents_Loading);
}
//private bool _isLooped = false;
public void SetNull(XPathNodeIterator iter)
{
while (iter.MoveNext())
{
{
iter.Current.SelectSingleNode("my:field1", NamespaceManager).SetValue("");
}
}
FormState["isLooped"] = true;
}
public void field1_Changed(object sender, XmlEventArgs e)
{
XPathNavigator nav = (XPathNavigator)sender;
if (nav.LocalName != "field1")
return;
if (nav.Value == "")
return;
try
{
XPathNavigator xpn = this.CreateNavigator().SelectSingleNode("/my:myFields/my:group1", NamespaceManager);
XPathNodeIterator iter = xpn.SelectChildren(XPathNodeType.Element);
if ((bool)FormState["isLooped"] == false)
{
SetNull(iter);
nav.SetValue("Y");
}
FormState["isLooped"] = false;
}
catch
{ }
finally
{
}
}
public void field1_Validating(object sender, XmlValidatingEventArgs e)
{
// 在此处编写代码。
}
public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
// 在此处编写代码。
FormState["isLooped"] = false;
}
}
}