【前言】今天研究了一整天的PO单据,终于让我开发出属于自己的单据样式,客户就可以用我开发的样式打印单据了。整个过程其实蛮简单的,是指因为自己刚开始摸索,又没有资料,根据前面的积累慢慢探究出来了。今天里一个flag,明天再补上
【工具】Office2013 Word、BI Publisher插件
查看采购订单的PDF的路径。在这里打开的PDF使用的是系统预置的模板,接下来就讨论如何客制化,步骤如下:
【1】登录BIP(/xmlpserver),复制一份系统预置的采购订单样式模板与数据模型。复制过来的报表自动取用的是预置的数据模型,因此还应该将其关联上复制出来的数据模型
【2】简单更改数据模型。预置的数据模型主要有两个特点。第一,数据模型中主要存在两个数据结构“Draft”和“Archive",前者是用来生成审批前的采购订单,后者是审批后的采购订单,两者的内容基本没有什么差别,但是“Draft”的值取自后台表“PO_HEADERS_DRAFT_ALL”,包含采购订单审批前、后的数据;而“Archive”取自后台表“PO_HEADERS_ARCHIVE_ALL”,只有采购订单审批后才会产生数据。第二,该数据模型中预置的“示例数据”数据字段比较少,因此如果使用BIP插件来开发RTF,则能取到的数据并不多,因为“示例数据”中的字段只包括查询出来不为空的字段。
【2.1】因此我们需要做两点:首先,取用“Draft”的数据模型来生成采购订单的示例数据 ,将其数据模型中添加判断,无论采购订单是否审批都将采用这个数据集。
【2.2】找一张所需字段最全的采购订单,将其Header ID输入参数中查询出结果,然后另存为实例数据。后面的RTF设计就可以应用这些数据开发报表模板了。Header ID可以通过“PO_HEADERS_AL”查得。
【3】打开Office Word,用BIP Desktop插件登录到系统中,选择数据模型并创建新的报表(因为我们不能直接针对复制过来的报表修改其Layout,因此,需要通过创建新报表的方式做出新的Layout,再将Layout移植到的报表中),到后面如果要修改报表模板,就可以直接对这个自己创建报表修改。
【4】设计布局。使用BIP获取前面保存的示例数据,将各个字段放在对应的位置。设计之后,可以预览查看效果,满意了就可以上传模板,该模板自然是RTF格式的,该Layout就上传至自己创建的那个报表中了。然后再从这个报表中下载下来,移植到复制过来的PO采购订单报表中,成为一个正式可用的Layout。最后在“配置采购业务职能”中选择Layout就好。
以上就是客制化PO采购订单时应注意的内容和操作步骤,大方向上是简单的,记录一下,以免以后我忘了。下面介绍一下如何设计Layout。模板布局中大概的格式都可以通过Word的基本功能实现,比如表格、字体等,下面只介绍如何获取数据模型示例数据的值。
【5.1】添加字段。这些字段都是“示例数据”中的字段,而且值都不为空,因为空值是不会显示在这里的,你也就获取不到。这里能选到的字段都可以随时插入到Word中任何一个位置。还可以设置显示格式。
【5.2】设置循环。采购订单肯定是有多个采购订单行的,因此,在显示时需要多采购订单行循环显示。首先设置需要根据什么来循环显示,这里自然是设置根据“采购订单行号”来循环显示;然后在循环的区域内设置循环显示的字段。为了显示界面的友好,建议为每一个循环单独设置一个表格来显示。
【5.3】设置条件。当满足一定的条件时才会显示条件区域内的值,不然,条件区域内的值将不显示。且不占用报表的篇幅
以上就是设计客制化时常用到的操作。这样客制之后的PO单据对审批前、审批中、审批后的采购订单及其更改单都起作用。需要提醒的是,可能是由于浏览器缓存的作用,当你在创建采购订单后提交审批前,查看了一次Draft的PDF,那么再次修改后,再查看PDF时,修改后的内容不会及时显示出来,即更改的内容不会及时显示在报表中,但是后台的数据肯定是更改的最新的。这时比只需要正常提交审批就好了,在审批时看到的PDF就是最新的。审批后看到的也是最新的。
【6】附上一份常用的采购订单字段,在设计Layout时方便找到数据