概要
在 Microsoft Office InfoPath 2003中,不能直接将表单中的域绑定到辅助数据源中的数据。但是,本文介绍如何以编程方式转换辅助数据源中的数据,然后在运行时将转换后的数据传送到主数据源中的域。设计表单
1. | 在 InfoPath 中启动一个新的空白表单。 | ||||||||||||||||||
2. | 切换到“数据源”任务窗格。要向您的表单中添加域,请按照下列步骤操作:
|
||||||||||||||||||
3. | 将“myBook”组从“数据源”任务窗格移到您的表单中,然后单击“重复表”。 | ||||||||||||||||||
4. | 在“数据源”任务窗格中,右键单击“myBookstore”组,然后单击“属性”。 此时出现“域或组属性”对话框。 |
||||||||||||||||||
5. | 选择“明细数据”选项卡,然后记下名称空间。 名称空间将采用以下形式: http://schemas.microsoft.com/office/infopath/2003/myXSD/2003-09-30T04:46:51 单击“取消”关闭该对话框。 |
||||||||||||||||||
6. | 将您的表单另存为 Bookstore.xsn。 |
创建 XML 文件和 XML 样式表
使用 XML 编辑器或文本编辑器(例如记事本)创建 XMLFile.xml 和 XSLTFile.xslt,如下所示:XMLFile.xml
<?xml version='1.0' ?>
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
</book>
</bookstore>
XSLTFile.xslt
<xsl:stylesheet version="1.0"注意:更改 XSLTFile.xslt 中的 my 名称空间以与您在上一节的步骤 5 中创建的名称空间相匹配。
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2003-09-30T04:46:51">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="bookstore">
<my:myBooks>
<xsl:apply-templates select="book" />
</my:myBooks>
</xsl:template>
<xsl:template match="book">
<my:myBook>
<my:myTitle>
<xsl:value-of select="title" />
</my:myTitle>
<my:myISBN>
<xsl:value-of select="@ISBN" />
</my:myISBN>
<my:myGenre>
<xsl:value-of select="@genre" />
</my:myGenre>
</my:myBook>
</xsl:template>
</xsl:stylesheet>
向表单中添加脚本以执行转换,然后将数据传送到表单域
1. | 返回 InfoPath。 Bookstore.xsn 必须以设计模式打开。 |
||||||||||||||||||
2. | 要将 XMLFile.xml 添加为您的表单的辅助数据源,请按照下列步骤操作:
|
||||||||||||||||||
3. | 要将 XSLTFile.xslt 添加为您的表单的辅助数据源,请按照下列步骤操作:
|
||||||||||||||||||
4. | 在“工具”菜单上,指向“脚本”,然后单击“加载事件时”。 Microsoft 脚本编辑器将启动。 |
||||||||||||||||||
5. | 将下面的代码添加到 XDocument::OnLoad 事件处理程序中:
//Update the data in the secondary data source, and then |
||||||||||||||||||
6. | 保存您对脚本所做的更改,然后关闭脚本编辑器。 |
使用 XML 转换测试表单
1. | 在“文件”菜单上,指向“预览表单”,然后单击“默认”。 | |||||||||
2. | 当表单以预览模式打开时,XMLFile.xml 中的数据将使用样式表进行转换,然后表单的内容将被替换为转换结果。InfoPath 预览窗口的输出显示如下:
|
转自:http://support.microsoft.com/kb/827005/zh-cn