前言:
对于终端用户通称的"报表"其实大体可以分为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
-
创建或检查Query
确保我们要输出的字段都在Query里,因为下面我要创建一张采购订单,在当前Query里已经包含PurchTable和PurchLine两张表。
-
创建Data source
- 打开Organisation administration > Setup > Document management > Document data sources窗体
- 创建一个data source
- Data source type选择 Query reference
- Data source name选择上一步所确定的Query,
- 点击Activate激活当前Data source。
-
创建模板
- 打开Word,新建一个空文档
- 定位到Dynamics AX选项卡
- 点击"添加数据"
- 这时能看到在第2步里所有已经激活的data source
-
选择我们现在要创建的Purchase updates项
-
Word左侧会显示Query中的字段,现在就是按照我们需要打印的样式画模板了,字段可以直接拖动到需要显示的位置,如下图。
-
创建SharePoint文档库用于存放模板文件
-
在SharePoint中新建一个文档库,起一个名字,本例中为AXDocTempLibrary
-
记下网站路径和文档库名称,下一步需要用。
-
-
创建Document types
- 打开Organisation administration > Setup > Document management > Document types 窗体
-
新建一个Type
关键字段 |
值/备注 |
Class |
Template library |
Location |
设置的是生成的文档存放的方式,本例选择Archive directory,即存放在本地文件夹下,还可以选择保存在SharePointDatabase等其它选项。 |
Active directory |
因为刚才Location选择了Archive directory,所以在此字段设置存放在哪个文件夹,本例选择桌面。 |
SharePoint site |
文档库所在网站,即4.b中所记的内容 |
Document Library |
文档库名称,即4.b中所记的内容 |
- 保存Document types窗体,可以不关闭,后面还会使用。
上传模板文件到SharePoint文档库
-
在浏览器中打开步骤4所创建的文档库,点击"添加文档",选择刚才创建的WORD文件。
-
点击"确定"上传,这时可以看到上传的模板文件。
-
同步文档库到AX
- 打开Organisation administration > Setup > Document management > Document types 窗体
- 选中第5步创建的document types
- 点击Synchroise,系统开始同步,完成后会提示同步的模板数量,表格中也会显示已经同步成功的模板名称。
-
选中要使用的模板,点击Active激活该模板,已经激活的模板Activated复选框是check状态。
-
使用模板
- 现在回到采购订单界面
- 选中采购订单
-
点击Generate from template,可以看到所有激活状态的模板名称,可能会有多个,应用想要使用的。
-
系统会自动将订单内容输出到WORD中并打开预览
-
查看生成的文档
-
因为在第5步document types中我选择的文档存放路径是桌面,因此每次生成的文档会存放在我的桌面上。
-
在采购订单界面点击Attachments中可以看到生成记录(时间、类型、模板名称)
-
-
修改模板
- 打开模板原件或从SharePoint文档库下载模板。
-
进行增删字段或格式调整,在本例我增加一个明显的UPDATE标识。
-
按照步骤6再次上传模板,选择覆盖现有文件
-
按照步骤8使用模板创建文档,就会发现已经应用了新模板。
注:修改模板内容不必重复步骤7进行同步,除非新模板与原模板名称 不一样时才需要同步。