标签: infopath

如何将SharePoint 2010列表表单从InfoPath重置为默认表单?

我已经将自定义列表表单转换为使用SharePoint Designer使用InfoPath表单,现在我想将其还原并返回到正常的"新建","编辑"和"详细信息"表单.我怎样才能做到这一点?

编辑:这是我做的

  1. 在SharePoint Designer 2010中,我单击了列表和库
  2. 单击我修改的列表
  3. 在功能区中,我在"操作组"的"InfoPath"中选择"设计表单"
  4. 我开始按照自己的意愿设计表单
  5. 我发布了对列表的修改

现在我想撤消我所做的并返回正常的New,Edit和Details表单

sharepoint infopath sharepoint-designer sharepoint-2010

12
推荐指数
2
解决办法
6万
查看次数

在内存中从.CAB存档或InfoPath XSN文件中提取的最小C#代码

最近我一直在尝试实现一些从InfoPath XSN文件(.CAB存档)中提取文件的功能.在广泛搜索互联网之后,似乎没有本地.NET API.所有当前的解决方案都围绕着大型库,即托管的C++,它包含了Cabinet.dll.

可悲的是,所有这些都违反了我的公司"没有第三方图书馆"的政策.

从2.0开始,.NET获得了一个名为UnmanagedFunctionPointer的属性,该属性允许使用__cdecl进行源级回调声明.在此之前,__ stdcall是镇上唯一的节目,除非你不介意捏造IL,这种做法在这里也是非法的.我立即知道这将允许为Cabinet.dll实现一个相当小的C#包装器,但我无法在任何地方找到一个示例.

有没有人知道使用本机代码执行此操作的方式比下面更清晰?

我当前的解决方案(执行非托管代码,但完全正常,在32/64位上测试):

[StructLayout(LayoutKind.Sequential)]
public class CabinetInfo //Cabinet API: "FDCABINETINFO"
{
    public int cbCabinet;
    public short cFolders;
    public short cFiles;
    public short setID;
    public short iCabinet;
    public int fReserve;
    public int hasprev;
    public int hasnext;
}

public class CabExtract : IDisposable
{
    //If any of these classes end up with a different size to its C equivilent, we end up with crash and burn.
    [StructLayout(LayoutKind.Sequential)]
    private class CabError //Cabinet API: "ERF"
    {
        public int erfOper; …
Run Code Online (Sandbox Code Playgroud)

c# zip infopath unmanaged

12
推荐指数
1
解决办法
5730
查看次数

XPath:默认为'Node A',如果'Node B'不为空,则选择'Node B'

我需要创建一个执行以下操作的XPath表达式:

  • 默认情况下返回'NodeA'内的元素
  • 如果它不为空,则返回'NodeB'内的元素.

这是一些示例XML,以便可以清楚地看到我的目标结构(我正在使用MS InfoPath):

<?xml version="1.0" encoding="UTF-8"?><?mso-infoPathSolution solutionVersion="1.0.0.10" productVersion="14.0.0" PIVersion="1.0.0.0" href="file:///C:\Documents%20and%20Settings\Chris\Local%20Settings\Application%20Data\Microsoft\InfoPath\Designer3\9016384cab6148f6\manifest.xsf" ?><?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.3"?>
<my:myFields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-09-07T14:19:10" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xml:lang="en-us">
<my:NodeASection>
    <my:NodeA>2012-09-13</my:NodeA>
</my:NodeASection>
    <my:NodeBSection>
        <my:NodeBGroup>
            <my:NodeB>2012-09-14</my:NodeB>
        </my:NodeBGroup>
    </my:NodeBSection>
</my:myFields>
Run Code Online (Sandbox Code Playgroud)

此XPath表达式可用于评估NodeB是否存在文本: boolean(//my:NodeB[(text())])

我听说过"Becker方法",但我不确定当两个节点都存在时它是如何应用的.我是新的XPath和意识到,可以提供任何帮助.

xml xpath infopath if-statement

12
推荐指数
1
解决办法
5169
查看次数

多个InfoPath互操作自动化实例

我试图通过Windows服务自动化Office InfoPath 2010的多个并行实例.我知道不支持从服务自动化Office,但这是我的客户的要求.

我可以以并行方式自动化其他Office应用程序,但InfoPath的行为则不同.

我发现只要创建了一个INFOPATH.EXE进程的实例,无论进行多少并行调用CreateObject("InfoPath.Application").与此相反,可以通过类似的机制创建WINWORD.EXE的多个实例CreateObject("Word.Application")

要重现此问题,可以使用简单的控制台应用程序.

static void Main(string[] args) {
    // Create two instances of word in parallel
    ThreadPool.QueueUserWorkItem(Word1);
    ThreadPool.QueueUserWorkItem(Word2);

    System.Threading.Thread.Sleep(5000);

    // Attempt to create two instances of infopath in parallel
    ThreadPool.QueueUserWorkItem(InfoPath1);
    ThreadPool.QueueUserWorkItem(InfoPath2);
}

static void Word1(object context) {
    OfficeInterop.WordTest word = new OfficeInterop.WordTest();
    word.Test();
}

static void Word2(object context) {
    OfficeInterop.WordTest word = new OfficeInterop.WordTest();
    word.Test();
}

static void InfoPath1(object context) {
    OfficeInterop.InfoPathTest infoPath = new OfficeInterop.InfoPathTest();
    infoPath.Test();
}

static void InfoPath2(object context) {
    OfficeInterop.InfoPathTest …
Run Code Online (Sandbox Code Playgroud)

c# infopath windows-services office-automation office-interop

7
推荐指数
1
解决办法
1198
查看次数

InfoPath 2013是否支持Visual Studio 2013?

我正在尝试为InfoPath 2013表单开发自定义代码.我安装了Visual Studio 2013 Professional,但在尝试编辑代码时,我收到以下消息:

The following external components are required to edit your form code. Please install them and try again.

Microsoft Visual Studio 2012
Visual Studio C# Support
Microsoft Visual Studio Tools for Applications 2012
Run Code Online (Sandbox Code Playgroud)

安装了C#支持以及Visual Studio Tools for Applications 2012.

InfoPath 2013不支持VS2013吗?

infopath visual-studio-2013

7
推荐指数
1
解决办法
4893
查看次数

SharePoint 2013 - 使用REST API的InfoPath表单无法获取数据

环境:SharePoint 2013 Online和InfoPath表单2013

我尝试使用REST API进行数据收集,并使用按钮来触发操作.

当我预览表格并第一次按下按钮时,我得到如下错误

无法为以下DataObject运行查询:Dev InfoPath中的文档无法运行指定的查询.
该文件不是有效的XML文件.
由于InfoPath正在脱机模式运行,因此无法检索某些表单数据.表单元素(如下拉列表)可能为空.确保您具有网络连接并且InfoPath处于联机模式.


当我第二次单击该按钮时,它可以接收数据.

当我将表单发布到SharePoint时,每次按下按钮时都会出现错误

无法找到此表单正常运行所需的XML数据.
已在服务器的Windows事件日志中添加一个条目.
记录ID:5566


任何的想法??
当我直接访问REST API链接时,我可以获得正确的数据.

sharepoint infopath

7
推荐指数
1
解决办法
6826
查看次数

如何自动执行将InfoPath表单部署到SharePoint Server 2007的过程?

将InfoPath 2007 Forms从设计器部署到我们的开发环境的SharePoint服务器中真的很痛苦.我们所有的表单都需要"完全信任",因为它们包含用C#编写的业务逻辑.以下是手动步骤:

1)在InfoPath中运行"发布表单"向导,指定要发布到的目标站点以及保存xsn文件的位置.

2)从网站集功能中取消激活表单的现有版本(如果存在旧版本).

3)在开发服务器上登录Central Admin.导航到"应用程序管理" - >"管理表单模板"并上载xsn文件.

4)激活表单作为网站集功能.

