工作程序-e表集成開發(fā)手冊(cè)_第1頁(yè)
工作程序-e表集成開發(fā)手冊(cè)_第2頁(yè)
工作程序-e表集成開發(fā)手冊(cè)_第3頁(yè)
工作程序-e表集成開發(fā)手冊(cè)_第4頁(yè)
工作程序-e表集成開發(fā)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

如何集成e 將e表和用戶自己的系統(tǒng)集成在一 使用e表,數(shù)據(jù)庫(kù)為sqlserver 使用e表forjava,數(shù)據(jù)庫(kù)為 系統(tǒng)文件說(shuō) 前臺(tái)文 文 E表系統(tǒng)文件中的配置信息說(shuō) fcpub.js文件中的配置信息說(shuō) fcconfig.xml文件中的配置信息說(shuō) 數(shù)據(jù)庫(kù)表結(jié)構(gòu)說(shuō) FC_ENTITY表結(jié) FC_ENTITYSUB表結(jié) FC_EBDS表結(jié) 數(shù)據(jù)庫(kù)連接的集 e表版數(shù)據(jù)源的配 E表forJ2ee版數(shù)據(jù)源的配 常用數(shù)據(jù) 運(yùn)行報(bào) 在運(yùn)行報(bào)表時(shí)動(dòng)態(tài)指定數(shù)據(jù) 在運(yùn)行報(bào)表時(shí)控制權(quán) 配置運(yùn)行報(bào)表的在iframe中運(yùn)行報(bào) 修改報(bào) 接口開 從運(yùn)行報(bào)表上保存報(bào)表的運(yùn)算結(jié) 調(diào)用Sqlserver庫(kù)的過(guò) 在sqlserver庫(kù)中做好如下的過(guò) 用過(guò)程來(lái)定義報(bào)表的數(shù)據(jù) 用call函數(shù)來(lái)調(diào)用過(guò) 調(diào)用Oracle庫(kù)的過(guò) 在oracle庫(kù)中做好如下的過(guò) 用過(guò)程來(lái)定義報(bào)表的數(shù)據(jù) 用call函數(shù)來(lái)調(diào)用過(guò) 用自己的代碼來(lái)生成報(bào)表運(yùn)行結(jié)果文 在.net中調(diào) 在java中調(diào) 如何集e將e表和用戶自己的系統(tǒng)集成在一,數(shù)據(jù)庫(kù)為sqlserversqlserversqlserver中建好用戶要開發(fā)的數(shù)據(jù)庫(kù),并安裝好e表,假如按默認(rèn)安裝到 下 的.net工程,假如此工程在C:\Inetpub\wwwroot\ 將C:\Inetpub\wwwroot\ebiao\ebsys這個(gè) 到C:\Inetpub\wwwroot\ 把C:\Inetpub\wwwroot\ebiao\bin\中的所有文件到 <?xmlversion="1.0"encoding="utf-<dsname="eformsqloledb"type="oledb"connStr="Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=efdemo;UserID=sa;Password=;"/><dsname="eformsql"type="sqlclient"connStr="DataSource=localhost;InitialCatalog=eformtest;UserId=sa;Password=;"/><dsname="ebsql"type="oledb"connStr="Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=ebtest;UserID=sa;Password=;"/><dsname="ebsqljava"type="jdbc"jdbcDriver="com.newatlanta.jturbo.driver.Driver"jdbcUrl="jdbc:JTurbo://localhost/ebtest/charset=GBK"user="sa"password=""/><dsname="eboracle"type="jdbc"jdbcUrl="jdbc:oracle:thin:@localhost:1521:sys"user="eboracle"<pubparam>用戶.ID,用戶.名稱,部門.ID,部門.名稱,系統(tǒng).單位名稱XML格式的文件,其中<datasources>節(jié)點(diǎn)的內(nèi)容為所有數(shù)據(jù)庫(kù)連接的配置,在SQL-SERVER查詢分析器編輯框內(nèi)執(zhí)行:use ,從而進(jìn)入數(shù)據(jù)庫(kù)名為:操作。點(diǎn)擊圖標(biāo),解壓databasebak.rar文件,打開其中的sqlserver.sql文件,點(diǎn)圖標(biāo),SQLServere省略不做,因?yàn)閑表不要求必須要有e表的系統(tǒng)表。這樣用e表開發(fā)用戶自己的數(shù)據(jù)庫(kù)要用的報(bào)表的開發(fā)環(huán)境配置好了.執(zhí)行就可以進(jìn)入eforjava,數(shù)據(jù)庫(kù)安裝好oracle9i,并解壓安裝好e表forj2ee,假如安裝到下修改web-inf/fcconfig.xml文件,eforj2ee的數(shù)據(jù)庫(kù)連接串保存在此文件中,此文件的內(nèi)<?xmlversion="1.0"encoding="utf-<dsname="fhjtest"type="jdbc"jdbcDriver="com.newatlanta.jturbo.driver.Driver"jdbcUrl="jdbc:JTurbo://localhost/eformtest/charset=GBK"user="sa"password=""/><dsname="efdemo"type="jdbc"jdbcDriver="oracle.jdbc.driver.OracleDriver"jdbcUrl="jdbc:oracle:thin:@localhost:1521:mysys"user="efdemo"password="efdemo"/><dsname="fcsamples"type="jdbc"jdbcDriver="oracle.jdbc.driver.OracleDriver"jdbcUrl="jdbc:oracle:thin:@localhost:1521:mysys"user="fcsamples"password="fcsamples"/><dsname="ebjndi"type="jndi"jndiName="jdbc/ebjndi" p/env"<dsname="eboracle"type="jdbc"jdbcDriver="oracle.jdbc.driver.OracleDriver"jdbcUrl="jdbc:oracle:thin:@localhost:1521:mysys"user="eboracle"password="eboracle"/><dsname="ebsql"type="jdbc"jdbcDriver="com.newatlanta.jturbo.driver.Driver"jdbcUrl="jdbc:JTurbo://localhost/ebtest/charset=GBK"user="sa"password=""/><dsname="eformsql"type="jdbc"jdbcDriver="com.newatlanta.jturbo.driver.Driver"jdbcUrl="jdbc:JTurbo://localhost/eformtest/charset=GBK"user="sa"password=""/><dsname="eformoracle"type="jdbc"jdbcDriver="oracle.jdbc.driver.OracleDriver"jdbcUrl="jdbc:oracle:thin:@localhost:1521:sys"user="eformtest"password="eformtest"/><pubparam>用戶.ID,用戶.名稱,部門.ID,部門.名稱,系統(tǒng).單位名稱XML格式的文件,其中<datasources>節(jié)點(diǎn)的內(nèi)容為所有數(shù)據(jù)庫(kù)連接的配置,解壓databasebak.rar文件,打開其中的oracle.sql文件,將其內(nèi)容在PL/SQL軟件中執(zhí)行,以生成e表平臺(tái)上所用的系統(tǒng)表。這一步也可以省略不做,因?yàn)閑表不要求必須要有e表的系統(tǒng)表。這樣用e表forj2ee開發(fā)用戶自己的數(shù)據(jù)庫(kù)要用的報(bào)表的開發(fā)環(huán)境就配置好了.執(zhí)行就可以進(jìn)系統(tǒng)文件說(shuō)e表系統(tǒng)文件分為前臺(tái)文件和文件。前臺(tái)文件是指htmjscssxml等文件。后dlljar包。Eforjavaefornet版的前臺(tái)文件是一樣的。但文件不一樣。前臺(tái)文件上圖是e表前臺(tái)文件的界面圖,它都在ebsys 下。其中ebsys/eformaspx/ 是e表版的文件。在e表forjava版中不需要此 在 中 提供 是eform的文件,在其下 是eform的樣式文件,其中dj.css在樣式文件中比較重要,所有表單都它 Common有好多常用的頁(yè)面,如在運(yùn)行表單時(shí)先打開djframe.htm的頁(yè)面。 csjsrequest.js這是用于當(dāng)超的地址是到一個(gè)htm頁(yè)面,此時(shí)希望取URL的?后的以參數(shù)名稱=參數(shù)值格式的值時(shí),就需要此JS,它是實(shí)現(xiàn)這樣的功能的。design.js表單設(shè)計(jì)器中要用到的fcbasecont.js基本控件(如radiocheckboxcombobox等)中要用到的一些函數(shù)。fcdataset.js數(shù)據(jù)集控件的一些常用函數(shù)。fcebiao.jslayout布局控件和ebiao控件的實(shí)現(xiàn)函數(shù)。fcgensql.jsSQL語(yǔ)句生成向?qū)Ы缑娴膶?shí)現(xiàn)函數(shù)。fcopendj.js打開表單用的函數(shù)fcother.jsfcpub.js全局JS,它是最常用的函數(shù),幾乎所有的頁(yè)面都會(huì)它fcrundj.js表單運(yùn)行時(shí)會(huì)用到的函數(shù)。fcsavedj.js表單保存時(shí)會(huì)用到的函數(shù)。fcselfuse.jseform系統(tǒng)表單中會(huì)用到的函數(shù)。fcskins.js切換皮膚的函數(shù)。fctoolbar.js自定義表單設(shè)計(jì)器的的功能函數(shù)fctorun.js實(shí)現(xiàn)將表單的設(shè)計(jì)串轉(zhuǎn)換成運(yùn)行串的功能,它在表單設(shè)計(jì)器中保存表單fcupload.js多附件上傳控件的實(shí)現(xiàn)函數(shù)。fcvalid.js數(shù)據(jù)驗(yàn)證的實(shí)現(xiàn)函數(shù)。fcwebgrid.jsgrid控件的常用函數(shù)。htmlarea.jstable-operations.js在表單設(shè)計(jì)器中設(shè)計(jì)htmltable的實(shí)現(xiàn)函數(shù)。Ajax.js微軟JS框架。selectdate.js實(shí)現(xiàn)選擇日期。tabpane.jstab頁(yè)簽控件的實(shí)現(xiàn)函數(shù)。xtree.js樹控件的實(shí)現(xiàn)函數(shù)。 dataset.htc數(shù)據(jù)集控件的實(shí)現(xiàn)fc_code.htcdropdownlist控件的實(shí)現(xiàn)。NumEdit.htcspin控件的實(shí)現(xiàn)。webgrid.htcgrid控件的實(shí)現(xiàn)。 .htc 下是eform要用到的 常用來(lái)保存用戶自定義的頁(yè)面 form_開頭 是一些示例用的表單 保存的是用戶自定義的JS文件其中userfunc.js在默認(rèn)時(shí)表單都會(huì)它可以將 文件如果是e表版就要用到bin,在 ebiao.dll是e表系統(tǒng)的程序。ebiaoext.dll是供用戶集成和擴(kuò)展時(shí)寫的程序工程。WebBill.dll是當(dāng)前工程生成的dll,即當(dāng)前工程的.aspx.cs文件生成的dll.E表版的文件還有ebsys/eformaspx/下的文件,它只有一個(gè)WebBill.aspx,這是由前臺(tái)JS調(diào)用DLL文件編譯成WebBill.dll)來(lái)調(diào)用DLL文件中的方法。如果是e表forjava版,需要web-inf/下的fcconfig.xml文件和perties文件,perties文件是log4j的日志的配置文件。web-inf/lib下文件。其中ebiao.jar是eform運(yùn)行的包。這個(gè)包中的根下是WebBill.class文件,這是一個(gè)servlet,前臺(tái)JS用AJAX方式.fcsoft.ajax這個(gè)包下是ajax.fcsoft.ajax.chart.fcsoft.report.cell.fcsoft.report.core.fcsoft.report.dataset.fcsoft.report.export.fcsoft.report.ext.fcsoft.util commons-fileupload-1.1.jarcommons-io-1.2.jar是用于上傳附件dom4j-1.6.1.jar和jaxen-1.1-beta-6.jardom4j用于分析xml的GUID-OpenTools.jar用于產(chǎn)生GUIDlog4j_128.jarlog4j日志ojdbc14.jaroracle庫(kù)的JDBC驅(qū)動(dòng)sqlserver7jdbc.jaruna2000.jar這是兩個(gè)sqlserver庫(kù)的JDBCbarcode4j.jar md5 .jar讀寫excelitext_099.jar和 E表系統(tǒng)文件中的配置信息說(shuō)JSebsys/fceform/js/fcpub.jsJS中要用到的信息。另一個(gè)是的XML文件,它配置程序中要用到的一些配置信息。如果是e表版這個(gè)文件是binweb-inffcconfig.xml文件。fcpub.js文件中的配置信息說(shuō)var :"/ebsys/eformaspx", //調(diào)用文件的基路徑,for.NET的常用寫法是:/ebsys/eformaspx,eformforj2ee的常用寫法是:/servlet :"/ebsys", 徑,常用寫法是:/eformsys:://=""表示為java版本,=".aspx"為.net//數(shù)據(jù)庫(kù)類型://="FC_DBSTRU"="FC_FLDLIST"://在表單中加載的css文件,路徑在,一般寫://表單skin :"base", //設(shè)計(jì)器的樣式可設(shè)值為:actionButtonDisplay //控件屬性框中的設(shè)置權(quán)限按鈕的屬性值"none" :"DB2ADMIN", :"dj_sn", :"rightmain", :"absolute", //缺省的定位模式=absolute/static list,textarea,|,dbimg,upload",//表單設(shè)計(jì)器按鈕,|是分隔符,br是換行 :"<optionpath=\" </option><optionpath=\" mon/toolbarinput2.htm\">多表輸入</option><optionpath=\" mon/toolbarfind.htm\">查詢</option><option mon/toolbar.htm\">帶</option>",//配置用eform畫的表單的可用工具表示占的高度,如不指定,則取默認(rèn)值為31px,節(jié)點(diǎn)值為名稱,在表單設(shè)計(jì)器的表單屬性窗 :":與連接出錯(cuò) //特定的連出錯(cuò)信 :null,//eform的設(shè)計(jì)區(qū),是個(gè)div :"DsMain", :"null",//取得session的標(biāo)識(shí),這是為了用同步方式取session的方法,常用寫法是:autoAddField:"no" :""http://保存各子窗口的url,:""://原來(lái)的pubdjbh,用于主鍵字段的://原來(lái)的pubDataSet,://原來(lái)的pubEdit,://判斷能不能進(jìn)入表單,為OK :newArray(),//保存校驗(yàn)失敗的事件對(duì)象,用于在保存前再校驗(yàn). :newObject(), :window.createPopup()fcconfig.xml文件中的配置信息說(shuō)<?xmlversion="1.0"encoding="utf-<datasources><dsname="eformsqloledb"type="oledb"connStr="Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=efdemo;UserID=sa;Password=;"/><dsname="eformsql"type="sqlclient"connStr="DataSource=localhost;InitialCatalog=eformtest;UserId=sa;Password=;"/><dsname="ebsql"type="oledb"connStr="Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=ebtest;UserID=sa;Password=;"/><dsname="ebsqljava"type="jdbc"jdbcDriver="com.newatlanta.jturbo.driver.Driver"jdbcUrl="jdbc:JTurbo://localhost/ebtest/charset=GBK"user="sa"password=""/><dsname="eboracle"type="jdbc"jdbcDriver="oracle.jdbc.driver.OracleDriver"jdbcUrl="jdbc:oracle:thin:@localhost:1521:sys"user="eboracle"password="eboracle"<fileroot>/ebsys</fileroot><pubparam>用戶.ID,用戶.名稱,部門.ID,部門.名稱,系統(tǒng).單位名稱</pubparam>數(shù)據(jù)庫(kù)表結(jié)構(gòu)說(shuō)FC_ENTITY表結(jié)構(gòu)CREATETABLEFC_ENTITYorgidchar(11)tbnamevarchar(50)NOTNULL,//表名tbchnnamevarchar(50)NULL,owneridchar(11)NULL,keyPrefixchar(3)FC_ENTITYFC_ENTITYSUB表結(jié)構(gòu)CREATETABLEFC_ENTITYSUBorgidchar(11)tbnamevarchar(50)NOTNULL,//表名fdnamevarchar(50)NOTNULL, chnnamevarchar(50) //字段中文fdtypechar(4)NULL,fdsizeintNULL,//字段長(zhǎng)度f(wàn)ddecintNULL,//小數(shù)位數(shù)typechar(10)NULL,detailxmlvarchar(7000)NULL//詳細(xì)信息,XMLFC_ENTITYSUBFC_EBDS表結(jié)構(gòu)CREATETABLEFC_EBDSnamevarchar(50)NOTNULL,sqlstrvarchar(2000)NULL,//SQLparamvarchar(2000)NULL,//參數(shù)信息fieldchnvarchar(2000)NULL,dsnvarchar(50)NULL,//數(shù)據(jù)源名稱dstypevarchar(12)NULLFC_EBDSECREATETABLEFC_REPORTFILEsNamevarchar(100)NOTNULL,userTypevarchar(50)NULL,//用戶自定的報(bào)表分類sTexttextNULL//報(bào)表的內(nèi)容在的情況下,是可以不用建任何e表系統(tǒng)表的。即不用額外建任何表,e數(shù)據(jù)庫(kù)連接的集據(jù)源的配在 <?xmlversion="1.0"encoding="utf-<dsname="eformsqloledb" Catalog=eformtest;UserID=sa;Password=;"/><dsname="eformsql"type="sqlclient"connStr="DataSource=localhost;InitialCatalog=eformtest;UserId=sa;Password=;"/><dsname="ebsql" Catalog=ebtest;UserID=sa;Password=;"/>這是一個(gè)XML的配置文件,其中的datasources節(jié)點(diǎn)用于配置數(shù)據(jù)源,一般是把可能用到的dsds

