使用Word模板自定义输出或打印AX订单

时间:2022-05-07 06:24:11

前言:

对于终端用户通称的"报表"其实大体可以分为Statement、Report 和Form,类似合同、订单等这些字段、格式经常改变、打印样式不定的Form单据可以通过Office Word进行输出,以便把开发人员从"画表格"这种即费时间附加值又低的工作中解放出来。

在AX4.0和AX2009中曾经集成了一种通过WORD输出订单或报表的方式:

http://www.cnblogs.com/Farseer1215/archive/2009/03/24/1419180.html

这种方式是通过Word中的Bookmark来进行字段定位,即在AX中为每个要输出的字段定义一个bookmark名称,在Word模板中需要插入字段值的位置也定义bookmark,在创建时AX通过bookmark名称来决定每个值应该写在模板的哪个位置。

这个功能的不足之处是当要输出的字段很多时需要花精力去记录Bookmark名称,否则很容易因为两边名称不一致而出错,并且由于模板与表的关联是在AX的系统管理中操作,通常要AX管理员才有权限操作,因此当打印格式比较多或变化频繁时AX管理员工作量比较大。

AX2012的特色之一是与Office和SharePoint进行了更紧密的集成,通过Office add-ins和SharePoint文档库有了新的输出途径:

系统管理员通过SharePoint建立一个文档库,在AX中将文档库与AX进行连接;模板制作者在Word中通过Office add-ins拖动选择AX中的字段制作模板,再将模板上传到SharePoint文档库中,终端用户就可以在订单等界面选择所需模板进行输出。

因为通常模板由业务部门制作,这样模板制作人员只需要直接与SharePoint进行交互,解放了系统管理,并且由于SharePoint具有权限控制、版本管理(签入、签出)、远程访问等优势,可以避免模板不知道被谁修改这种事情发生。

Contents

1.    创建或检查Query    2

2.    创建Data source    2

3.    创建模板    3

4.    创建SharePoint文档库用于存放模板文件    4

5.    创建Document types    5

6.    上传模板文件到SharePoint文档库    6

7.    同步文档库到AX    7

8.    使用模板    8

9.    查看生成的文档    9

10.    修改模板    10

 

 

  1. 创建或检查Query

     

    确保我们要输出的字段都在Query里,因为下面我要创建一张采购订单,在当前Query里已经包含PurchTable和PurchLine两张表。

    使用Word模板自定义输出或打印AX订单

  2. 创建Data source

     

    1. 打开Organisation administration > Setup > Document management > Document data sources窗体
    2. 创建一个data source
  • Data source type选择 Query reference
  • Data source name选择上一步所确定的Query,
  1. 点击Activate激活当前Data source。

使用Word模板自定义输出或打印AX订单

 

  1. 创建模板

     

    1. 打开Word,新建一个空文档
    2. 定位到Dynamics AX选项卡
    3. 点击"添加数据"
    4. 这时能看到在第2步里所有已经激活的data source
    5. 选择我们现在要创建的Purchase updates项

      使用Word模板自定义输出或打印AX订单

    6. Word左侧会显示Query中的字段,现在就是按照我们需要打印的样式画模板了,字段可以直接拖动到需要显示的位置,如下图。

      使用Word模板自定义输出或打印AX订单

 

  1. 创建SharePoint文档库用于存放模板文件

     

    1. 在SharePoint中新建一个文档库,起一个名字,本例中为AXDocTempLibrary

       

      使用Word模板自定义输出或打印AX订单

       

    2. 记下网站路径和文档库名称,下一步需要用。

      使用Word模板自定义输出或打印AX订单

 

  1. 创建Document types

     

    1. 打开Organisation administration > Setup > Document management > Document types 窗体
    2. 新建一个Type

       

关键字段

值/备注

Class

Template library

Location

设置的是生成的文档存放的方式,本例选择Archive directory,即存放在本地文件夹下,还可以选择保存在SharePointDatabase等其它选项。

Active directory

因为刚才Location选择了Archive directory,所以在此字段设置存放在哪个文件夹,本例选择桌面。

SharePoint site

文档库所在网站,即4.b中所记的内容

Document Library

文档库名称,即4.b中所记的内容

 

使用Word模板自定义输出或打印AX订单

  1. 保存Document types窗体,可以不关闭,后面还会使用。

 

 

  1. 上传模板文件到SharePoint文档库

 

  1. 在浏览器中打开步骤4所创建的文档库,点击"添加文档",选择刚才创建的WORD文件。

    使用Word模板自定义输出或打印AX订单

  2. 点击"确定"上传,这时可以看到上传的模板文件。

    使用Word模板自定义输出或打印AX订单

 

  1. 同步文档库到AX

    1. 打开Organisation administration > Setup > Document management > Document types 窗体
    2. 选中第5步创建的document types
    3. 点击Synchroise,系统开始同步,完成后会提示同步的模板数量,表格中也会显示已经同步成功的模板名称。
    4. 选中要使用的模板,点击Active激活该模板,已经激活的模板Activated复选框是check状态。

      使用Word模板自定义输出或打印AX订单

 

  1. 使用模板

    1. 现在回到采购订单界面
    2. 选中采购订单
    3. 点击Generate from template,可以看到所有激活状态的模板名称,可能会有多个,应用想要使用的。

      使用Word模板自定义输出或打印AX订单

    4. 系统会自动将订单内容输出到WORD中并打开预览

      使用Word模板自定义输出或打印AX订单

 

  1. 查看生成的文档

     

    1. 因为在第5步document types中我选择的文档存放路径是桌面,因此每次生成的文档会存放在我的桌面上。

      使用Word模板自定义输出或打印AX订单

    2. 在采购订单界面点击Attachments中可以看到生成记录(时间、类型、模板名称)

      使用Word模板自定义输出或打印AX订单

 

  1. 修改模板

     

    1. 打开模板原件或从SharePoint文档库下载模板。
    2. 进行增删字段或格式调整,在本例我增加一个明显的UPDATE标识。

      使用Word模板自定义输出或打印AX订单

    3. 按照步骤6再次上传模板,选择覆盖现有文件

      使用Word模板自定义输出或打印AX订单

    4. 按照步骤8使用模板创建文档,就会发现已经应用了新模板。

      注:修改模板内容不必重复步骤7进行同步,除非新模板与原模板名称 不一样时才需要同步。

      使用Word模板自定义输出或打印AX订单