Epicor905水晶報表與客戶化_第1頁
Epicor905水晶報表與客戶化_第2頁
Epicor905水晶報表與客戶化_第3頁
Epicor905水晶報表與客戶化_第4頁
Epicor905水晶報表與客戶化_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Presented by:Eric Zheng, Technology ConsulterBIC Software技術(shù)培訓 Technical Training.培訓提綱水晶報表相關(guān)運用客戶化、.NET編程.水晶報表水晶報表的安裝,設(shè)計。BAQ報表設(shè)計者的運用如何修正系統(tǒng)自帶報表。銜接外部水晶報表客戶化調(diào)用水晶報表、.NET程序調(diào)用水晶報表。.客戶化、.NET編程1、客戶化界面功能引見。2、客戶化里運用VB.NET如何操作數(shù)據(jù)庫、調(diào)用水晶報表、調(diào)用外掛程序以及系統(tǒng)自定義表開發(fā)方法等。3、.NET編程操作數(shù)據(jù)庫;調(diào)用水晶報表等。4、外掛程序與系統(tǒng)結(jié)合的常用作法。.EPICOR系統(tǒng)有大量專業(yè)水晶報

2、表供運用,并提供了水晶報表的開發(fā)環(huán)境,有專項功能與之銜接(BAQ報表設(shè)計者)。對于水晶報表的運用,有以下幾點。水晶報表.、ODBC為數(shù)據(jù)源銜接。操作步驟:新建報表規(guī)范報表創(chuàng)建導游創(chuàng)建新銜接ODBC一、水晶報表數(shù)據(jù)源.點擊ODBC節(jié)點后出現(xiàn)如以下圖所示,選擇建立好的ODBC數(shù)據(jù)源。點擊NEXT。.輸入用戶ID,密碼,點擊Finish。.進入數(shù)據(jù)庫專家界面,如以下圖。點擊添加命令。出現(xiàn)輸入SQL語句界面,輸入SQL語句,點擊確定?;氐綌?shù)據(jù)庫專家界面,點擊OK,至此完成數(shù)據(jù)源的設(shè)置。.以下圖為設(shè)置好數(shù)據(jù)源后的水晶報表設(shè)計界面。將字段插入水晶報表中,點擊預覽可看到報表效果。.、A(xml)為數(shù)據(jù)源。

3、Epicor系統(tǒng)中BAQ報表設(shè)計者運用的就是此種方式。首先生成XML文件,再建立水晶報表以之作為數(shù)據(jù)源。操作步驟:新建報表規(guī)范報表創(chuàng)建導游創(chuàng)建新銜接ADO.NET(XML)。.雙擊進入如下界面,輸入XML文件途徑。點擊完成規(guī)范報表創(chuàng)建導游選中如下右圖所示a,選至右邊選定的表一欄。點擊完成終了數(shù)據(jù)源設(shè)置。.以下圖為設(shè)置好數(shù)據(jù)源后的水晶報表設(shè)計界面。插入字段到報表,點擊預覽可看到報表效果。.、插入?yún)R總、節(jié)專家、組專家、選擇專家等等的運用。組專家。如以下圖,進入組專家后,選取要以之分組的字段到右邊欄位。選項設(shè)置屬性。確定后按所選字段分組,右圖為分組效果。二、水晶報表公式,程序運用分組項.節(jié)專家運用。

4、節(jié)專家界面的設(shè)置可以對報表進展靈敏的控制。插入?yún)R總。插入?yún)R總項可進展數(shù)據(jù)求和、求平均、最大、最小值等功能。.、公式字段、參數(shù)字段運用公式字段。水晶報表公式編輯可運用Basic 語法和 Crystal 語法。如以下圖,建立公式字段“數(shù)量和,編輯寫入公式,保管后退出公式編輯器。公式編輯框.運用“數(shù)量和字段。得到如下結(jié)果。數(shù)量和=加工數(shù)量+不合格數(shù)量.程序里添加1個FORM窗體。拖入水晶報表控件。如以下圖所示。三、程序調(diào)用水晶報表水晶報表控件.編寫水晶報表運用函數(shù),有2種方式傳入數(shù)據(jù)源。、傳入SQL語句。Sub PrintView(ByVal server As String, ByVal Port

5、 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 & ;UID= & username & ;PWD= & password & ;HOST= & serve

6、r & ;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, Er

7、ror) End Try End Sub傳入?yún)?shù)為 效力器名/IP、端口號、水晶報表途徑、SQL語句。其中也運用到open(constr),query(sql,constr)函數(shù)。.、傳入 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) M