// // connStr="Provider=SQLOLEDB;DataSource=localhost;InitialCatalog=eformtest;User 動(dòng)態(tài)數(shù)據(jù)源的配當(dāng)數(shù)據(jù)源名稱為:fcDsnTemp時(shí),表示此時(shí)數(shù)據(jù)庫(kù)連接可以由代碼動(dòng)態(tài)產(chǎn)生。如果需要將fcDsnTemp這個(gè)名稱改名的話,可以通過(guò)修改ebiaoext項(xiàng)目下ConfigFix類中的如下publicstaticstringdatasourceNameTemp"fcDsnTemp";ebiaoext項(xiàng)目下GetDbConnectionpublicstaticDBOperatorgetDBOperator(){EforJ2ee據(jù)源的配 <?xmlversion="1.0"encoding="utf-<dsname="ebjndi"type="jndi"jndiName="jdbc/ebjndi" p/env"<dsname="fhjtest" jdbcUrl="jdbc:JTurbo://localhost/eformtest/charset=GBK"user="sa"password=""/>這是一個(gè)XML的配置文件,其中的datasources節(jié)點(diǎn)用于配置數(shù)據(jù)源,一般是把可能用到的dsdsname="fhjtest" // p/env表示查找數(shù)據(jù)源時(shí)的環(huán)境串前綴,在不同的WEB服務(wù)器中不同,如中是p/env,而Weblogic和Websphere中均不需要,可以不 jdbcUrl="jdbc:JTurbo://localhost/eformtest/charset=GBK"http://URL 如果type=fcpool則表示使用e表自身的數(shù)據(jù)庫(kù)連接池此時(shí)數(shù)據(jù)庫(kù)連接信息的配置在webapps\eform\web-inf\classes\perties文件中動(dòng)態(tài)數(shù)據(jù)源的配 當(dāng)數(shù)據(jù)源名稱為:fcDsnTemp時(shí),表示此時(shí)數(shù)據(jù)庫(kù)連接可以由代碼動(dòng)態(tài)產(chǎn)生。如果需fcDsnTemp這個(gè)名稱改名的話,可以通過(guò)修改.fcsoft.report.ext.ConfigFix類中publicstaticStringdatasourceNameTemp"fcDsnTemp";//動(dòng)態(tài)的數(shù)據(jù)源名稱,當(dāng)數(shù) publicstaticConnectiongetConnection()throwsException中。加上語(yǔ)義層顯示字段中文SQLtbnamevarchar(50)NOTNULL,tbchnnamevarchar(50)NULLtbnamevarchar(50)NOTNULL,fdnamevarchar(50)NOTNULL,chnnamevarchar(50)NULL)fc_entity(tbname字段和表中文名稱(tbchnname字段,fc_entitysub表用于保存字段中文名稱,表名稱(tbname字段),字段名稱(fdname字段),字段中文名稱(chnname字段。ebsys/fceform/js/fcpub.js5 : :SQL語(yǔ)句向?qū)Ы缑嬷斜銜?huì)自動(dòng)列出這兩個(gè)表常用數(shù)據(jù)作只需要在開始使用時(shí)做一次就可以了.SQL語(yǔ)句是:CREATETABLEFC_EBDSnamevarchar(50) NOTNULL,sqlstrvarchar(2000) NULL,paramvarchar(2000) NULL,fieldchnvarchar(2000) NULL,dsnvarchar(50) NULL,dstypevarchar )存為常用數(shù)據(jù)集按鈕,這樣以后在別的報(bào)表中再需要此數(shù)據(jù)集時(shí),便不用從頭來(lái)設(shè)置,可以選運(yùn)行報(bào)IE(注意:這個(gè)路徑一般是對(duì)于e表for.NET版而言的,對(duì)于e表forJ2EE版而言,往往需 , ,下同testURLurlpara=yes表示不會(huì)出現(xiàn)報(bào)表參數(shù)的輸入界面。startdate=2005-02-01startdate2005-02-01URL中未給值的報(bào)表參URL&e_runsavefile=a1則表示運(yùn)行報(bào)表時(shí)會(huì)在服務(wù)器端將當(dāng)前報(bào)表的運(yùn)行結(jié)果保存為文件,主文件名為a1,具體是當(dāng)報(bào)表結(jié)果分多頁(yè)時(shí),文件名為的fcpub.tempFilePath。URL&宏變量名=URL&e_pageno=2表示直接顯示報(bào)表結(jié)果中的第二頁(yè)的內(nèi)容,1開始的整數(shù),但當(dāng)&e_pageno=-1表示將分頁(yè)前的整個(gè)報(bào)表運(yùn)算結(jié)果顯示用&e_pageno=-1來(lái)運(yùn)行報(bào)表,一般用只需要顯示報(bào)表運(yùn)行結(jié)果的場(chǎng)合,因?yàn)槭遣辉谶\(yùn)行報(bào)表時(shí)動(dòng)態(tài)指定數(shù)據(jù)URL后面加上&urldatasource=值的方式來(lái)實(shí)現(xiàn)。這個(gè)值的格式是: //default表示要打開默認(rèn)的數(shù)據(jù)庫(kù)連url=\"DataSource=localhost;InitialCatalog=ebtest\"dsURLjavascriptescape后才行。URL后加上:在運(yùn)行報(bào)表時(shí)控制權(quán)在運(yùn)行報(bào)表時(shí)常常需要控制權(quán)限,比如運(yùn)行A報(bào)表,則不能運(yùn)行A報(bào)表。e表中實(shí)現(xiàn)此功能是通過(guò)在ebsys/fceformext/js/userfunc.js中的*functionURLname=報(bào)表名稱的方式,則在此函數(shù)中session變量來(lái)取得當(dāng)前用戶信息。再判斷能不能正常運(yùn)行報(bào)表,如最后運(yùn)callback(true);//執(zhí)行此命令表示能正常運(yùn)行報(bào)表.callback(false);//通知關(guān)閉窗口GetSession("username",function(arrRet){varsessionValue=arrRet["username"];if(sessionValue=="liuxm"&&parent.Request.QueryString("name").toStringcallback(false);}配置運(yùn)行報(bào)表運(yùn)行報(bào)表的可以通過(guò)ebsys/fceform/ereport/js/loadreport.js中的fcpub.toolbar變運(yùn)行報(bào)表的的樣式可以通過(guò)ebsys/fceform/ereport/js/loadreport.js中的fcpub.toolbarstyleURL后加上&tbcss=red之類的方式來(lái)指定的樣式。共有:red,yellow,light,Office,blue,green,white,CoolBlue等樣式名ebsys/fceformext/js/userfunc.js*function函數(shù)中寫代碼來(lái)實(shí)現(xiàn)根據(jù)不同的操作員的權(quán)限來(lái)顯示不同的運(yùn)行報(bào)表的按鈕即實(shí)現(xiàn)比如操作員為時(shí)不能有導(dǎo)出excel的功能。sessionfcpub.toolbar全局變量賦值,以控制運(yùn)行報(bào)表的上出哪些按鈕。iframe中運(yùn)行報(bào)ebsys/ebsamples/iframerun.htmhtm文件中<iframeid=iframe1src="../fceform/ereport/ebrun.htm?name=samples/s_數(shù)據(jù)集函數(shù)"width=0height=0></iframe>iframewidthheight0,否則的話可以根據(jù)需要widthheight值。然后在頁(yè)面中加一個(gè)按鈕:<buttononclick="uf_test()">打印JSfunction//要調(diào)用運(yùn)行報(bào)表的函數(shù),可以用如下方式//其中,Print(4)為運(yùn)行報(bào)表窗口的全局的js函數(shù).}也可以做其它的工作,比如導(dǎo)出PDF文件等等。運(yùn)行報(bào)表窗口提供的js函數(shù)有MovePage(1)上一頁(yè)MovePage(2)上一頁(yè)MovePage(3)第一頁(yè)MovePage(4)最后一頁(yè)P(yáng)rint(1)打印預(yù)覽Print(2)打印Print(3)Print(4)SaveasExcel(true)excel文件中SaveasExcel(false)excel文件中SaveasPdf()pdf文件中實(shí)際上也就是上提供的功能函數(shù)修改報(bào)IE來(lái)直接在報(bào)表設(shè)計(jì)器中打開此報(bào)表來(lái)修改,其中s_simplelist為報(bào)表文件名,samples/為它批量打印報(bào)ebsys/ebsamples/batchPrint.htm文functionuf_start()vararr=newArray();arr[0]fcpub.rootPath+"samples/s_simplelist.htm";arr[1]=fcpub.rootPath+"samples/s_cross0.htm";arr[2]=fcpub.rootPath+"samples/s_報(bào)表區(qū)域.htm"; //組織要打印配置的XMLvarsb=newSys.StringBuilder("<filenames>");for(vari=0;i<arr.length;i++){sb.append("<fn><in>"+arr[i]+}varsPaths=><orderpageno>no</orderpageno></paths>";//fromdb=yes表示報(bào)表文件保存在數(shù)據(jù)庫(kù)中=yesvarsXml=}接口開將報(bào)表格式文件保存到數(shù)據(jù)庫(kù)e表名:e_reportfilesName notnullsTexttextsName保存報(bào)表名,sText勾上[從數(shù)據(jù)庫(kù)中讀寫報(bào)表格式文件],然后按確定e_reportfile自定義數(shù)據(jù)數(shù)據(jù)集的內(nèi)容一般來(lái)說(shuō)都是來(lái)自于一個(gè)SQL語(yǔ)句或過(guò)程的運(yùn)行結(jié)果,但有時(shí)可能s_自定義數(shù)據(jù)集.htm為例來(lái)說(shuō)明。s_自定義數(shù)據(jù)集.htm文件,進(jìn)入數(shù)據(jù)集的[詳細(xì)屬性]數(shù)據(jù)集報(bào)表文件在同一 下。要想運(yùn)行此表,應(yīng)修改xmlfile后的路徑值,讓它正確地找到userds.xml文件。efor.Net版本中的做法是ebiaoextDesignReportEvent.cs///<paramname="prop">設(shè)置自定義數(shù)據(jù)集時(shí)定義的參數(shù)///<paramname="colNameList">字段名列表///<paramname="dataList">整個(gè)數(shù)據(jù)集的數(shù)據(jù)publicstaticvoidUserDefineDataSet(System.Collections.Hashtableprop,outSystem.Collections.ArrayListcolNameList,outSystem.Collections.ArrayListdataList)prop =="C:/Inetpub/wwwroot/WebBill/userds.xml"eforJ2EE版本中的做法是 .fcsoft.report.ext包下有一個(gè)UserDs.java的示例文件中定義如下函數(shù)/////////<paramname="prop">設(shè)置自定義數(shù)據(jù)集時(shí)定義的參數(shù)///<paramname="colNameList">返回字段名列表///<paramname="dataList">返回整個(gè)數(shù)據(jù)集的數(shù)據(jù)publicstaticvoidUserDefineDataSet(Hashtable prop,ArrayListcolNameList,ArrayListprop 和xmlfile, =="C:/Inetpub/wwwroot/WebBill/userds.xml"在這個(gè)函數(shù)中輸出colNameList(字段名列表)和dataList(整個(gè)數(shù)據(jù)集的數(shù)據(jù)),這兩個(gè)都是ArrayListdataList的每個(gè)元素的內(nèi)容是Object[]。colNameList,dataListxmlfilexml文件來(lái)得到數(shù)據(jù)集。用戶在自定義數(shù)據(jù)集定期運(yùn)行報(bào)表的實(shí)e表內(nèi)部提供了函數(shù)來(lái)實(shí)現(xiàn)成批的運(yùn)行報(bào)表,并將報(bào)表結(jié)果保存為文件(html,xls,pdf等 <config>econfig文件的路徑 <exptype>htm/xls/xlt/pdf/*</exptype生成文件的類型,為* 名<genname>生成后的文件名(jstxtXml.value為輸入?yún)?shù)值,運(yùn)行后的輸出參數(shù)也返回到txtXml.value中。SendHttp(tocol+"http://"+location.host+fcpubdata.servletPath+functionvarsRet=result.value;txtXml.value=sRet;} 裝入已存好的報(bào)表結(jié)果頁(yè)一般是先用上節(jié)的方式,成批的運(yùn)行報(bào)表,并將報(bào)表結(jié)果保存為文件(html,xls,pdfebsys\ebexpfile\下。且文件名,ebBill,ebsys,ebfile,samples,s_simplelist.xlsWebBill中當(dāng)前虛擬的名稱。替換為htm文件時(shí),應(yīng)為:,WebBill,ebsys,ebfile,samples,s_simplelist_1.htm格式,主文件名加上_1表示第一頁(yè)的內(nèi)IE 在其中點(diǎn)擊鼠標(biāo)右鍵,點(diǎn)屬性,可以看出是直接到在這個(gè)報(bào)表運(yùn)行上點(diǎn)導(dǎo)出到Excel文件和導(dǎo)出為pdf文件時(shí)也將是直接調(diào)用以前生成Excelpdf文件。要點(diǎn):URL中加上&e_directrun=yes表示直接打開已經(jīng)生成好的報(bào)表結(jié)果文件。URL中加上&e_pages=22,一般的流程是在生成報(bào)表XML信息中含有報(bào)表的總頁(yè)數(shù),用戶可以用程序?qū)⑦@報(bào)表的總頁(yè)數(shù)先xml文件中,也可以保存到數(shù)據(jù)庫(kù)的表中。然后在裝入已存好的&e_pages=2URL運(yùn)行報(bào)表串URL中有&e_pages=2必須在有&e_directrun=yes時(shí)才起作用。含參數(shù)的報(bào)表的運(yùn)算結(jié)果保URL&e_runsavefile=testsave則表示會(huì)將本次報(bào)表的運(yùn)行結(jié)果保存為文件(含多頁(yè)的每個(gè)htm文件,兩個(gè)excel文件,pdf文件一般會(huì)01件(注意:testsave是主文件名)是日期為:2007-08-01時(shí)的報(bào)表運(yùn)行結(jié)果文件。它默認(rèn)情ebsys\ebtmpfile\下。iframe中運(yùn)行,而且需要利用報(bào)HandleAfterInitReport函數(shù)名是固定名稱,是在運(yùn)行報(bào)表結(jié)束后就會(huì)調(diào)用此函數(shù)oRet現(xiàn)有oRet.pagesfunction成批保存報(bào)表結(jié)果的示例詳見:\ebsys\ebsamples\iframesave.htmurle_directrun=主文件名,ebsys\ebtmpfile\下保存當(dāng)前報(bào)表結(jié)果的文件。比如在\ebsys\ebtmpfile\下保存了幾個(gè)testsave的文件。它是samples\s_simplelistIE的地址欄上寫: 限。然后在fceformext/js/userfunc.js文件的functionEbiaoEnterStatus(callback)的開始處加if(parent.Request.QueryString("e_runsavefile").toString()!="undefined"||(parent.Request.QueryString("e_directrun").toString()!="undefined"&&parent.Request.QueryString("e_directrun").toString()!="yes")){fcpub.tempFilePath=GetUrlFirstPart()+}其意思是在運(yùn)行報(bào)表前調(diào)整全局變量fcpub.tempFilePath的值到你的子 了。if(parent.Request.QueryString("e_runsavefile").toString()!="undefined"||(parent.Request.QueryString("e_directrun").toString()!="undefined"&&parent.Request.QueryString("e_directrun").toString()!="yes")){這個(gè)條件判斷可以根據(jù)自己的從運(yùn)行報(bào)表上保存報(bào)表的運(yùn)算結(jié)本節(jié)介紹如何實(shí)現(xiàn)在運(yùn)行報(bào)表上加一個(gè)保存按鈕,點(diǎn)此按鈕后將運(yùn)算結(jié)果保存為文修改ebsys/fceform/ereport/js/loadreport.jsfcpub.toolbar變量的值,由:即在運(yùn)行上加上了一個(gè)保存按鈕ebsys/fceformext/js/userfunc.jsEbiaoSaveEvent()函數(shù),*從上點(diǎn)保存按鈕時(shí)執(zhí)行此函數(shù),它用保存當(dāng)前報(bào)表運(yùn)行結(jié)果functionEbiaoSaveEvent()varsaveFileName="curSave";//要保存的主文件名RunReport(1,"保存",saveFileName,function(result){varTotalPages=result.pagesvarsRetValueresult.valuexml字符串.varsReportFile=parent.sPubPath;//本次運(yùn)行的報(bào)表文件.}在此函數(shù)中,執(zhí)行RunReport(1,"保存",saveFileName,function(result){});時(shí)會(huì)調(diào)用程序來(lái)function(result){varTotalPages=result.pagesvarsRetValueresult.valuexml字符串.varsReportFile=parent.sPubPath;//本次運(yùn)行的報(bào)表文件.}在此函數(shù)中可以取到返回的信息,這些信息可以保存起來(lái)供后面使用保存報(bào)表結(jié)果文件時(shí)注yes&e_directrun=yes表示固定undefined般這個(gè)超的地址是用相對(duì)路徑來(lái)到ebsys\fceform\ereport\ebrun.htm的.而要保證一../../fceform/ereport/ebrun.htm能找到ebrun.htm文件如何實(shí)現(xiàn)在運(yùn)行報(bào)表時(shí)調(diào)整統(tǒng)計(jì)圖功ebfile/samples/動(dòng)態(tài)統(tǒng)計(jì)圖.htm這個(gè)報(bào)表是實(shí)現(xiàn)在運(yùn)行報(bào)表時(shí)調(diào)整統(tǒng)計(jì)圖功能的,它主要B5=${macro1},動(dòng) 圖 為chart("title=xx示例&xlabel=c3&titlefont=隸書,16pt,0&titlecolor=#0000ff&xtitlefont=宋 體,12pt,0&xlabelcolor=#0000ff&is3d=1&islegend=1&s10_name= 合同利用js的escape函數(shù)轉(zhuǎn)碼后的值,轉(zhuǎn)碼的目的是怕URL中數(shù)據(jù)實(shí)現(xiàn)自定義函數(shù)功數(shù)功能的大致步驟為:由用戶自行編寫程序,實(shí)現(xiàn)其publicvoidcalculate()方法,通 下的ebcustomfunc.xml中后,能如e表內(nèi)置的函數(shù)一樣可以直接在報(bào)表文件中使用其的函數(shù)名。<?xmlversion="1.0"encoding="GB2312"<funcname="upper1"class="LoadEbiao.Upper1"type="1"<funcname="sum1"class="LoadEbiao.DSSum1"type="2"<funcname="取出" .fcsoft.report.core.function.DSGet"type="4"”對(duì)于e表for.NET版來(lái)說(shuō),通過(guò)在工程LoadEbiao中增加的函數(shù)代碼,代碼的法可以參照示例中的方式編譯生成dll文件后將LoadEbiao.dll到系統(tǒng)的 下eforJ2EEeUpperjava文件,放在相應(yīng)的包下。Upper.java的代碼如下: publicclassUpperextends{public{}publicObject{if(paramList.size()==thrownewReportError("upper函數(shù)參數(shù)為空");ExpParseparam1=(ExpParse)paramList.get(0);if(result1==null)returnresult1;if(!(result1instanceofString)){thrownewReportError("upper1應(yīng)為字符串}{Stringstr=(String)result1;returnstr.toUpperCase();}}}e改短(groupG等等。象<funcname="取出" .fcsoft.report.core.function.DSGet"type="4"就是將系統(tǒng)內(nèi)的get”取出”getefor.NETyp=””4”e表forvatype=””表示為常規(guī)函數(shù),type=2”<funcname="取出" .fcsoft.report.core.function.DSGet"type="2"報(bào)表運(yùn)行時(shí)改變參數(shù)或宏的事增加報(bào)表的宏定義。在e表中通過(guò)寫的IParamMacro事件代碼來(lái)實(shí)現(xiàn)。對(duì)于efor.NETLoadEbiaoIparamMacro.cs文件的代碼,代碼的寫法可以參照示例中的方式編譯生成dll文件后將LoadEbiao.dll到系統(tǒng)的改變參數(shù)的/////////<paramname="env">當(dāng)前報(bào)表運(yùn)行環(huán)境///<returns>無(wú)publicvirtualvoidsetParams(Env{stringsParamTag=env.Request["e_setparammacro"];stringparamName="arg1"if(env.isParamName(paramName))env.putParam(paramName,"StringMapparamsMap=newStringMap(1); ra"]="newvalue";}改變宏的事/////////<paramname="env">當(dāng)前報(bào)表運(yùn)行環(huán)境///<returns>無(wú)publicvirtualvoidsetMacros(Env{stringsParamTag=env.Request["e_setparammacro"];stringmacroName="macro1"if(env.isMacroName(macroName))env.putMacro(macroName,"StringMapmacrosMap=newStringMap(1);macrosMap["newmacro"]="newvalue";}在此處寫了事件代碼并編譯LoadEbiao.dll,到系統(tǒng)的bin后。按常規(guī)方式運(yùn)行報(bào)表時(shí)并不會(huì)調(diào)用到此處的事件代碼,只有在運(yùn)行報(bào)表的URL的后加上了&e_setparammacro=yes后才會(huì)調(diào)用此處寫的事件代碼。&e_setparammacro=yesyes也可以用其它的非空值代替。也就是說(shuō)只要&e_setparammacro非空才能調(diào)用事件代碼。因?yàn)閟tringsParamTag=env.Request["e_setparammacro"];來(lái)區(qū)分了。env.Request["e_setparammacro"]&e_setparammacro=yesyes這個(gè)值。比三類報(bào)表參數(shù)的處理方式:type1,type2,type3;則事件代碼為:stringsParamTagenv.Request["e_setparammacro"];if(sParamTag.equals(“type1”)){}if(sParamTag.equals(“type2”))}if(sParamTag.equals(“type3”))}在運(yùn)行報(bào)表時(shí)要調(diào)用第一種報(bào)表參數(shù)的處理方式就加上:&e_setparammacro=type1,要調(diào)用第二種報(bào)表參數(shù)的處理方式就加上:&e_setparammacro=type2,以此類推。arg1=1arg1=2,則最終是按報(bào)表參arg1=2來(lái)運(yùn)算報(bào)表的。eforJava.fcsoft.report.extsetMacros(Envenv)方法用于設(shè)置宏值。用戶可以修改這部分代碼后,編譯運(yùn)行即可。報(bào)表運(yùn)行時(shí)改變數(shù)據(jù)集配置的事通過(guò)寫的IDataSet事件代碼來(lái)實(shí)現(xiàn)。efor.NETLoadEbiaoIDataSet.cs文件的代碼,代碼的寫法可以參照示例中的方式。編譯生成dll文件后,將LoadEbiao.dll到系統(tǒng)的改變數(shù)據(jù)集配置的事/////////<paramname="env">當(dāng)前報(bào)表運(yùn)行環(huán)境///<paramname="dss">原始的數(shù)據(jù)集配置信息///<returns>處理后的數(shù)據(jù)集配置信息publicvirtualGetDataSetssetDataSetConfigs(Envenv,GetDataSets{stringsParamTag=env.Request["e_setdataset"];DataSetConfigdsc=dss.get_Renamed("ds1");dsc.SQL"select*frome_group";sql語(yǔ)句dss.put(dsc);//將修改后的dataset加回DataSetConfignewdsc=newDataSetConfig();newdsc.Name="ds2";//數(shù)據(jù)集名稱,必須指定newdsc.SQL"select*frome_groupwheresdw=?";newdsc.addSQLArgument("公司",ArgDataType.STRING);//設(shè)置參數(shù)的值return}在此處寫了事件代碼并編譯LoadEbiao.dll,到系統(tǒng)的bin后。按常規(guī)方式運(yùn)行報(bào)表時(shí)并不會(huì)調(diào)用到此處的事件代碼,只有在運(yùn)行報(bào)表的URL的后加上了&e_setdataset=yes&e_setdataset=yesyes也可以用其它&e_setdatasetstringsParamTag=env.Request["e_setdataset"];來(lái)區(qū)分了。env.Request["e_setdataset"]&e_setdataset=yesyes這個(gè)值。比stringsParamTagenv.Request["e_setdataset"];if(sParamTag.equals(“type1”)){}if(sParamTag.equals(“type2”))}if(sParamTag.equals(“type3”))}在運(yùn)行報(bào)表時(shí)要調(diào)用第一種改變數(shù)據(jù)集配置的處理方式就加上:&e_setdataset=type1,要調(diào)用第二種改變數(shù)據(jù)集配置的處理方式就加上:&e_setdataset=type2,以此類推。eforJava.fcsoft.report.ext下的SetInRunReport.Java文件中。其中有publicGetDataSetssetDataSetConfigs(Env調(diào)用Sqlserver庫(kù)的過(guò)調(diào)用過(guò)程的地方有兩處:1是在定義數(shù)據(jù)集時(shí),選擇類型為過(guò)程。2是在應(yīng)calldbcall函數(shù)時(shí)。在sqlserver庫(kù)中做好如下的過(guò)selecttop3idfrom@Searchvarchar(100)exec('selectimoneyfrome_group'+@Search)@Searchvarchar(100) @retvarchar(1000)out--exec('selectimoneyfrome_group@Search)set@ret='值:'+@Search過(guò)程e_test是一個(gè)簡(jiǎn)單的sql語(yǔ)句,過(guò)程e_testpara含有一個(gè)輸入?yún)?shù),過(guò)程用過(guò)程來(lái)定義報(bào)表的數(shù)據(jù)版來(lái)說(shuō),根據(jù)使用的數(shù)據(jù)庫(kù)連接對(duì)象的不同而設(shè)置不同:用OleDb方式來(lái)連接的話,應(yīng)設(shè)置如下:SqlClient要注意此時(shí)必須要設(shè)置參數(shù)名稱Search,且參數(shù)名稱Search必須和過(guò)程eforJavaOleDb用call函數(shù)來(lái)調(diào)用過(guò)版來(lái)說(shuō),根據(jù)使用的數(shù)據(jù)庫(kù)連接對(duì)象的不同而設(shè)置不同:用OleDb方式來(lái)連接的話,應(yīng)設(shè)置如下:?jiǎn)卧竦谋磉_(dá)式為:=call("e_testpara","wheresarea='表示調(diào)用過(guò)程:e_testpara,。第二個(gè)及以后的參數(shù)為過(guò)程的參數(shù)值數(shù)值為@@result時(shí),表示此參數(shù)為輸出參數(shù)。默認(rèn)時(shí),輸出參數(shù)的類型為字符型,長(zhǎng)度為SqlClient方式來(lái)連接的話,應(yīng)設(shè)置如下單元格的表達(dá)式為:=call("e_testpara","search","wheresarea='表示調(diào)用過(guò)程:e_testpara,第二個(gè)參數(shù)為參數(shù)名列表,多個(gè)參數(shù)時(shí)用逗號(hào)分隔開參數(shù)名稱必須和過(guò)程e_testpara中定義的參數(shù)名稱一樣。第三個(gè)及以后的參數(shù)為過(guò)程隔開參數(shù)名稱,第三個(gè)及以后的參數(shù)為過(guò)程的參數(shù)值。當(dāng)參數(shù)值為@@result時(shí),表示callcall函數(shù)中的代碼:usingusingExpParse usingFunctionUnit= usingConvertTool= usingReportError= usingSQLTool= usingSystem.Data.OracleClient;usingSystem.Data.SqlClient;usingSystem.Data.OleDb;usingSystem.Data; {publicclass{public{}publicoverrideSystem.Object{{System.Data.IDbConnectioncn=if(cn==null||(cn.State==System.Data.ConnectionState.Closed))thrownewReportError("過(guò)程調(diào)用函數(shù)執(zhí)行異常,無(wú)有效數(shù)據(jù)庫(kù)連接");System.Stringencoding=env.getDBCharset();if(paramList.Count==0)thrownewReportError("過(guò)程調(diào)用函數(shù)參數(shù)列表為空");ExpParseparam1=(ExpParse)paramList[0];System.Objectresult1=ConvertTool.getValue(param1.calculate());System.Stringsql=null;if(result1issql=((System.String)thrownewReportError("過(guò)程調(diào)用函數(shù)參數(shù)1應(yīng)為字符串");mandpst=SupportClass.TransactionManager.manager.PrepareCall(cn,String[]argNameList=null;intstartPos=1;if(pst mand||pst {startPos=2if(paramList.Count>1){ExpParseparam2=(ExpParse)paramList[1];System.Objectresult2=System.StringargNames=null;if(result2isSystem.String){argNames=((System.String)argNameList=argNames.Split(',');//參數(shù)名用逗號(hào)分開if(argNameList.LengthparamList.Count-startPos)thrownewReportError("call}{thrownewReportError("過(guò)程調(diào)用函數(shù)參數(shù)2}}}OracleParameteroraP=null;SqlParametersqlP=null;OleDbParameteroledbP=null;intrn=0;for(inti=startPos;i<paramList.Count;{ExpParseparam=(ExpParse)paramList[i];if(param==null)thrownewReportError("stringargNameif(startPos==2)argName=argNameList[i-startPos];System.Objectresult=ConvertTool.getValue(param.calculate());if(result!=null&&{if(pstis mand){//":"+Convert.ToString(

