65.9K
CodeProject 正在变化。 阅读更多。
Home

将 Microsoft Word 2007 连接到 Office 业务应用程序(OBA)的后端数据库

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.58/5 (8投票s)

2007年9月17日

CPOL

8分钟阅读

viewsIcon

86140

downloadIcon

2773

在此实验中,您将使用拖放功能将控件添加到 Word 2007 模板中,为这些控件构建逻辑,保护控件内容不被编辑和删除,并添加简单的数据绑定到本地数据库。然后,您将向 Word 添加 Fluent Ribbon 以浏览数据。

Screenshot - wordtodb.jpg

引言

Office 商业应用程序 (OBA) 可以成为为用户呈现数据的强大方式。由于几乎所有工作人员都使用 Microsoft Office,您的用户已经熟悉用户界面。但是,如何将来自您的业务线 (LOB) 应用程序的数据引入 Word?在此实验中,您将逐步了解如何将数据引入 Word 文档并提供 Fluent Ribbon 用户界面来浏览这些数据。

本实验分为两个顺序部分。首先,您将 Word 文档中的控件绑定到数据源。接下来,您将使用按钮自定义 Ribbon 以查看数据。

背景

此演示假定您已安装以下内容:

您可以将其他版本的 Visual Studio 与安装了 Visual Studio Tools for Office 的版本一起使用。但 Word 内容控件是 Microsoft Office 2007 的一项功能。此演示也适用于 Windows Server 2003 和 Windows Server 2008,只需对启动 Visual Studio 的方式进行少量更改。

本文假设您在 Access 中有一个数据库。但是,您可以将 Word 内容控件连接到 SQL Server 或数据对象或 Web 服务。您可以使用代码中提供的数据库,也可以构建自己的数据库。

虽然本实验使用 C#,但您可以对 Visual Basic .NET 进行少量更改,以适应本实验。

使用代码

本文的大部分内容是关于如何拖放控件以及几行代码如何在 Word 中构建强大的应用程序。

创建具有绑定到数据库的控件的文档

在此实验中,您将使用拖放功能将控件添加到 Word 2007 模板中,并添加简单的数据绑定到本地数据库。

首先,您将创建一个包含 Visual Studio Tools for Office (VSTO) 项目的解决方案。此模板将允许您的用户根据数据库中的数据选择预定义区域的内容来定制 Word 模板。虽然此演示使用 C#,但您也可以使用 Visual Basic。此过程的目标是在 Visual Studio 中打开 Word 模板。

  1. 单击开始,在开始搜索文本框中键入Visual Studio 2008,右键单击Visual Studio 2008,单击以管理员身份运行
  2. 用户帐户控制对话框中单击继续
  3. 单击文件 --> 新建 --> 项目... 菜单
  4. 新建项目对话框的项目类型面板中,展开Visual C#,展开Office,单击2007
  5. 模板面板中,单击Word 模板
  6. 将位置设置为您的 Visual Studio 2008 项目文件夹,例如C:\Users\bruce\Documents\Visual Studio 2008\Projects
  7. 在名称文本框中键入CCTemplate
  8. 选中为解决方案创建目录
  9. 单击确定
  10. Visual Studio Tools for Office 项目向导中,单击确定
  11. 将出现一个对话框,询问您是否要访问 Visual Basic for Applications
  12. 单击确定

Visual Studio 工具箱包含 Word 控件。您现在可以将控件添加到文档中。

  1. 如果工具箱未显示,请单击视图 --> 工具箱
  2. 展开Word 控件
  3. 单击文档
  4. 键入公司名称,后跟一个空格,然后将RichTextContentControl从工具箱拖到文档中;按 Enter
  5. 键入公司地址,后跟一个空格,然后将RichTextContentControl从工具箱拖到文档中;按 Enter
  6. 键入邀请日期,后跟一个空格,然后将DatePickerControl从工具箱拖到文档中;按 Enter
  7. 单击文档窗格中的保存磁盘图标

您可以调整控件的属性。

  1. 单击公司名称文本后面的RichTextContentControl
  2. 按 F5 运行您的解决方案
  3. 单击每个控件并键入一些数据
  4. 不保存文档,关闭文档

您已添加控件,当这些控件绑定到数据浏览事件处理程序时,将允许用户浏览公司数据库。

您现在可以引用特定数据库并将控件绑定到该数据库。

在 Microsoft Office Access 中创建一个数据库。创建一个名为CompanyDatabase的数据库,其中包含一个名为CompanyInfo的表,该表具有四个列:

  • ID 自动编号
  • CompanyName 文本
  • CompanyAddress 文本
  • InvitationDate 日期/时间

在数据库中输入一些数据。将数据库保存在已知位置,不一定在项目中。

