代码之家  ›  专栏  ›  技术社区  ›  XOR

MS Outlook-自动扩展表单

  •  0
  • XOR  · 技术社区  · 16 年前

    我需要开发一个Outlook扩展,它能够通过从远程服务器下载的选项卡扩展现有表单。例如,在“约会”窗体中,应显示“其他”选项卡。此选项卡中的表单定义从Web服务下载并使用wpf呈现。此选项卡的数据也来自服务器,并绑定到表单字段。最后一件事-保存表单时,还应将其提交到此远程服务器。

    它应该适用于Outlook2003和2007。

    主要问题有:

    1. 有可能吗?
    2. 读什么才能更快地掌握它?msdn很大,甚至是它的Outlook开发人员部分。
    3. 有样品吗?

    更新

    非常感谢您的回答!当然,有太多不同的问题,所以我必须把它分成几个部分。在阅读了答案并做了家庭作业后,我想继续:

    1. 是的,这是可能的。不过,也许我以后会找到一些水下岩石。
    2. 最好的办法是采取vs 2008并尝试延长。
    2 回复  |  直到 15 年前
        1
  •  5
  •   Ksempac    16 年前

    好吧,你的帖子里有很多问题,我想我有一些答案,但不是全部。不管怎样,你的问题太多了,一篇文章就不能涵盖所有的内容。

    首先要知道的是,与以前的版本相比,Outlook2007有不同的处理方法。因此,您可能需要做两次才能同时使用Outlook2003和2007。

    首先要知道的是有助于搜索所需内容的词汇表。在Outlook 2003中,您将使用自定义表单来创建或扩展表单。在Outlook 2007中,您将使用新的窗体区域。虽然它们在概念上是相似的,但它们是两个不同的东西。

    因为我只在Outlook2007中工作,所以接下来我说的只适用于这个。 您需要有Visual Studio 2005和下载VSTO(Visual Studio Tools for Office)或Visual Studio 2008。

    窗体区域有四种类型之一:相邻、分离、替换或全部替换。相邻是指它显示在默认窗体的底部。分开意味着它是表单中的新“页面”。替换意味着它将替换默认表单的第一页,而全部替换意味着它将替换默认表单的所有页。

    你说你想用标签。在Outlook2007中,您不应该这样做。您应该使用单独的页面,以尊重Outlook2007中的用户界面原则。您可以创建选项卡,但会看到它们看起来非常难看。另一方面,功能区中会显示单独的页面,使您可以轻松地从一个页面切换到另一个页面。

    有两种方法可以设计窗体区域。第一种建议的方法是使用Outlook2007中的设计器:类似于“工具”>“表单”>“创建区域表单”。您可以在这个东西中进行设计,将表单保存为.ofs文件,然后将其导入到Visual Studio中。

    优势:

    • 由微软推荐,所以几乎所有有关定制Outlook2007的资源都使用这种方法。
    • 已准备好的Outlook控件(例如用于保存邮件地址的字段)。
    • 自动绑定到邮件中的用户属性。

    缺点:

    • 粗俗的设计师(很难把事情协调好)。
    • 无论何时更新表单,都必须在Outlook中对其进行修改,然后在Visual Studio中再次上载,这将清除以前的代码。
    • 旧的COM控件,很难使用。

    另一种方法是在Visual Studio中设计一个新的区域窗体。

    优势:

    • 您拥有所有最新的、强大的、WinForms控件。
    • 更好的设计师。
    • 易于更新。

    缺点:

    • 你找不到太多关于它的信息,因为大多数书籍作者只使用Outlook设计器。
    • 您必须自己编写许多在Outlook中被视为理所当然的行为代码(例如,创建一个可以保存和检查多个邮件地址的文本框),这非常痛苦,而且可能很难做到。

    我认为你可以用邮件发送你的自定义表单(至少是在Outlook中设计的表单),但我不确定,因为我从未亲自尝试过。

    对于绑定,您可能可以对事件执行此操作。例如,在保存或发送消息之前会触发一些事件。

    就目前而言,我希望我的回答不会偏离主题,它可以帮助你确切地确定你想做什么。你应该了解一下Outlook允许你做什么,然后就每一点提出更具体的问题。

        2
  •  1
  •   76mel    16 年前

    这是不可能的,正如你所描述的,但你可以找到一些方法。此外,ksempac还指出了许多关于如何在2007年展望中做事情的利弊的好东西。

    为了在2003年和2007年实现这一目标,我认为最好的方法是设计自己的预约表。您可以扩展其中一个选项卡,使浏览器控件显示Web服务中的动态表单。其结果可以送回或与新的Outlook窗体一起保存,以便以后进行呈现/处理。

    实例:

    表单设计示例: http://www.msexchange.org/articles/Designing-Outlook-Forms-Part1.html

    覆盖默认表单: http://support.microsoft.com/?kbid=241235

    在这里和网上有很多关于设计Outlook表单的好东西,你可以在这里问所有的方法。表格上也有几本好书:

    苏莫舍的书和网站是一个很好的起点。Outlook软件

    Microsoft Outlook编程:管理员、开发人员和超级用户的快速启动 (ISBN 1-555-58286-9,数字印刷机)

    Microsoft Outlook 2007编程:超级用户和管理员的快速启动 (ISBN 1-55558-346-6,数字印刷机)

    作为KSEMPAC,你可能需要分解你的问题,边走边问。

    更新 如果您有一些预算外接程序Express http://www.add-in-express.com/ 将减轻部署到2个版本的Outlook的痛苦,并且您可以比手工操作更快地获得生产效率。