绿豆.Net

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

辅助数据源返回本地的结构会影响脚本和规则
辅助数据源返回本地的数据结构很重要,如果查询Xpath路径变了,那么规则和脚本里引用这个辅助数据源的路径都得改。
在做表单时,经常会用到外界数据,可以通过web service获取。重要的是:拉到本地的数据结构可能会与原始数据里的数据结构不一样。
一般体现在,设计时拉到本地的数据结构与运行时真正拉到本地的数据结构不一样,这样就导致不能正确找到目标,而这种情况是不好找到错误的。

解决的办法:设计时最好能够拉到与运行时一致的数据结构。
一般这种情况会很隐蔽,看上去数据结构一样,但是其中某些结点实际运行时是重复节,但设计时拉进来的是非重复节。

字段类型注意
今天发现了一个怪问题,对一个字段进行赋值时,输的是小数,可是会自动变为整数,而且这个字段类型还是字符型的。后来才发现先把字段类型换成其它类型,再换回字符型就可以了。没有道理呀。反正这个不成文的规矩记住就可以了。

格式文本框注意
格式文本框可以进行图文混排,不过有时出现保存后再打开有的信息不见了。特别是回车换行,如果全部是在格式文本框里进行输入不会出现这样的错误,但是如果是从外面复制进来的很可能会出现错误。

infopath预览时出现“infopath 无法打法所选表单”解决方法
一般出现这种错误的原因有两种(针对infopath 2007):
1、表单脚本有语法错误
这个错误有时是很难发现的,因为它不会给你指出是哪一行,不过可以打开这个表单,双击就可以了,它会有错误提示信息。

2、连接不到服务器,因为有的表单里到拉辅助数据。
这个可以ping一下服务器,或者预览好的表单看是不是连接不上。

infopath里的相对路径current()
/my:环球/my:汇总统计/my:产品组/my:产品信息/my:库存数量  当前重复表结点current(),那么要取与它同级的结点如下:

current()/../my:产品编号

辅助数据源的数据结构分析,拉辅助数据的原理
infopath中调用web service后辅助数据源的数据结构:

1、调用了Filtration_Width_Different_Forms(参数如下)
dfs:myFields    //(根)
    dfs:queryFields    //(相当于函数参数,服务端的查询条件,调用部分)
        tns:Filtration_Width_Different_Forms   //(具体的web service函数,下面是参数)
            tns:SourceKu
            tns:Xpath1
            tns:FilterKu
            tns:Xpath2
            tns:SourceNode
            tns:FilterNode
    dfs:dataFields    //(相当于执行函数结果,返回数据部分)
        tns:Filtration_Width_Different_FormsResponse  
            tns:Filtration_Width_Different_FormsResult   //(相当于执行函数结果,返回数据部分)
                my:外贸销售
                   my:财务

2、调用了GetData(Name as string,Xpath as string)
dfs:myFields    //(根)
    dfs:queryFields    //(相当于函数参数,服务端的查询条件,调用部分)
        tns:GetData   //(具体的web service函数,下面是参数)
            tns:Name
            tns:Xpath
    dfs:dataFields    //(相当于执行函数结果,返回数据部分)
        tns:GetDataResponse  
            tns:GetDataResult   //(相当于执行函数结果,返回数据部分)
                my:外贸销售
                   my:财务

不管调用什么方法,返回结构类似。

/////////////////////////////////////////////////////////////////////////////////////
下面是调用web service返回的命名空间:

  <?xml version="1.0" encoding="utf-8" ?>
  <my:外贸销售 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="http://schemas.microsoft.com/office/infopath/2003/myXSD" xmlns:tr="http://schemas.microsoft.com/office/infopath/2003/sample/TravelRequest" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:ns2="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-05-30T00:40:51" xmlns:ns1="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-07-20T06:01:42" xmlns:ns4="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-08-12T00:41:12" xmlns:ns5="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-08-14T01:23:01" xmlns:dfs="http://schemas.microsoft.com/office/infopath/2003/dataFormSolution" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:ns6="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-05-23T07:44:28" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" />
/////////////////////////////////////////////////////////////////////////////////////

字段的数值类型显示与真实值
如果一个字段是Double型,保留二位小数,那么当值为1.23456789时,显示在视图上的是1.23,而真实保存在xml数据库中是字符串1.23456789。

非字符型字段在脚本中赋值时注意
在脚本中对非字符型字段a进行赋值时,会出现如下错误:
'#PCDATA' 处于零内容中: <{http://schemas.microsoft.com/office/infopath/2003/myXSD/2006-05-23T07:44:28}a>。

如果一定要在脚本中对a进行赋值,可以在设计时就给它一个默认值,这样在脚本中赋值时就不会出错了。也可以不给默认值,但是在执行脚本前的规则中要给a赋值。

字段默认值在打开时不见了
字段默认值在打开时不见了,这个只针对于默认值是函数的情况。如果真的想要在找开时赋值,可以在打开规则里直接对这个字段赋值。

infopath模板文件名与ID
每个模板都有一个唯一ID号,而这个是根据模板的文件名来组成的。

在infopath菜单:文件>属性里可以查看并设置
表单模板属性:
名称:wm_数据分析
ID:urn:schemas-microsoft-com:office:infopath:wm---6-:-myXSD-2006-05-23T07-44-28
说明:可选

urn:schemas-microsoft-com:office:infopath:wm---6-:-myXSD-2006-05-23T07-44-28这个可以确定一个模板。


posted on 2007-07-05 17:08  杜军  阅读(821)  评论(0)    收藏  举报