2013-01-04 48 views

回答

0

可以將代碼添加到自定義InfoPath任務表單。人們應該確保dll與表單一起部署。

也可以在重複表中添加組合框(所有組合框都具有相同的數據源)。用於重複表格的行在PageLoad上創建,其數據通過工作流提供,方法是將其作爲XML嵌入到「表單」字段中。

public void InternalStartup() 
    { 
     EventManager.FormEvents.Loading += new LoadingEventHandler(FormEvents_Loading); 
    } 

    public void FormEvents_Loading(object sender, LoadingEventArgs e) 
    { 
     string myNamespace = NamespaceManager.LookupNamespace("my"); 

     XPathNavigator repTable = MainDataSource.CreateNavigator().SelectSingleNode("/my:RoleAssigmentExecution/my:Resources", NamespaceManager); 
     if (repTable == null) 
     { 
      XPathNavigator node = MainDataSource.CreateNavigator().SelectSingleNode("/my:RoleAssigmentExecution", NamespaceManager); 
      using (XmlWriter writer = node.AppendChild()) 
      { 
       writer.WriteStartElement("Resources", myNamespace); 
       writer.WriteEndElement(); 
       writer.Close(); 
      } 

     } 
     repTable = MainDataSource.CreateNavigator().SelectSingleNode("/my:RoleAssigmentExecution/my:Resources", NamespaceManager); 
     if (repTable != null) 
     { 
      using (XmlWriter writer = repTable.AppendChild()) 
      { 

       XPathNavigator inst = MainDataSource.CreateNavigator().SelectSingleNode("/my:RoleAssigmentExecution/my:Instructions", NamespaceManager); 
       writer.WriteStartElement("ResorceAccounts", myNamespace); 
       writer.WriteElementString("resource", myNamespace, inst.Value); 
       writer.WriteElementString("accountCombo", myNamespace, ""); 
       writer.WriteEndElement(); 

       writer.Close(); 
      } 
     } 
     else 
     { 
      string path = "/my:RoleAssigmentExecution/my:Remarks"; 
      XPathNavigator node = MainDataSource.CreateNavigator().SelectSingleNode(path, NamespaceManager); 
      node.SetValue("can not access Repeating Table"); 
     } 
    } 
相關問題