MyReport实践:为ERP系统添加打印功能

news/2024/5/19 20:27:16 标签: Flex, MyReport, erp, 打印, 设计



准备阶段

首先准备2html页面分别集成myreport的预览和设计功能,作为预览页面和打印编辑页面。

集成方式参考:Js与flash交互:在html页面中用jsMyReport插件交互

 

打印相关API

加载数据和格式

页面初始化时,获取浏览器地址栏参数,然后加载配置文件,加载单据的数据和打印格式,调用OrderAPI.LoadPrintData方法。

                     private var _Params:UrlParams;

                    

                     private function Init():void

                     {

                           //

                          

                           _Params = new UrlParams(url);

                           if(!_Params.HasParam("uid"))

                           {

                                  hlib.MsgUtil.ShowInfo("URL缺少uid参数!");

                                  return;

                           }

                           if(!_Params.HasParam("mid"))

                           {

                                  hlib.MsgUtil.ShowInfo("URL缺少mid参数!");

                                  return;

                           }

                           if(!_Params.HasParam("action"))

                           {

                                  hlib.MsgUtil.ShowInfo("URL缺少action参数!");

                                  return;

                           }

                           if(!_Params.HasParam("code"))

                           {

                                  hlib.MsgUtil.ShowInfo("URL缺少code参数!");

                                  return;

                           }

                          

                           var configLoader:UrlLoader = new UrlLoader();

                           configLoader.DisposeAfterLoad = true;

                           configLoader.addEventListener(Event.COMPLETE, OnConfigLoadComplete);

                           configLoader.Load("Config.xml");

                     }

                     private function OnConfigLoadComplete(e:Event):void

                     {

                           var configLoader:UrlLoader = e.currentTargetas UrlLoader;

                           var settings:XML = XML(configLoader.Data);

                           common.net.APIUtil.Server = settings.ERPServicePath;

                           if(!APIUtil.Server)

                           {

                                  MsgUtil.ShowInfo("Config.xml缺少配置ERPServicePath");

                           }

                          

                           OrderAPI.LoadPrintData(_Params.GetParam("mid"),_Params.GetParam("action"),

                                  _Params.GetParam("uid"),_Params.GetParam("code"),

                                  function(item:Object):void

                                  {

                                         var style:XML = null;

                                         if(item.PRINT_STYLE)

                                                style = new XML(item.PRINT_STYLE);

                                         delete item.PRINT_STYLE;

                                        

                                         var detail:Object = item.detail;

                                         delete item.detail;

                                        

                                         _Preview.Load(style,detail, item);//MyReport控件加载数据

                                  });

                     }

打印完成通知

监控MyReport控件的打印完成事件MyReportEvent.PRINT,向后台发送打印完成通知,调用OrderAPI.ReportPrintCompleted方法

                     private function OnMyReportEvent(e:MyReportEvent):void

                     {

                           if(e.type == MyReportEvent.PRINT)

                           {

                                  OrderAPI.ReportPrintCompleted(_Params.GetParam("mid"),_Params.GetParam("action"),

                                         _Params.GetParam("uid"),_Params.GetParam("code"), new Date(), "", function(value:int):void

                                         {

                                                if(_Preview.ParameterData)

                                                       _Preview.ParameterData.PRINT_COUNT = value;

                                         });

                           }

                     }

保存打印格式

监听MyReport设计控件的保存事件DesignEvent.SAVE,向后台保存打印格式,调用OrderAPI.SavePrintStyle方法。

                     private function OnDesignEvent(e:DesignEvent):void

                     {

                           if(e.type == DesignEvent.SAVE)

                           {

                                  var content:String = _Design.GetSettingXML();

                                  OrderAPI.SavePrintStyle(_Params.GetParam("mid"),_Params.GetParam("action"),

                                         _Params.GetParam("uid"),content,

                                         function(success:Boolean):void

                                         {

                                                hui.tooltip.ToolTipUtil.ShowToolTip("保存");

                                         });

                           }

        

                     }

页面与后台服务器的接口交互

 

集成效果

在单据模块的工具栏增加打印相关按钮:打印、格式编辑、打印详情。

点击【打印】按钮,在新页面显示打印预览。

点击【格式编辑】,在新页面显示打印编辑。

点击【打印详情】,弹出窗体显示打印详情列表。

相关链接

MyReport演示、产品网站

 

相关文章

MyReport专栏

 


http://www.niftyadmin.cn/n/1574457.html

相关文章

Code Signal_10分钟挑战题_constructArray

完成时间3分06秒 Given an integer size, return an array containing each integer from 1 to size in the following order: 1, size, 2, size - 1, 3, size - 2, 4, ... Example For size 7, the output should beconstructArray(size) [1, 7, 2, 6, 3, 5, 4]. 我的解答&a…

大数据开发工程师要如何入门?各阶段有哪些书籍值得阅读学习?

年薪百万的大数据开发工程师要如何入门? 本片主要是介绍一下大数据学习路线及各阶段学习书籍和学习资料 阶段一、大数据基础——java语言基础方面 HTML、CSS与JavaScript PC端网站布局、HTML5CSS3基础、WebApp页面布局、原生JavaScript交互功能开发、Ajax异步交互…

myeclipse10配置maven

一:Maven的下载安装 准备工作: 1)安装环境 Windows xp 2)需安装JDK ,并配置环境变量(略) 3) Maven版本3.0.5 4)下载地址:http://mirror.bit.edu.cn/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.zip 5)zip包解压…

[雪峰磁针石博客]python3标准库-中文版

2019独角兽企业重金招聘Python工程师标准>>> Python标准库 Python语言参考描述了Python语言的语法和语义,这里描述随Python分发的标准库,还介绍Python发行版中通常包含的可选组件。 Python的标准库非常广泛,库包含内置模块(用C语言…

从Hadoop到Spark、Flink,大数据处理框架十年激荡发展史

当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题。本文将从大数据的基础特性开始,进而解释分而治之的处理思想,最后介绍一…

windows启动tomcat闪退

现象:windows下双击tomcat\bin\startup.bat时闪退 原因:缺少环境变量导致 解决方法:打开编辑tomcat\bin\startup.bat,头部加入以下代码,一个是JAVA目录,一个是Tomcat目录SET JAVA_HOMEC:\Program Files\Jav…

Kafka 是否可以用做长期数据存储?

2019独角兽企业重金招聘Python工程师标准>>> 问题 “把 Kafka 作为长期存储有问题吗?” 这是一个非常常见的问题,我们知道,只要把数据保留时间设置为“永久”,或者开启日志压缩,数据就会被一直保存 把数据长…

MyReport报表引擎:水印功能

水印功能水印功能,能够设置报表纸张的水印底纹,让预览、打印效果更专业。预览效果打印效果打印显示表达式功能打印显示表达式功能,能够控制单元格在打印时的显示状态例如,公司地址单元格设置!isprint(),能够让单元格在…