zoukankan      html  css  js  c++  java
  • Infopath Form Service示例:如何在InfoPath表单中引用SQL SERVER 中的数据?

    1 为什么要这么做,要引用后台的数据干嘛?

    当你打开一个基于浏览器的表单时,表单中的一些下拉式控件,比如"商品类型","材料规格",你可能不希望读者自己输入,而希望直接从系统原有的SQL SERVER中的"商品类型表"读取。
    或者,你希望完成一些"自动填写"操作,比如当输入完"客户名称"时,"客户地址"一栏就会根据系统原有数据自动填写完成。

    2 基于InfoPath Form Service来引用后台数据库有什么注意的?

    基于网页的表单,根据SDK文档,你只能引用“只读”而不是提交的数据。也就是说,如果你想把表单直接回填到数据库,你不能直接通过Infopath的无代码设计,必须做Event Handler、工作流、或是改用InfoPath方式。

    3 这个过程InfoPath Form Service做了一个什么事情?

    当用户打开这个表单的时候,InfoPath Form Service服务器自己,会以当前用户身份,登录SQL 服务器,用SQL把数据取回来。然后通过浏览器呈给使用者。

    自己:这很重要,因为这表明,当打开InfoPath的表单时,是服务器自己去读数据,而不是使用IE客户端。

    当前用户身份:这更重要,因为你需要手动在SQL SERVER,数据库下的“安全”“用户”里面,建立一个以“使用者名称”为登录名的用户,并给这个用户Sys_DataReader的架构和权限。

    *我就是因为没有意识到这个问题,在用Admin调试完了后,交给用户使用而不成功,白白浪费了一个上午。

    4 额外做的一个些事情:

    需要调整网站结构,“网站所有内容”->“新建”->“数据连接库”

    如上所说,进入SQL SERVER,把将来使用该表单的用户加入数据库的,并赋于读取权限。

    做这个事情主要是为了存储,SQL的连接文件。

    5 主要步骤:

    “工具”->“数据连接”->“添加”->数据连接向导中选“新建连接”下的“仅接受数据”点击“下一步”->选“数据库(仅SQL Server)”->点“选择数据库”按钮->会弹出“选取数据源”,你可以“新建一个SQL连接”,然后会弹出一个数据连接向导,你如提示建立好一个SQL连接并且要“连接到指定表格”(步骤省略),完成这些后你的“数据源”除了“主”会多一个“辅助数据源”,名称就是你刚才建立连接设定的名称。

    重要的一步,做好这些后,进入“数据连接库”(名称你建立的时候任意命名),在你的电脑上“我的文档”下有一个“我的数据源”下面有你刚才通过InfoPath建立的这个数据连接文件一般是ODC扩展名。把这个文件上传到库里。

    然后:在“工具”->“数据连接”->选中你的那个SQL数据源,点击“转换...”,在对话框中可以指定那个数据连接文件,请点击“浏览”,选中你的SharePoint数据连接库中的那个上传的文件。

    很重要的一步: 进入那个数据连接库,把库中的一个以Odc和一个udcx为扩展名的文件(转换时生成的)全部设置为“批准”

    6 如何把数据连到控件上:

    以列表为例:双击列表控件,在“数据”选项卡上,选择“从外部数据源查找数据”,下面依提示选择好。就OK拉。

    还可以使用“规则”,比如在“用户号”一栏使用“赋值”规则, 来完成“用户名”的自动填写:

    当用户号更改时,
    把辅助数据源的“用户名”字段值赋值给“用户名”文本框域
    筛选条件是:辅助数据源的“用户号”字段值=“用户号”文本框。


    7 按正常程序发布到InfoPath表单库里就OK拉。

  • 相关阅读:
    HDU 4611 Balls Rearrangement 数学
    Educational Codeforces Round 11 D. Number of Parallelograms 暴力
    Knockout.Js官网学习(简介)
    Entity Framework 关系约束配置
    Entity Framework Fluent API
    Entity Framework DataAnnotations
    Entity Framework 系统约定配置
    Entity Framework 自动生成CodeFirst代码
    Entity Framework CodeFirst数据迁移
    Entity Framework CodeFirst尝试
  • 原文地址:https://www.cnblogs.com/dosboy/p/794027.html
Copyright © 2011-2022 走看看