我已经将自定义列表表单转换为使用SharePoint Designer使用InfoPath表单,现在我想将其还原并返回到正常的"新建","编辑"和"详细信息"表单.我怎样才能做到这一点?
编辑:这是我做的
现在我想撤消我所做的并返回正常的New,Edit和Details表单
最近我一直在尝试实现一些从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) 我需要创建一个执行以下操作的XPath表达式:
这是一些示例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和意识到,可以提供任何帮助.
我试图通过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
我正在尝试为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吗?
环境:SharePoint 2013 Online和InfoPath表单2013
我尝试使用REST API进行数据收集,并使用按钮来触发操作.
当我预览表格并第一次按下按钮时,我得到如下错误
无法为以下DataObject运行查询:Dev InfoPath中的文档无法运行指定的查询.
该文件不是有效的XML文件.
由于InfoPath正在脱机模式运行,因此无法检索某些表单数据.表单元素(如下拉列表)可能为空.确保您具有网络连接并且InfoPath处于联机模式.
当我第二次单击该按钮时,它可以接收数据.
当我将表单发布到SharePoint时,每次按下按钮时都会出现错误
无法找到此表单正常运行所需的XML数据.
已在服务器的Windows事件日志中添加一个条目.
记录ID:5566
任何的想法??
当我直接访问REST API链接时,我可以获得正确的数据.
将InfoPath 2007 Forms从设计器部署到我们的开发环境的SharePoint服务器中真的很痛苦.我们所有的表单都需要"完全信任",因为它们包含用C#编写的业务逻辑.以下是手动步骤:
1)在InfoPath中运行"发布表单"向导,指定要发布到的目标站点以及保存xsn文件的位置.
2)从网站集功能中取消激活表单的现有版本(如果存在旧版本).
3)在开发服务器上登录Central Admin.导航到"应用程序管理" - >"管理表单模板"并上载xsn文件.
4)激活表单作为网站集功能.
有谁知道如何自动化?也许通过stsadm?
有没有办法通过Forms Server 2007呈现的InfoPath 2007表单的CSS样式?它似乎有点像"黑匣子",但Infopath客户端的格式化选项非常有限.
有谁知道在SharePoint 2010中存在打印infopath表单的选项(在我的情况下是自定义列表表单)?
在MOSS中,这个功能开箱即用,但要么我缺少一些非常简单的东西,要么我的环境没有正确设置.
有没有人有任何可以提供的建议?
干杯
我有一个代码,它将读取一些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) infopath ×10
c# ×3
sharepoint ×3
xml ×2
css ×1
deployment ×1
if-statement ×1
linq-to-xml ×1
stsadm ×1
unmanaged ×1
xpath ×1
zip ×1