最近几天接触微软的  InfoPath 表单工具,结合VS 使用,遇到的一些问题与解决方法,记录一下,百度上的内容很少,或许我根本不知道咋搜,所有也留一个网页帮助自己使用当然使用的时候碰到了好几个坑:

  限制: infoPath 只支持 VS 2012 这个版本的,我安得 2013 不能用哎

      在 ‘开发工具’ --‘代码编译器’  会让你安装一个 vs2012 Tools 必须安装,因为要用这个功能开发

     就是 infoPath 表单文件  不要直接打开 会告诉你签名啥的,   不要慌 关了,右键点击设计一定要

     vs中 加断点,提示断点无法命中,注意保存infoPath 的时候 一定不要出现 中文,原因在这里。

页面元素:

  像微软的东西大概使用方法都是差不多的,快捷键啥的,新建文件就不说了,按部就班的点就可以了。表单工具吗,首先就是创建表单,创建一些控件,就像winForm一样使用,在表单上点击产生此对象,按钮,下拉框,文本框这类的。

  控件生成之后 就可以右键点击控件先说

  文本框属性: 默认值、文本框大小、文本框类型、是否为空 、、、这样一些列的设置。

  更改控件类型: 修改控件类型 如变成多选按钮啥的。

  更改绑定: 这个就可以理解为绑定一个域元素,也就相当于一个公共变量。 软件右侧会出现 域 操作窗口,里面包括当前 表单 myFields 对应的 域元素。

域元素:

然后就是域元素的,  其中的域元素可以拖拽到表单中生成对应类型的 控件,当然可以把 所有 域元素 放到myFields文件下,也可以像这样分组放开, 右键myfields 可以添加 分组或者控件。本人还是比较建议直接放到myFields 文件下,这样以后使用会简单的多,就是会看起来比较乱。

  当这是右键域元素时:我感觉最重要的3个点就是 规则,属性,复制Xpath,

  规则:就是制定 域控件中的 逻辑判断,比如值不能大于多少啥的。

  属性:这个则跟之前 右键控件 基本相同。

  复制Xpath: 这个东西很简单 ,你点击一下然后 复制在文本上,你就可以看出是个路径:/my:myFields/my:UserInfo/my:Submitter.Name  也就是以后再vs中 获取域元素时使用的路径(仅限于多层组的情况下)

  

  我使用过的控件 感觉有一些注意的就是 :

  下拉列表:需要从下拉列表属性 中设置一下 从外部数据源获取,选择添加 ,选sql server,之后就一直点,然后就是 配置值跟 显示名称。

  按钮: 一般情况下  的控件事件都是 change 事件, 按钮是单机事件需要 在按钮属性中  编辑代码,然后会在vs中自动生成。

  重复表: 这个一边用在 添加多条数据, 会自动生成一个大组,包一小组,获取 值使用foreach,还是获取节点到 小组 ,

 XPathNodeIterator NodeIter = this.MainDataSource.CreateNavigator().Select("/my:myFields/my:组1/my:组2", this.NamespaceManager);

然后便利这个值

            foreach (XPathNavigator myf in NodeIter)
{
XPathNavigator n1 = myf.SelectSingleNode("my:域1", NamespaceManager);
XPathNavigator n2 = myf.SelectSingleNode("my:域2", NamespaceManager);
XPathNavigator n3 = myf.SelectSingleNode("my:域3", NamespaceManager); }

注意 类型,便利的值, 直接填my: 域元素。   这时有个疑惑不过加了断点就没问题了,   当增加多个表行 之后 获取 元素值,都在myf 中 ,便利一次为一行。

下拉列表级联

  前一阵子涉及到下拉列表级联问题,目前我本人 学会两种方式,能完成类似省份,市县 的这种关系。

  第一种: 用 页面中下拉列表属性中的 数据库数据源 中的“项”来 添加数据筛选,  第一list 为主,他的值作为第二个list 筛选的依据,不过 这样第二个列表的value和Key 都会只能选择 筛选项的 值。

  第二种:就是用代码了  通过list 的change 事件   来获取当前list的 值,  再获取list2 的 Navigator 对象 ,赋值这样。看代码一下吧

        public void Trusit_2E_abilityType_Changed(object sender, XmlEventArgs e)
{
// 在此处编写代码,用于更改主数据源。
        获取list 2 的对象,然后之set为“”
//从数据库取得列表
AdoQueryConnection myAdoQueryConn = (AdoQueryConnection)(this.DataConnections["表名"]); myAdoQueryConn.Command = " select id,name from 表名where parent='" + e.NewValue + "' order by name ";
myAdoQueryConn.Execute(); }

第二种 就有个 疑问就是 他如何付给list2 值 的,一直不太清楚

