Epicor905水晶报表与客户化

上传人:dja****22 文档编号:242969623 上传时间:2024-09-13 格式:PPT 页数:51 大小:1.64MB
返回 下载 相关 举报
Epicor905水晶报表与客户化_第1页
第1页 / 共51页
Epicor905水晶报表与客户化_第2页
第2页 / 共51页
Epicor905水晶报表与客户化_第3页
第3页 / 共51页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Presented by:,Eric Zheng, Technology ConsulterBIC Software,技术培训,Technical Training,1,培训提纲,水晶报表相关应用,客户化、,.NET,编程,2,水晶报表,水晶报表的安装,设计。,BAQ,报表设计者的使用,如何修改系统自带报表。,连接外部水晶报表,客户化调用水晶报表、,.NET,程序调用水晶报表。,3,客户化、,.NET,编程,1,、客户化界面功能介绍。,2,、客户化里使用,VB.NET,如何操作数据库、调用水晶报表、调用外挂程序以及系统自定义表开发方法等。,3,、,.NET,编程操作数据库;调用水晶报表等。,4,、外挂程序与系统结合的常用作法。,4,EPICOR,系统有大量专业水晶报表供使用,并提供了水晶报表的开发环境,有专项功能与之衔接,(BAQ,报表设计者,),。,对于水晶报表的使用,有以下几点。,水晶报表,5,、,ODBC,为数据源连接。,操作步骤:,新建报表,标准报表创建向导,创建新连接,ODBC,一、水晶报表数据源,6,点击,ODBC,节点后出现如下图所示,选择建立好的,ODBC,数据源。点击,NEXT,。,7,输入用户,ID,,密码,点击,Finish,。,8,进入,数据库专家,界面,如下图。点击,添加命令,。,出现输入,SQL,语句界面,输入,SQL,语句,点击确定。回到数据库专家界面,点击,OK,,至此完成数据源的设置。,9,下图为设置好数据源后的水晶报表设计界面。,将字段插入水晶报表中,点击预览可看到报表效果。,10,、,A(xml),为数据源。,Epicor,系统中,BAQ,报表设计者使用的就是此种方式。首先生成,XML,文件,再建立水晶报表以之作为数据源。,操作步骤:,新建报表,标准报表创建向导,创建新连接,ADO.NET(XML),。,11,双击进入如下界面,输入,XML,文件路径。点击,完成,标准报表创建向导,选中如下右图所示,a,,选至右边,选定的表,一栏。点击,完成,结束数据源设置。,12,下图为设置好数据源后的水晶报表设计界面。,插入字段到报表,点击预览可看到报表效果。,13,、插入汇总、节专家、组专家、选择专家等等的使用。,组专家。,如下图,进入组专家后,选取要以之分组的字段到右边栏位。,选项设置属性。确定后按所选字段分组,右图为分组效果。,二、水晶报表公式,程序应用,分组项,14,节专家使用。节专家界面的设置可以对报表进行灵活的控制。,插入汇总。插入汇总项可进行数据求和、求平均、最大、最小值等功能。,15,、公式字段、参数字段使用,公式字段。,水晶报表公式编辑可使用,Basic,语法和,Crystal,语法。,如下图,建立公式字段“数量和”,编辑写入公式,保存后退出公式编辑器。,公式编辑框,16,使用“数量和”字段。得到如下结果。,数量和,=,加工数量,+,不合格数量,17,程序里添加,1,个,FORM,窗体。,拖入水晶报表控件。如下图所示。,三、程序调用水晶报表,水晶报表控件,18,编写水晶报表使用函数,有,2,种方式传入数据源。,、传入,SQL,语句。,Sub PrintView(ByVal server As String, ByVal Port As String, ByVal path As String, ByVal sql As String),Dim constr As String,Dim database As String = mfgsys,Dim username As String = sysprogress,Dim password As String = sysprogress,constr = Driver=Progress OpenEdge 10.1C driver;DB= & _,database PORT= & Port,Dim rptdoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument,Try,rptdoc.Load(path),rptdoc.SetDataSource(Query(sql, constr),Me.CrystalReportViewer1.ReportSource = rptdoc,Me.CrystalReportViewer1.RefreshReport(),Me.Show(),Catch ex As Exception,MessageBox.Show(ex.Message, Error),End Try,End Sub,传入参数为 服务器名,/IP,、端口号、水晶报表路径、,SQL,语句。,其中也使用到,open(constr),query(sql,constr),函数。,19,、传入,dt,(DATATABLE),。,Public Sub PrintViewXML(ByVal path As String, ByVal dt As DataTable),Dim rptdoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument,Try,rptdoc.Load(path),rptdoc.SetDataSource(dt),Me.CrystalReportViewer1.ReportSource = rptdoc,Me.CrystalReportViewer1.RefreshReport(),Me.Show(),Catch ex As Exception,MessageBox.Show(ex.Message, Error),End Try,End Sub,传入参数为 水晶报表路径、,dt,。,以此方式可灵活使用水晶报表,传入的,dt,可在程序中自由构建数据。,程序中调用这个,FORM,的,2,个函数,传入相应参数,即可预览、打印水晶报表。系统的客户化中通过调用外挂程序也可实现水晶报表的 打印。,20,Epicor,的客户化平台,可在系统原有基础上编写程序实现功能。开发环境有,VB.NET,和,C#2,种。,通过客户化,可以实现自定义表开发、调用外挂程序、水晶报表、数据操作等功能。,二、客户化,21,进入客户化。,、向导页签是设置事件类型的功能,.,规则向导可设置在不同条件下数据的规则。,1,、客户化界面介绍,22,、窗体事件向导可添加各种事件,.,在窗体上有相应改变的情况下触发。,例:,AfterFieldChange,事件,在字段值发生改变时出发。,23,、表单向导可新增一个新的,Tab,页,.,24,、事件向导,所有自定义控件的方法事件。,25,一般使用的是,VB.NET,开发环境。因此,数据操作与,.net,中类似。,主要包括以下,3,个函数。,、打开数据库连接:,Open(byval constr as string),;,、返回,1,个,DataTable,:,Function Query(ByVal sql As String) As Data.DataTable,;,、执行插入、删除、更新动作:,Sub ExcuteSql(ByVal sql As String),;,(,详细内容在外挂程序使用中有说明。,),2,、数据操作。,26,Epicor,系统有用户自定义数据表供使用者开发。,、进入系统菜单维护新建菜单项输入菜单,ID,名称。点击 程序,选取要开发的自定义表,dll.,例如我们要用,UD107,表进行客户化,(,表单,UD107,对应的自定义表为,UD107,和,UD107A),。如图选择对应的,Epicor.Mfg.UI.UD107Entry.dll,文件后。点击保存,重新登录系统可看到刚添加的自定义表菜单项。,3,、自定义表开发。,27,、开发人员模式进入刚新建的菜单。,弹出客户化选择框,(,若已有客户化则会显示在,Customizations,节点中,),,点击确定进入界面。右键弹出菜单项,选择客户化进入客户化模式。,28,、进入客户化环境后,可对其进行开发设计。包括属性设置、程序编写等等。,下图提示为:文本框如何绑定到数据表字段。,点此可设置文本框所绑定的数据表字段,29,、完成客户化后,保存。,保存后可到菜单维护发布完成的客户化。如图所示:,此处可选择已完成的客户化。,30,如何在客户化中调用外挂程序。,、如图所示,外挂程序完成后,进入,My Project,。应用程序类型选择为类库,点击生成按钮,编译成,dll,文件。,4,、调用外挂,31,、将生成的,dll,文件放到,Epicor,安装目录的,client,目录下。,、如图,点击工具栏半成品参考管理器。,32,、选中,custom Assemblies,添加自定义参考。,、选取要调用的,dll,文件,,如右图所示,点击确定。,33,、至此外挂程序已被引用到客户化中。测试引用。添加,1,个,epiButton1,,在,epiButton1,的,click,事件中写入以下代码,Private Sub epiButton1_Click(ByVal sender As Object, ByVal args As System.EventArgs), * Place Event Handling Code Here *,Dim frm as new orderback.form1,Dim str as string,str=frm.GridValue_back(“Driver=Progress OpenEdge 10.1C Driver;DB=mfgsys;UID=sysprogress;PWD=sysprogress;HOST=daniel;PORT=9080”,“echom”),GridValue_back(),为外挂程序中的函数,msgbox(str),End Sub,、更新代码,测试通过后,保,存客户化代码。关闭界面重新进,入客户化,选择刚刚保存的客户,化进入。点击,epiButton1,进行测,试。,34,、如下图所示,调用出,frm.form1,窗体。,至此完成客户化调用外挂程序。,35,、获取当前公司,company,服务器,host,端口号,port,。,Dim s as string= OTrans.Session.AppServer,company=OTrans.Session.CompanyID,host = Mid(s, InStrRev(s, /) + 2, InStrRev(s, :) - InStrRev(s, /) - 2),port = Strings.Right(s, Len(s) - InStrRev(s, :),port = Mid(port, 1, 2) + CStr(Int(Mid(port, 3, 1) + 5) + CStr(Int(Mid(port, 4, 1) - 1),、调用系统功能。,oTrans.Undo(),撤销,oTrans.update(),保存,oTrans.Refresh(),刷新界面,ProcessCaller.LaunchForm(Otrans, “UD_GDQL”),调用系统菜单项。,“UD_GDQL”,为菜单,ID,。,。,、根据条件弹出选择框,并返回,DataSet,Function SearchShowToDS(ByVal strAtapterName as string, ByVal strWhereClause as string, ByRef dsSearch As DataSet),Dim recSelected As Boolean,Try,dsSearch = Epicor.Mfg.UI.FormFunctions.SearchFunctions.listLookup(otrans, strAtapterName, recSelected, True, strWhereClause),Catch ex As Exception,MessageBox.Show(ex.Message.ToString),End Try,Return recSelected,End Function,5,、系统函数方法使用。,36,、视图取值,赋值。,Dim RcvHead As EpiDataView = CType(oTrans.EpiDataViews(RcvHead), EpiDataView),定义,RcvHead,为视图,oTrans.EpiDataViews(RcvHead),。,If RcvHead.row0 then Exit Sub,如果视图无值,退出程序。,PackSlip=RcvHead.dataview(RcvHead.row)(“PackSlip”).Tostring,取视图,RcvHead,里,PackSlip,字段的值。,EpiDataView.row,为视图索引值。,给,EpiDataView.row,赋值可以定位视图位置。例:,EpiDataView.row=0,。将视图定位到第一页。,RcvHead.dataview(RcvHead.row)(“PackSlip”)=PackSlip,为视图赋值。,、使用系统界面已有控件。,正常情况系统自身加入的各种控件,如,Grid,Textbox,等,我们无法使用。,经过下面的方法可以实现操作系统界面已有控件。,例:,tmpgrid,为系统自身已有,Grid,。,Dim tmpgrid as Epicor.Mfg.UI.FrameWork.EpiUltraGrid,tmpgrid=ctype(csm.GetNativeControlReference(27d314e8-4849-47df-a4db-2dda5d27ae90),EpiUltraGrid),Epicor.Mfg.UI.FrameWork.EpiUltraGrid,为控件类型。,27d314e8-4849-47df-a4db-2dda5d27ae90,为控件属性里的,EpiGuid,项。,经过以上代码可以实现操作,tmpgrid,。 例:,tmpgrid.datasource.table.Columns.Count tmpgrid,列数。,37,外挂程序基于,VB.NET,开发。,对于,EPICOR,系统,外挂程序开发主要包括以下几个方面的内容。,一、VB.NET 外挂程序开发,38,外挂程序中,数据操作是必不可少的。主要包括数据的读取,写入,更新等等。,程序编写使用的是,ADO.NET,对象操作数据。连接方式为,ODBC,。,首先来了解一下,ADO.NET,对象。,1,、数据操作,39,ADO.NET,的对象主要包括,:,Connection,Command,DataAdapter,DataReader,,,DataSet,,,DataTable,dateview,DataColumn,和,DataRow,、,DataSet,:这个对象是一个集合对象,可以当成一个离线的数据库它可以包含任意数量的数据表,以及所有表的约束、索引和关系。所有这些信息都以,XML,的形式存在,我们可以处理、遍历、搜索任意或者全部的数据。,、,DataReade,r,对象:它与,DataSet,最大的不同是有连接式的,每次对数据库进行存取都会影响到数据库。,、,DataTable,:这个对象代表着可以在,DataSet,对象内找到的所有表,,、,Connection,对象:用于连接数据库的对象,表示到数据源的一个唯一的连接。,、,Command,对象:表示要对数据库执行的一个,SQL,语句或一个存储过程。,、,DataAdapter,对象:该对象是与,DataSet,配合使用的对象,用于把表填充到,DataSet,,和更新,DataSet,等。,、,DataColumn,:表包含与列有关的信息,包括列的名称、类型和属性。我们可以按照下面的方式创建,DataColumn,对象,指定数据类型,然后把列加入到表。,、,DataRow,:要填充一个表,我们可以使用命令的自动数据绑定功能,或者也可以手工添加行,40,断开连接模式。断开连接模式适合网络数据量大、系统节点多、网络结构复杂,尤其是通过,Internet/Intranet,进行连接的网络。典型的,ADO.NET,断开连接模式应用如右图所示。,断开连接模式下数据访问的步骤,:,(1),使用,Connection,对象连接数据库。,(2),使用,Command,对象获取数据库的数据。,(3),把,Command,对象的运行结果存储在,DataAdapter(,数据适配器,),对象中。,(4),把,DataAdapter,对象中的数据填充到,DataSet(,数据集,),对象中。,(5),关闭,Connection,对象。,(6),在客户机本地内存保存的,DataSet(,数据集,),对象中执行数据的各种操作。,(7),操作完毕后,启动,Connection,对象连接数据库。,(8),利用,DataAdapter,对象更新数据库。,(9),关闭,Connection,对象。,ADO.NET,访问数据库的机制及非数据库模式,41,过程:,Sub open(ByVal cnstr As String),Try,Con = New Odbc.OdbcConnection(cnstr),If Con.State = ConnectionState.Closed Then,Con.Open(),End If,Catch ex As Exception,MessageBox.Show(ex.Message.ToString, ,数据库连接失败,),End Try,End Sub,传入的,cnstr,为,ODBC,连接字符串。,例:,constr = “Driver=Progress OpenEdge 10.1C Driver;DB=mfgsys;UID=sysprogress;PWD=sysprogress;HOST=Daniel;PORT=9060”,上例为,Epicor9,的,PROGRESS,版数据库的连接字符串,,HOST,为主机名或,IP,地址;,PORT,为数据库端口号,,9060,为,Training,库端口号。,、,open(ByVal cnstr As String),打开,ODBC,连接,了解了,ADO.NET,知识后,通过以下,3,个函数可以帮助我们实现数据操作。,42,函数:,Function Query(ByVal sql As String, ByVal conS As String) As Data.DataTable,odbadp = New Odbc.OdbcDataAdapter,odbcmd = New Odbc.OdbcCommand,ds = New DataSet,t1 = New DataTable,Try,odbcmd.Connection = Con,odbcmd.CommandText = sql,odbadp.SelectCommand = odbcmd,odbadp.Fill(ds, a),t1 = ds.Tables(a),Return t1,Catch ex As Exception,MessageBox.Show(ex.Message.ToString, ,查询出错,),Return t1,End Try,End Function,传入的,sql,为,SQL,查询语句,(Select,语句,),,语句构建规则与,SQLSERVER,类似。,conS,为,ODBC,连接字符串。函数返回结果为,1,个,DataTable,。可用于数据读取操作。,、,Query(ByVal sql As String, ByVal conStr As String) as DataTable,传入,sql,语句查询得到,Datatable,43,函数:,Function ExcuteSql(ByVal sql As String, ByVal cnstr As String) As Integer,Dim odbcmd As New Odbc.OdbcCommand,Dim d As Double,Try,odbcmd.Connection = Con,odbcmd.CommandText = sql,d = odbcmd.ExecuteNonQuery(),Return d,Catch ex As Exception,MessageBox.Show(ex.Message.ToString, ,数据为写入出错,),Return d,End Try,End Function,传入的,sql,为更新、写入、删除语句,(Update,、,Insert,、,Delete,语句,),,语句构建规则与,SQLSERVER,类似。,conS,为,ODBC,连接字符串,函数返回结果为此,sql,语句影响的数据条数。,、,ExcuteSql(ByVal sql As String, ByVal cnstr As String) as Integer ,写入,更新数据函数,44,一、在外挂界面提供输入连接字符串参数的接口。,如:,HOST,主机名,/IP,;,PORT,数据库端口号等。,例:如右图所示,输入连接字符串参数。传入参数后即可对数据库进行操作查询。此类程序主要用在自制查询分析器等数据库查询操作工具,便于更改连接字符串。,2,、外挂程序常用做法,外挂程序要做到与系统及数据库的结合。有以下几种途径:,45,二、程序处理,命令行参数传入。,步骤如下:,1,、添加,1,个新的,Module,。如图。,46,模块程序:,Module init,Public host As String,Public Port As String,Public company As String,Sub Main(ByVal CmdArgs() As String),CmdArgs(),就是参数,CmdArgs(0),表示第一个参数,cmdArgs.Length,表示参数个数,注,:, 1,、,Sub Main,必须声明在,Module,中, 2,、点击“项目”,-“.,属性”,将启动对象设为,“Sub Main”,If CmdArgs.Length = 3 Then,host = CmdArgs(0),Port = CmdArgs(1),company = CmdArgs(2),System.Windows.Forms.Application.EnableVisualStyles(),Dim form As New EchomGantt.Form1,form.ShowDialog(),Application.Run(form),Else,MessageBox.Show(,没有指定服务器及数据端口,),Exit Sub,End If,End Sub,End Module,47,(*,注,:,1,、,Sub Main,必须声明在,Module,中,2,、点击“项目”,-“.,属性”,将启动对象设为,“Sub Main”,3,、调试“项目”,-“,调试”,在命令行参数 输入参数,company ,host ,port,。空格为,2,参数间区分标志。,),2,、命令行参数分别为,company ,host ,port,。,因此程序里的连接字符串:,Constr =Driver=Progress OpenEdge 10.1C Driver;DB=mfgsys ;UID=sysprogress ;PWD=sysprogress;HOST= + host + ;PORT= + Port,Company,在,Sql,语句中使用,系统可能有多公司,需指定,company,字段值。,48,3,、编译,应用。,输入命令行参数方可编译,,不然则会如右图提示!,编译完成后,生成的,.exe,文件,可以,2,种方式使用。,、发送,.exe,文件快捷方式至桌,面,如右图所示设置命令行参数,。参数设置完成后,点击确定。,快捷方式即可使用。,将,exe,文件发送到桌面快捷方式后,属性设置里:服务器,IP,,端口号,公司,ID,49,、挂到,Epicor,系统中使用。,1),将,.exe,文件放到系统安装目录的,client,目录下。,2),如图,进入系统到菜单维护界面,新建菜单项。,程序类型选择,External Process(,外部程序,),。,50,3),点击程序,按钮。,选中需要调用的外挂程序。,如下图,命令行参数写在,.exe,文件路径后面,点击测试,可预览程序。,保存后,重新登录系统可在菜单项中使用。,51,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!