oraP=newOracleParameter();//oraP.ParameterName=argName;//"p_CURSOR";//oraP.OracleType=OracleType.Cursor;oraP.OracleType=OracleType.VarChar;oraP.Size=4000;oraP.Direction=System.Data.ParameterDirection.ReturnValue;//此處用}catch(Exceptione) thrownewReportError(System.String.Concat("過(guò)程調(diào)用參數(shù)異常:",e.Message.ToString().ToString()),e);}if(pstis mand){sqlP=newSqlParameter();//sqlP.ParameterName=argName;sqlP.Size=4000;sqlP.SqlDbType=sqlP.Direction=System.Data.ParameterDirection.Output;//此處要用}catch(Exception{ thrownewReportError(System.String.Concat("過(guò)程調(diào)用參數(shù)異常:",e.Message.ToString().ToString()),e);}if(pstis mand){oledbP=newOleDbParameter();//oledbP.Size=4000;oledbP.OleDbType=oledbP.Direction=System.Data.ParameterDirection.Output;//此處要用}catch(Exception{ thrownewReportError(System.String.Concat("過(guò)程調(diào)用參數(shù)異常:",e.Message.ToString().ToString()),e);}}{}}

if(rn==rn=SQLTool.setObject(pst,i-startPos+1,result,if(oraP!=null||

溫馨提示

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

評(píng)論

0/150

提交評(píng)論