有谁知道如何自动化?也许通过stsadm?

deployment sharepoint stsadm infopath sharepoint-2007

6
推荐指数
1
解决办法
3010
查看次数

信息交换形式的CSS样式

有没有办法通过Forms Server 2007呈现的InfoPath 2007表单的CSS样式?它似乎有点像"黑匣子",但Infopath客户端的格式化选项非常有限.

css infopath

6
推荐指数
1
解决办法
9638
查看次数

在SharePoint 2010中打印InfoPath 2010表单

有谁知道在SharePoint 2010中存在打印infopath表单的选项(在我的情况下是自定义列表表单)?

在MOSS中,这个功能开箱即用,但要么我缺少一些非常简单的东西,要么我的环境没有正确设置.

有没有人有任何可以提供的建议?

干杯

infopath sharepoint-2010

6
推荐指数
1
解决办法
1万
查看次数

"':'字符,十六进制值0x3A,不能包含在名称中"

我有一个代码,它将读取一些xml文件.我尝试了不同的方法来解决这个问题,但不能.我也尝试这样编码:

Namespace my = "http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-01-11T08:31:30";                
XElement myEgitimBilgileri = XDocument.Load(@"C:\25036077.xml").Element("my:"+ "Egitim_Bilgileri"); 
Run Code Online (Sandbox Code Playgroud)

但一直都是同样的错误.这是原作:

private void button2_Click(object sender, EventArgs e)
{                               
    XElement myEgitimBilgileri =    
    XDocument.Load(@"C:\25036077.xml").Element("my:Egitim_Bilgileri");

    if (myEgitimBilgileri != null)
    {
        foreach (XElement element in myEgitimBilgileri.Elements())
        {
            Console.WriteLine("Name: {0}\tValue: {1}", element.Name, element.Value.Trim());
        }
    }

    Console.Read();
}
Run Code Online (Sandbox Code Playgroud)

这是我的xml文件的路径:

<my:Egitim_Bilgileri>
        <my:egitimler_sap>
            <my:sap_eduname></my:sap_eduname>
            <my:sap_edufaculty></my:sap_edufaculty>
            <my:sap_eduprofession></my:sap_eduprofession>
            <my:sap_diplomno></my:sap_diplomno>
            <my:sap_edulevel></my:sap_edulevel>
            <my:sap_edustartdate xsi:nil="true"></my:sap_edustartdate>
            <my:sap_eduenddate xsi:nil="true"></my:sap_eduenddate>
        </my:egitimler_sap>
    </my:Egitim_Bilgileri>
Run Code Online (Sandbox Code Playgroud)

这是我在XML中的命名空间的路径

xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-01-11T08:31:30"

xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2008-01-23T00:43:17"
Run Code Online (Sandbox Code Playgroud)

c# xml infopath linq-to-xml

6
推荐指数
1
解决办法
2万
查看次数