.Net 关于 InfoPath 的基本使用的更多相关文章

  1. infopath发布的提示“无法解析SOAP消息”(The SOAP message cannot be parsed)问题解决方案

    最近发现一个列表数据过大,每次发布infopath表单提示如下错误: 后来发现一个infopath表单通过list.asmx and Formsservice.asmx来进行发布的. This err ...

  2. InfoPath错误,此文档库已被重命名或删除

    在使用InfoPath发布表单,发布到SharePoint服务器报错,如下介绍: 环境:Windows 2012 DateCenter + Sql 2012 + SharePoint 2013 + O ...

  3. 如果你的SharePoint出现了,状态服务问题,InfoPath无法正常使用

    Create a new ‘State Service’ Service Application using Powershell February 14, 2012Leave a commentGo ...

  4. SharePoint 2013 图文开发系列之InfoPath入门

    本文主要介绍SharePoint 2013中,简单发布InfoPath表单,并添加后台代码,示例比较简单,主要描述的是一个创建InfoPath的过程,而非多么深奥的后台代码,希望能够给初学者带来帮助. ...

  5. [Infopath]使用jquery给infopath表单的的field赋值。 how to set value to Infopath field by Jquery

    客户有个需求,需要在infopath表单中嵌入一段我们自己的东西,计算后要更新infopath某一个field. 1. 怎么去获取到那个field 由于infopath生产的html非常的复杂,嵌套太 ...

  6. 安装InfoPath 2013后 SharePoint 2010 出现 “找不到 Microsoft.Office.InfoPath, Version=14.0.0....” 的错误的解决方案

    1. 症状 您的SharePoint 2010的服务器是不是最近一直出现这个错误呢? Could not load file or assembly 'Microsoft.Office.InfoPat ...

  7. infopath重复表格无法保存输入内容

    现象: infopath重复表格无法保存文本输入内容,可以保存日期控件输入内容 原因: 在重复表中添加格式类型规则导致无法保存.

  8. Sharepoint+Office Infopath+快速搭建问卷调查系统

    项目背景 要开发供公司内部使用的N多个在线调查问卷,要求信息在统一的平台上方便跟踪及管理. 公司内部上了Sharepoint系统及大家习惯了使用infopath及Quick app for share ...

  9. 【HOW】如何手工编辑InfoPath文件

    因为直接打开InfoPath的配置文件进行编辑会有些无从下手,所以下面以修改“节”的Margin为例来说明手工编辑InfoPath文件的过程. 1. 新建一个“节”,并在此节中创建一个数字类型字段“n ...

  10. InfoPath中用户数据类型结构解析

    由于缺少对“用户”数据类型结构的明确定义,在设计InfoPath表达式时往往会耗用大量时间尝试,而且不一定能得到期望结果.下面对用户数据类型的结构进行详细解析. >> 什么是用户数据类型 ...

随机推荐

  1. JS--我发现,原来你是这样的JS:面向对象编程OOP[2]--(创建你的那个对象吧)

    一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 ...

  2. nodejs a和b文件相互引用

    //取自于node中文网 http://nodejs.cn/api/modules.html 当循环调用 require() 时,一个模块可能在未完成执行时被返回. 例如以下情况: a.js: con ...

  3. 重构手法之Split Temporary Variable(分解临时变量)

    返回总目录 本小节目录 Split Temporary Variable(分解临时变量) Remove Assignments to Parameters(移除对参数的赋值) 6.6Split Tem ...

  4. android引入百度地图之最简单的例子-HelloBaiDuMap

    开发工具 我用的是eclipse,目前这是开发android用的最多的一个工具. 开发准备 首先需要在百度地图开发平台上下载所需要的文档和功能,由于最新版的3.0.0的不是很熟悉,我这里用的是稍旧一点 ...

  5. SSH框架基础

    首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...

  6. SQL知识目录

    SQL理论知识 -------理论知识总结 -------理论知识总结 -------理论知识总结 -------理论知识总结 -------理论知识总结 -------理论知识总结 -------理 ...

  7. 基于Flink秒级计算时CPU监控图表数据中断问题

     基于Flink进行秒级计算时,发现监控图表中CPU有数据中断现象,通过一段时间的跟踪定位,该问题目前已得到有效解决,以下是解决思路:   一.问题现象       以SQL02为例,发现本来10秒一 ...

  8. SVN服务器

    什么是SVN服务器? 1.协助多人开发的代码管理器: 2.会记录代码是谁写的,并且可以回退到任意版本: 3.冲突解决: 4.升级(项目分支). SVN的搭建: 1.在服务器端下载SVN服务器,一个项目 ...

  9. 拆分字符and读取properties文件

    在方法里面建立properties对象 Properties pps = new Properties(); 调用.load()方法 pps.load(new FileInputStream(&quo ...

  10. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十六节--SignalR与ABP框架Abp.Web.SignalR及扩展

    SignalR简介 SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指 ...