8、e.CrystalReportViewer1.ReportSource = rptdoc Me.CrystalReportViewer1.RefreshReport() Me.Show() Catch ex As Exception MessageBox.Show(ex.Message, Error) End Try End Sub傳入?yún)?shù)為 水晶報表途徑、dt。以此方式可靈敏運用水晶報表,傳入的dt 可在程序中自在構(gòu)建數(shù)據(jù)。程序中調(diào)用這個FORM的2個函數(shù),傳入相應參數(shù),即可預覽、打印水晶報表。系統(tǒng)的客戶化中經(jīng)過調(diào)用外掛程序也可實現(xiàn)水晶報表的 打印。.Epicor的客戶化平臺,可在系統(tǒng)原有根

9、底上編寫程序?qū)崿F(xiàn)功能。開發(fā)環(huán)境有VB.NET和C#2種。經(jīng)過客戶化,可以實現(xiàn)自定義表開發(fā)、調(diào)用外掛程序、水晶報表、數(shù)據(jù)操作等功能。二、客戶化.進入客戶化。、導游頁簽是設(shè)置事件類型的功能.規(guī)那么導游可設(shè)置在不同條件下數(shù)據(jù)的規(guī)那么。1、客戶化界面引見.、窗體事件導游可添加各種事件.在窗體上有相應改動的情況下觸發(fā)。例: AfterFieldChange事件,在字段值發(fā)生改動時出發(fā)。.、表單導游可新增一個新的Tab頁.、事件導游,一切自定義控件的方法事件。.普通運用的是VB.NET開發(fā)環(huán)境。因此,數(shù)據(jù)操作與.net中類似。主要包括以下3個函數(shù)。、翻開數(shù)據(jù)庫銜接:Open(byval constr as

10、 string);、前往1個DataTable:Function Query(ByVal sql As String) As Data.DataTable;、執(zhí)行插入、刪除、更新動作:Sub ExcuteSql(ByVal sql As String);(詳細內(nèi)容在外掛程序運用中有闡明。)2、數(shù)據(jù)操作。.Epicor系統(tǒng)有用戶自定義數(shù)據(jù)表供運用者開發(fā)。、進入系統(tǒng)菜單維護新建菜單項輸入菜單ID,稱號。點擊 程序選取要開發(fā)的自定義表dll.例如我們要用UD107表進展客戶化(表單UD107對應的自定義表為UD107和UD107A)。如圖選擇對應的Epicor.Mfg.UI.UD107Entry.d

11、ll文件后。點擊保管,重新登錄系統(tǒng)可看到剛添加的自定義表菜單項。3、自定義表開發(fā)。.、開發(fā)人員方式進入剛新建的菜單。彈出客戶化選擇框(假設(shè)已有客戶化那么會顯示在Customizations節(jié)點中),點擊確定進入界面。右鍵彈出菜單項,選擇客戶化進入客戶化方式。.、進入客戶化環(huán)境后,可對其進展開發(fā)設(shè)計。包括屬性設(shè)置、程序編寫等等。以下圖提示為:文本框如何綁定到數(shù)據(jù)表字段。點此可設(shè)置文本框所綁定的數(shù)據(jù)表字段.、完成客戶化后,保管。保管后可到菜單維護發(fā)布完成的客戶化。如下圖:此處可選擇已完成的客戶化。.如何在客戶化中調(diào)用外掛程序。、如下圖,外掛程序完成后,進入My Project 。運用程序類型選擇為

12、類庫,點擊生成按鈕,編譯成dll文件。4、調(diào)用外掛.、將生成的dll文件放到Epicor安裝目錄的client目錄下。、如圖,點擊工具欄半廢品參考管理器。.、選中custom Assemblies 添加自定義參考。、選取要調(diào)用的dll文件,如右圖所示,點擊確定。.、至此外掛程序已被援用到客戶化中。測試援用。添加1個epiButton1,在epiButton1的click事件中寫入以下代碼Private Sub epiButton1_Click(ByVal sender As Object, ByVal args As System.EventArgs) * Place Event Handli

13、ng 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()為外掛程序中的函數(shù) msgbox(str)End Sub、更新代碼,測試經(jīng)過后,保存客戶化代碼。封鎖界面重新進入客戶化,選擇剛剛保管的客戶化進入。點擊epiButton1進展

