我为分配给用户的每个角色创建任务。每个角色都有多种资源。我需要为每个资源添加动态组合框到工作流自定义任务表单。组合框将包含所有帐户。这可以通过自定义信息路径任务表单实现吗?
甚至可以在 infopath 任务表单中添加代码(是否需要管理员批准)?
我为分配给用户的每个角色创建任务。每个角色都有多种资源。我需要为每个资源添加动态组合框到工作流自定义任务表单。组合框将包含所有帐户。这可以通过自定义信息路径任务表单实现吗?
甚至可以在 infopath 任务表单中添加代码(是否需要管理员批准)?
可以将代码添加到自定义 InfoPath 任务表单。应该只确保 dll 与表单一起部署。
也可以在重复表中添加组合框(所有组合框具有相同的数据源)。重复表的行是在 PageLoad 上创建的,并且它的数据是通过将其作为 XML 嵌入到 Form 字段中从 Workflow 提供的。
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");
}
}