接下来,您可以将 Word 内容控件绑定到数据库,如本例所示,或者您可以将它们绑定到 Web 服务或对象。

  1. 单击数据 --> 添加新数据源...
  2. 数据源配置向导中单击数据库
  3. 单击下一步>
  4. 在“选择连接”面板中,单击新建连接...
  5. 添加连接对话框中,按如下设置项目
    • 数据源:Microsoft Access 数据库文件 (OLE DB)
    • 数据库文件名称为 Access 数据库的位置
  6. 单击确定
  7. 数据源配置向导的“选择连接”面板中,单击下一步>
  8. 当询问您是否要将数据库添加到解决方案时,单击
  9. 在“将连接字符串保存到应用程序配置文件”面板中,选中是,将连接保存为并保留默认连接字符串;单击下一步>
  10. 选择数据库对象中,展开,选中CompanyInfo
  11. 单击完成

Visual Studio 自动创建一个数据集、表适配器和绑定源。您将使用这些元素将控件绑定到数据并操作数据库中的记录。

接下来,将数据绑定到特定控件。使用“属性”窗格中的DataBinding属性。单击Text属性并选择要与内容控件关联的特定数据库记录。您还可以将特定数据元素从“数据源”面板拖放到控件上。

  1. 通过单击属性选项卡使属性窗格可见
  2. 在“属性”面板中,单击公司名称文本旁边的RichTextContentControl
  3. 展开(DataBindings)属性
  4. 展开companyInfoBindingSource
  5. 单击CompanyName
  6. 如果“数据源”窗格不可见,请单击数据 --> 显示数据源
  7. 在“数据源”窗格中,展开CompanyDatabaseDataSet
  8. 展开CompanyInfo
  9. 单击CompanyAddress并将其拖到文档面板中公司地址文本旁边的RichTextContentControl;当您可以将数据源放到控件上时,光标将变为加号,并且控件将突出显示
  10. 单击生成 --> 生成解决方案

为 Word Ribbon 创建数据浏览按钮

接下来,使用两个按钮(“下一个”和“上一个”按钮)自定义 Word 中的 Ribbon,供用户浏览数据。然后,您将事件处理程序添加到每个按钮。

Ribbon 设计器包括一个可视化设计器和一个可扩展性对象模型。Office 回调映射到 VSTO Ribbon 对象上的事件,因此开发人员编写事件处理程序而不是回调方法。

  1. 在解决方案资源管理器中,右键单击 CCTemplate 项目。单击添加 --> 新建项...
  2. 添加新项对话框中,在“模板”面板中单击Ribbon(可视化设计器)
  3. 键入CCRibbon作为名称
  4. 单击添加

您可以在“属性”窗格中设置 Ribbon 的属性,并从工具箱的“Office Ribbon 控件”选项卡将 Ribbon 控件拖放到 Ribbon 上。

  1. 单击属性选项卡使属性窗格可见
  2. 单击TabAddIns (内置)
  3. 标签属性中,键入公司信息
  4. CCRibbon.cs Ribbon 设计器中单击group1
  5. 标签属性中,键入浏览数据
  6. 如果“工具箱”中的“Office Ribbon 控件”尚未展开,则展开它
  7. 按钮从“工具箱”拖到“浏览数据”框中
  8. (名称)属性中,键入btnNext
  9. 标签属性中,键入下一个
  10. 按钮从“工具箱”拖到“浏览数据”框中
  11. (名称)属性中,键入btnPrevious
  12. 标签属性中,键入上一个

您可以通过创建图标并将每个图标添加到作为解决方案一部分的Resources.resx文件中来添加图标。然后,通过从资源文件导入图像来设置图像属性。将ShowImage属性设置为true

当您在 Ribbon 设计器中双击按钮时,将打开 Ribbon 的代码视图,并使您能够添加事件处理程序代码。使用Globals对象访问文档以访问公司数据库的绑定源。

  1. 双击下一个按钮。
  2. 将此代码插入到创建的方法中。
  3. Globals.ThisDocument.companyInfoBindingSource.MoveNext();
  4. 双击上一个按钮。
  5. 将此代码插入到创建的方法中。
  6. Globals.ThisDocument.companyInfoBindingSource.MovePrevious();

现在运行解决方案。

  1. 按 F5
  2. 单击“公司数据”选项卡以查看您创建的 Ribbon 按钮
  3. 单击下一个以查看下一条记录
  4. 单击上一个以查看上一条记录
  5. 不保存文档,关闭文档

关注点

您可以使用很少的代码完成许多 Office 商业应用程序。

您已经了解了如何通过将 Word 2007 内容控件绑定到数据源来浏览数据库或 Web 服务中的数据。您还在 Word Ribbon 栏中添加了一个面板。

后续步骤

接下来,您将需要部署文档。有关各种部署方式的更多信息,请参阅如何:部署 Office 解决方案。您可能会选择发布向导。有关发布向导的更多信息,请参阅如何:使用发布向导部署解决方案文件

结论

特别感谢 Steve Fox 和 Paul Stubbs 的文章:Office UI:新的 VSTO 功能帮助您自定义 Word 和 Outlook

Microsoft、Office、Fluent、Word、Access、Windows、Windows Vista、Visual Studio 是Microsoft 的商标和注册商标

© . All rights reserved.