14、測試。.、如以下圖所示,調(diào)用出frm.form1 窗體。 至此完成客戶化調(diào)用外掛程序。.、獲取當前公司 company,效力器 host, 端口號 port。 Dim s as string= OTrans.Session.AppServer company=OTrans.SessionpanyID 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(

15、Int(Mid(port, 3, 1) + 5) + CStr(Int(Mid(port, 4, 1) - 1)、調(diào)用系統(tǒng)功能。 oTrans.Undo() 撤銷 oTrans.update() 保管 oTrans.Refresh() 刷新界面ProcessCaller.LaunchForm(Otrans, “UD_GDQL) 調(diào)用系統(tǒng)菜單項?!癠D_GDQL為菜單ID。、根據(jù)條件彈出選擇框,并前往DataSetFunction SearchShowToDS(ByVal strAtapterName as string, ByVal strWhereClause as string, ByRe

16、f 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 Function5、系統(tǒng)函數(shù)方法運用。.、視圖取值,賦值。 D

17、im RcvHead As EpiDataView = CType(oTrans.EpiDataViews(RcvHead), EpiDataView) 定義RcvHead為視圖oTrans.EpiDataViews(RcvHead)。 If RcvHead.row0 then Exit Sub 假設(shè)視圖無值,退出程序。 PackSlip=RcvHead.dataview(RcvHead.row)(“PackSlip).Tostring 取視圖RcvHead里PackSlip字段的值。 EpiDataView.row 為視圖索引值。 給EpiDataView.row賦值可以定位視圖位置。例:E

18、piDataView.row=0。將視圖定位到第一頁。 RcvHead.dataview(RcvHead.row)(“PackSlip)=PackSlip 為視圖賦值。、運用系統(tǒng)界面已有控件。正常情況系統(tǒng)本身參與的各種控件,如Grid,Textbox等,我們無法運用。經(jīng)過下面的方法可以實現(xiàn)操作系統(tǒng)界面已有控件。例: tmpgrid 為系統(tǒng)本身已有Grid。Dim tmpgrid as Epicor.Mfg.UI.FrameWork.EpiUltraGridtmpgrid=ctype(csm.GetNativeControlReference(27d314e8-4849-47df-a4db-2d

19、da5d27ae90),EpiUltraGrid)Epicor.Mfg.UI.FrameWork.EpiUltraGrid 為控件類型。27d314e8-4849-47df-a4db-2dda5d27ae90 為控件屬性里的 EpiGuid項。經(jīng)過以上代碼可以實現(xiàn)操作tmpgrid 。 例:tmpgrid.datasource.table.Columns.Count tmpgrid列數(shù)。.外掛程序基于VB.NET開發(fā)。對于EPICOR系統(tǒng),外掛程序開發(fā)主要包括以下幾個方面的內(nèi)容。一、VB.NET 外掛程序開發(fā).外掛程序中,數(shù)據(jù)操作是必不可少的。主要包括數(shù)據(jù)的讀取,寫入,更新等等。程序編寫運用的

20、是ADO.NET對象操作數(shù)據(jù)。銜接方式為ODBC。首先來了解一下ADO.NET對象。1、數(shù)據(jù)操作.ADO.NET的對象主要包括:Connection,Command,DataAdapter,DataReader,DataSet,DataTable,dateview,DataColumn,和DataRow、DataSet:這個對象是一個集合對象,可以當成一個離線的數(shù)據(jù)庫它可以包含恣意數(shù)量的數(shù)據(jù)表,以及一切表的約束、索引和關(guān)系。一切這些信息都以XML的方式存在,我們可以處置、遍歷、搜索恣意或者全部的數(shù)據(jù)。 、 DataReader對象:它與DataSet最大的不同是有銜接式的,每次對數(shù)據(jù)庫進展存取

21、都會影響到數(shù)據(jù)庫。 、 DataTable:這個對象代表著可以在DataSet對象內(nèi)找到的一切表, 、 Connection對象:用于銜接數(shù)據(jù)庫的對象,表示到數(shù)據(jù)源的一個獨一的銜接。 、 Command對象:表示要對數(shù)據(jù)庫執(zhí)行的一個SQL語句或一個存儲過程。 、DataAdapter對象:該對象是與DataSet配合運用的對象,用于把表填充到DataSet,和更新DataSet等。 、 DataColumn:表包含與列有關(guān)的信息,包括列的稱號、類型和屬性。我們可以按照下面的方式創(chuàng)建DataColumn對象,指定數(shù)據(jù)類型,然后把列參與到表。 、 DataRow:要填充一個表,我們可以運用命令的自

22、動數(shù)據(jù)綁定功能,或者也可以手工添加行.斷開銜接方式。斷開銜接方式適宜網(wǎng)絡(luò)數(shù)據(jù)量大、系統(tǒng)節(jié)點多、網(wǎng)絡(luò)構(gòu)造復雜,尤其是經(jīng)過Internet/Intranet進展銜接的網(wǎng)絡(luò)。典型的ADO.NET斷開銜接方式運用如右圖所示。斷開銜接方式下數(shù)據(jù)訪問的步驟:(1)運用Connection對象銜接數(shù)據(jù)庫。(2)運用Command對象獲取數(shù)據(jù)庫的數(shù)據(jù)。(3)把Command對象的運轉(zhuǎn)結(jié)果存儲在DataAdapter(數(shù)據(jù)適配器)對象中。(4)把DataAdapter對象中的數(shù)據(jù)填充到DataSet(數(shù)據(jù)集)對象中。(5)封鎖Connection對象。(6)在客戶機本地內(nèi)存保管的DataSet(數(shù)據(jù)集)對象中執(zhí)

23、行數(shù)據(jù)的各種操作。(7)操作終了后,啟動Connection對象銜接數(shù)據(jù)庫。(8)利用DataAdapter對象更新數(shù)據(jù)庫。(9)封鎖Connection對象。ADO.NET訪問數(shù)據(jù)庫的機制及非數(shù)據(jù)庫方式.過程: 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,

24、數(shù)據(jù)庫銜接失敗) 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版數(shù)據(jù)庫的銜接字符串,HOST為主機名或IP地址;PORT為數(shù)據(jù)庫端口號,9060為Training庫端口號。、open(ByVal cnstr As String) 翻開ODBC銜接了解了ADO.NET知識后,經(jīng)過以下3個函數(shù)可以協(xié)助我們實現(xiàn)數(shù)據(jù)

25、操作。.函數(shù):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 odbcmdmandText = sql odbadp.SelectCommand = odbcmd odbadp.Fill(ds, a) t1 = ds.Tables(a) R

26、eturn t1 Catch ex As Exception MessageBox.Show(ex.Message.ToString, 查詢出錯) Return t1 End Try End Function傳入的sql為SQL查詢語句(Select語句),語句構(gòu)建規(guī)那么與SQLSERVER類似。conS為ODBC銜接字符串。函數(shù)前往結(jié)果為1個DataTable??捎糜跀?shù)據(jù)讀取操作。、Query(ByVal sql As String, ByVal conStr As String) as DataTable 傳入sql語句查詢得到Datatable.函數(shù): Function ExcuteSq

27、l(ByVal sql As String, ByVal cnstr As String) As Integer Dim odbcmd As New Odbc.OdbcCommand Dim d As Double Try odbcmd.Connection = Con odbcmdmandText = sql d = odbcmd.ExecuteNonQuery() Return d Catch ex As Exception MessageBox.Show(ex.Message.ToString, 數(shù)據(jù)為寫入出錯) Return d End Try End Function傳入的sql為更

28、新、寫入、刪除語句(Update、Insert、Delete 語句),語句構(gòu)建規(guī)那么與SQLSERVER類似。conS為ODBC銜接字符串,函數(shù)前往結(jié)果為此sql語句影響的數(shù)據(jù)條數(shù)。、ExcuteSql(ByVal sql As String, ByVal cnstr As String) as Integer 寫入,更新數(shù)據(jù)函數(shù).一、在外掛界面提供輸入銜接字符串參數(shù)的接口。如:HOST 主機名/IP;PORT 數(shù)據(jù)庫端口號等。例:如右圖所示,輸入銜接字符串參數(shù)。傳入?yún)?shù)后即可對數(shù)據(jù)庫進展操作查詢。此類程序主要用在自制查詢分析器等數(shù)據(jù)庫查詢操作工具,便于更改銜接字符串。2、外掛程序常用做法外掛程序要做到與系統(tǒng)及數(shù)據(jù)庫的結(jié)合。有以下幾種途徑:.二、程序處置,命令行參數(shù)傳入。步驟如下:1、添加1個新的Module。如圖。.模塊程序:Module init Public host As String Public Port As String Public company As String Sub Main(ByVal CmdArgs() As String) CmdArgs()就是參數(shù) CmdArgs(0)表示第一個參數(shù) cmdArgs.Length表示參數(shù)個數(shù) 注: 1、Sub Main必

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論