版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、開發(fā)培訓(xùn)文檔數(shù)據(jù)庫安裝與配置數(shù)據(jù)庫安裝 準(zhǔn)備好安裝文件之后,我們便可以開始安裝Cach:步驟1:在Windows 中,運行 安裝文件目錄下的SETUP.EXE 文件。首先彈出的是 Cach 安裝程序界面以及使用協(xié)議,閱讀協(xié)議后,如果同意協(xié)議內(nèi)容,準(zhǔn)備好安裝文件之后,我們便可以開始安裝Cach:步驟1:在Windows 中,運行 安裝文件目錄下的SETUP.EXE 文件。首先彈出的是 Cach 安裝程序界面以及使用協(xié)議,閱讀協(xié)議后,如果同意協(xié)議內(nèi)容,點擊 按鈕 ”是”,進(jìn)入下一頁面。步驟2:如果本機(jī)操作系統(tǒng)是第一次安裝Cach,將會提示輸入安裝名稱,默認(rèn)值為“CACHE”。* 安裝名稱又稱配置名
2、稱,當(dāng)一臺計算機(jī)安裝了多個Cach 時,此名稱用來進(jìn)行標(biāo)識。* 如果本機(jī)已安裝了Cach,安裝程序?qū)@示出當(dāng)前已安裝的Cach 列表,我們可以選擇覆蓋原有的Cach 或添加一個新的Cach。點擊 按鈕 “Next”,進(jìn)入下一頁面。步驟3:在本頁面中設(shè)定安裝類型和安裝路徑。Cach 安裝程序中共有三種安裝類型:a. 標(biāo)準(zhǔn)(Standard,默認(rèn)選項)。安裝Cach 服務(wù)器和客戶端的所有工具。b. 客戶端(Client)。只安裝Cach 的客戶端的所有工具。c. 自定義(Custom)。允許你自己定制要安裝到你的計算機(jī)上的各個部分的清單,例如:只作Web 服務(wù)器安裝。設(shè)置目標(biāo)文件夾:安裝路徑默認(rèn)
3、為 “c:CacheSys”。你可以點擊 “瀏覽” 來更改希望安裝在那個文件夾。點擊 按鈕 “下一步”,進(jìn)入下一頁面。步驟4:在本頁面中可選擇設(shè)置成Unicode 支持(16-bit)。(*否則系統(tǒng)默認(rèn)將會是自動設(shè)置成為8-bit 的)選擇 “Unicode”,這樣Cach 就可以支持中文顯示。點擊 按鈕 “下一步”,進(jìn)入下一頁面。步驟5:本頁面列出了前面步驟中所輸入的信息以待最后檢查。檢查無誤后,點擊 按鈕 “下一步”,便開始安裝過程。* 此時Cach 將開始安裝步驟6:安裝過程將需要要持續(xù)一段時間。在這期間安裝進(jìn)程可能會暫停,進(jìn)行提問:如果安裝程序沒有發(fā)現(xiàn)許可證(License Key),
4、將會提示是否現(xiàn)在安裝許可證,選擇“否(N)”時。我們可以在Cach 安裝完成后再安裝許可證。如果安裝程序發(fā)現(xiàn)IIS(Internet Information Service)服務(wù)正在運行,將會進(jìn)一步提示是否現(xiàn)在關(guān)閉IIS 服務(wù)以配置CSP 腳本驅(qū)動程序。選擇 “Yes”。安裝程序會自動配置CSP 到IIS 中。* 如果運行的是Apache 服務(wù)器,安裝程序也會檢測到并自動配置。* 安裝完成之后,我們也可以再去修改Web Server 的配置。步驟7:安裝過程順利完成后,點擊 按鈕 “完成”,退出安裝程序。安裝過后在Cach 安裝完畢后,在我們的計算機(jī)中多了如下項目: 在文件系統(tǒng)中,新增了一個文
5、件夾目錄:“c:CacheSys” (該目錄即為安裝階段默認(rèn)的安裝路徑)。Cach 的系統(tǒng)文件和數(shù)據(jù)庫文件等都位于這個目錄中:* 對于不同的安裝配置,目錄結(jié)構(gòu)會略有不同。但主要的目錄如Bin、CSP 和Mgr 不會有變化。 在Windows 桌面右下方的任務(wù)欄中增加了一個立方體形狀的圖標(biāo) ,我們稱之為Cach 立方體(Cach Cube)。它是訪問Cach 的最常用的入口。點擊 Cach 立方體,將會彈出一個菜單,通過此菜單我們可以選擇各種工具來管理Cach。菜單中包含如下項目:菜單項 中文名稱 功能Getting Started 入門文檔 初學(xué)者可從中獲取必要信息Start Cach 啟動C
6、ach 啟動Cach 服務(wù)Stop Cach 關(guān)閉Cach 關(guān)閉Cach 服務(wù)。點擊后選擇是要關(guān)閉還是要重新啟動Cach。Studio 工作室 Cach 的集成開發(fā)環(huán)境。Terminal 終端 通過類似于DOS 的終端界面訪問CachExplorer 資源管理器 查看Cach 中的數(shù)據(jù)資源,包括多維數(shù)組、類和例程SQL Manager SQL 管理器 通過關(guān)系型方式訪問CachControl Panel 控制面板 監(jiān)視和管理Cach 的運行Configuration Manager 配置管理器 進(jìn)行基本配置,包括數(shù)據(jù)庫的配置Documentation 聯(lián)機(jī)文檔 只有啟動Cach 后才可以閱讀全
7、部文檔信息Remote System Access 遠(yuǎn)程系統(tǒng)訪問 在本地控制遠(yuǎn)端的Cach 服務(wù)器(任意平臺)。UNIX 系統(tǒng)的管理要通過這種方式實現(xiàn)。子菜單中同樣包含了工作室,終端,資源管理器,SQL 管理器,控制面板,配置管理器,聯(lián)機(jī)文檔等菜單項。Preferred Server 當(dāng)前使用的Cach服務(wù)器子菜單中可以編輯Cach 服務(wù)器列表。在這里配置遠(yuǎn)程服務(wù)器。我們可以在一臺Windows 平臺的計算機(jī)上管理網(wǎng)絡(luò)中所有的各種平臺的Cach 服務(wù)器。About 關(guān)于 查看版本Exit 退出 關(guān)閉任務(wù)欄中的Cach 立方體安裝FDBMS解壓縮FDBMS的壓縮包,根據(jù)FDBMS中的readme
8、文件安裝復(fù)制CACHE.DAT到 c:cachesysmgrfdbms 目錄(fdbms目錄要創(chuàng)建)在cache的configuration manager中創(chuàng)建相應(yīng)的Database和Namespace在Terminal中執(zhí)行USER zn “%SYS”%SYSdo PROTECTDirectory: : c:cachesysmgr = c:cachesysmgrfdbmsSet the protection codes of globalsOwner: RWD= RWDGroup: N= RWDWorld: N= RWDNetwork:RWD= RWDAll Globals? No = N
9、oGlobal rOBJ1 item selected from23 available globalsGlobal Done.More? No = NoDirectory: : c:cachesysmgr = QUITSYS zn “FDBMS”FDBMS d mdbmsins(“”,”FDBMS”)ALL DONE3.數(shù)據(jù)庫配置在我們的實際應(yīng)用中,可以拷貝一個配置好的cpf文件,放到安裝好的數(shù)據(jù)庫目錄下(如c:cachesys目錄下),然后到configuration Manager中修改database的路徑,重新啟動。DatabaseMEDDATA主業(yè)務(wù)數(shù)據(jù)庫WEBSRC類定義,類方法
10、,B/S .ClsSYSTrakCare系統(tǒng)庫(組件,菜單,工作流等)AUDIT審計數(shù)據(jù)庫HL7HL7交換消息庫DOCSTrakCare文檔紀(jì)錄庫LOGsTrakCare日志紀(jì)錄庫 MEDSRCC/S Routine庫,.MacLABDATA檢驗數(shù)據(jù)庫LABSRC檢驗Routine庫TEMP臨時數(shù)據(jù)庫4.查看表的邏輯結(jié)構(gòu)轉(zhuǎn)換namespace,zn “meddata”(實際配置的namespace名稱),然后回車,然后輸入d %msql,msql都要小寫,界面如下回車后,界面如下輸入User Name為system;Password 為sys;然后回車,進(jìn)入界面如下回車,界面如下默認(rèn)為Base
11、 Table Definition,按回車鍵在Base Table Name輸入要查詢的表的名稱,如查詢名為dhc_sfprintdetail的表查看表的中的字段選擇Fields,按回車鍵,則顯示表中所有的字段如果選擇某個字段可以查看字段的屬性查看表的關(guān)聯(lián)關(guān)系找到表后,按F3鍵,回車光標(biāo)落到Implicit Joins 上,回車可以看到字段所指向的表父子表關(guān)系,如下圖Child Tables,可以看到表ar_receipt有兩個子表,ar_rcptalloc,ar_rcptpaymode5.查看表的物理結(jié)構(gòu)步驟同上(獨立表,父子關(guān)系的表)回車后可以看到表里對應(yīng)的主Global的結(jié)構(gòu),和索引(M
12、aster Map為Yes的為主map,Master Map為No的是索引)主Global的結(jié)構(gòu),找到Master Map為Yes的,回車后如下,查看主索引的保存結(jié)構(gòu),選擇Map Data Specifications,回車后,Global中數(shù)據(jù)的存儲順序說明: F3查看表的關(guān)聯(lián)關(guān)系; F4返回上一級練習(xí):預(yù)交金明細(xì)Ar_receiptsAr_rcptallocAr_rcptpaymode找出這三張表的關(guān)系,并分別寫出三張表的物理結(jié)構(gòu)主map的結(jié)構(gòu)定義;6.表結(jié)構(gòu)的導(dǎo)出與導(dǎo)入二M基礎(chǔ)(參考Cache面向?qū)ο筌浖_發(fā)教程.pdf P489)1.常用的特殊的變量這些特殊的變量有指定的含義,它們一般
13、以$開頭。有個別特殊變量也同時支持縮寫1)$HOROLOG ($H)$Horolog 包含了時間和日期,它們由逗號分開。第一部分是日期的數(shù)字,它是從1840 年12 月31 日開始計算日期的數(shù)字。第二部分是秒的數(shù)字,它是從午夜開始計算的。Global中的日期時間都是以數(shù)字的形式存儲的。時間日期的函數(shù)$ZDate 把$Horolog 格式的日期值按照指定格式顯示。w $zd($h)$ZDateH $ZDate 的反函數(shù)。w $zdh(07/17/2012)$ZDateTime 把$Horolog 格式的日期時間值按照指定格式顯示。w $zdt($h)$ZDateTimeH $ZDateTime
14、的反函數(shù)。w $zdth(07/17/2012 17:07:20)$ZTime 把$Horolog 格式的時間值按照指定格式顯示。w $zt($h)$ZTimeH $ZTime 的反函數(shù)。w $zth(07/17/2012 17:07:20)2) $JOB ($J)$JOB 包含一個正整數(shù),表示系統(tǒng)所分配給每一個在執(zhí)行中的進(jìn)程獨一無二的編號。當(dāng)進(jìn)程還在的時候,$JOB 的值是不變的2.基本的運算符1)算術(shù)運算符+、-、*、/、#,*。其中,+、*、/ 是基本的4 個算術(shù)運算符。 整數(shù)的除法2+5*7 = 49,從左到右依次運算2+(a*b) = 372)算術(shù)比較運算符3)字符串比較運算符=、=
15、 比較運算符是比較兩個字符串的相同與否。如果需要比較兩個數(shù)字是否一樣的話, 需要在前面再加一個+ 號。例如,+number1=+number2。 運算符檢查右邊的串是不是包含了左邊的串s a=hhhwww111w ah 運算符檢查左邊的串是不是在字典順序上跟著右邊的串;它是嚴(yán)格按照ASCII 碼來操作的。例如:219,返回是1,因為2 的ASCII 值是50,而1 的ASCII 值是49。4) 連接符_ 它是用來連接兩個字符串的& 與! 或= 非3.常見的命令變量操作命令:Set, Merge, Kill, New, Lock1)SET (S)給一個或者多個變量賦值 ,縮寫SSet x=5,n
16、(1)=4,dd=5Set FILE=32) MERGE (M)拷貝變量樹。 Merge a=bMerge var(1)=G(1,2)3) KILL刪除所有變量或一些指定的變量或所有變量除了指定的變量。4)NEW初始化變量。New a,bNew (x1,x2) 初始化除了x1,x2之外的變量4.程序流控制命令I(lǐng)f, Else, For, Quit, Do, Goto, BreakIf,(I) 條件判斷語句。ELSE (e) 當(dāng)判斷條件不通過的時候,執(zhí)行后面的命令行。FOR (f) 循環(huán)命令QUIT (q) 結(jié)束執(zhí)行一個函數(shù)并返回一個值。DO (d) 執(zhí)行命令。GOTO(g) 跳轉(zhuǎn)命令。BREA
17、K(b) 在調(diào)試的時候中斷一個routine 的執(zhí)行。WRITE(w) 輸出信息到當(dāng)前設(shè)備上READ (r) 從當(dāng)前的設(shè)備讀信息OPEN (o) 開啟一個設(shè)備以備使用。5.常用的函數(shù)$Piece($P)格式:$Piece(expression,delimiter ,from,to)返回一個或者多個被分隔符分開的子串。$Order($O)格式:$Order(variable,direction)按照指定的方向返回一個變量的上一個或下一個索引$get($g)返回一個變量的值如果變量存在則返回變量本身,不存在則返回空$data($d)判斷變量是否存在$Extract($e)格式:$Extract(e
18、xpression,from,to)說明:返回字符串的指定部分。Write $Extract(AABB,2,3)AB$Justify($J)格式:$Justify(expression,width,desimal)說明:返回一個右對齊的值,并可以改變它的格式。$Length($L)格式:$Length(expression,delimiter)說明:返回一個字符串的長度,或者是被分隔符的子串的個數(shù)Write $Length(ABCD)4Write $Length(AB/CD/EF,/)3Tstart 開始一個事務(wù)Tcommit 提交事務(wù)Trollback 保存失敗后回滾三編寫簡單的M程序及調(diào)試
19、1.Global介紹在Cach 中的所有數(shù)據(jù)都是保存在Global(多維數(shù)組)中的。Global以如下形式表示:名稱(下標(biāo)1,下標(biāo)2,下標(biāo)3)=值如 AirPlane(“Manufacturer”,“Address”,“Country”)=“US” 我們可以自己定制Global,包括添加、刪除、修改、遍歷其節(jié)點。多維數(shù)組以樹狀的形式保存,他的每一個節(jié)點直接與磁盤和內(nèi)存中的數(shù)據(jù)塊相對應(yīng),因此可以達(dá)到極快的訪問速度。2.Routine的使用(.MAC程序)我們可以把Routine 理解為“小程序”或程序模塊。Routine 的基本結(jié)構(gòu)1. Routine 的命名Routine 的名字可以是任何的字
20、母數(shù)字式字符。但是有要求:一般不能以數(shù)字或百分號開頭命名,和句號不能在開始或者結(jié)束的位置。以百分號開頭命名的Routine 是不局限在某一個名字空間(Namespace)應(yīng)用的,號它是Cach 系統(tǒng)內(nèi)部保留的,只是系統(tǒng)為我們提供的程序命名所使用。此外,對Routine 名字的長度也沒有限制,但是只有前31 個字符是用來對不同的Routine 加以區(qū)分的。2. Routine 的程序行程序行是routine 最基本的單位之一。我們這里說的是一個邏輯上的行,因為有的邏輯上的行在物理上占據(jù)了可能超過一行的位置。Routine 的行有3 種不同的類型,下面作一一的介紹。 Routine 的 標(biāo)簽行一個
21、標(biāo)簽要確定一行,它從當(dāng)前行的第一個位置開始。它的命名條件和routine 的命名條件類似。但是它的長度不能超過31 個字符。通常一個標(biāo)簽后面有一些空格,后面可以跟一些Cach 的可執(zhí)行命令。 代碼行代碼行的最前端至少要有一個空格,作為一行的開始部分。 注釋行有4 種形式的注釋符號:;符號后面的本行內(nèi)容將不被執(zhí)行。;一些時候,注釋的內(nèi)容在執(zhí)行的過程中是需要用到的。兩個分號的注釋內(nèi)容是被編譯進(jìn)去的,而一個分號的注釋在編譯的時候就被去掉了。/ 和一個分號是一樣的。/* */中間省略號的部分是被注釋的內(nèi)容。創(chuàng)建Routine 首先切換namespace到Medsource下FileChange Nam
22、espace,選擇MedsourceFile-New ,如下圖點ok,然后點編譯按鈕,界面如下,保存Test.MAC文件點擊保存。則保存在Medsource下,這樣我們保存了一個空的.mac文件,下面我們將介紹如何寫簡單的程序.3.沒有父子關(guān)系的表1)如查詢所有押金明細(xì)表的收費日期,病人姓名(pa_patmas.papmi_name),登記號(pa_patmas.papmi_ipno)金額,支付方式,收費員姓名(表dhc_sfprintdetail,對應(yīng)字段分別為prt_date,prt_adm(病人就診rowid,指向pa_adm表),prt_payamount,prt_paymode,指向
23、ct_paymode表)我們可以查看表的Global的存儲結(jié)構(gòu)為DHCSFPRINTDETAIL(prt_rowid)Test (我們上面建的mac文件)GetDepositDetail() /標(biāo)簽行,也就是函數(shù)的名稱s prtrowid=0,num=0 /首先要對檢索的global的節(jié)點付初始值f s prtrowid=$O(DHCSFPRINTDETAIL(prtrowid) quit:prtrowid= do.s prtdate=$p(DHCSFPRINTDETAIL(prtrowid),2).s prttime=$p(DHCSFPRINTDETAIL(prtrowid),3).s ad
24、m=$p(DHCSFPRINTDETAIL(prtrowid),4).q:adm=.s papmi=.i $d(PAADM(adm) s papmi=$p(PAADM(adm),1).q:papmi=.i $d(PAPER(papmi,ALL) d .papname=$p(PAPER(papmi,ALL),1).s papno=$p(PAPER(papmi,PAT,1),1).s payamt=$p(DHCSFPRINTDETAIL(prtrowid),6).s num=num+1.;w !,$zd(prtdate,3)_$zt(prttime,1)_papname_papno_payamtq
25、 num在Terminate調(diào)試程序(參考Terminate端程序調(diào)試)2) 查詢表病人收費類別表pac_admreason的數(shù)據(jù),在RowId之前有一個”ADMREA”的節(jié)點,顯示代碼(rea_code),名稱(rea_desc)PAC(ADMREA,RowId)=記錄查詢所有的病人收費類別循環(huán)如下:S RowId=F s RowId=$o(PAC(ADMREA,RowId) q:RowId= d.S Code=$p(PAC(ADMREA,RowId),1).S Desc=$p(PAC(ADMREA,RowId),2).S Num=+$g(Num)+1.S PLIST(Num)=Code_
26、DescQ3)查詢表ct_paymode 的數(shù)據(jù),顯示ctpm_code,ctpm_desc4.有父子關(guān)系的表的取值如查詢顯示某帳單(dhc_patientbill.pb_rowid)的收費項目的名稱(表dhc_patbilldetails字段分別為pbd_tari_dr-dhc_taritem(tari_desc),單價(pbd_unitprice),數(shù)量(pbd_billqty),金額(pbd_totalamount); ,收費日期(pbd_billdate),收費時間(pbd_billtime)信息GetDetailByRowID(pbrowid)S RowId=”f s RowId=$
27、o(DHCPB(RowId) q:RowId=” d /第一層循環(huán).s OrdSub=”f s OrdSub=$o(DHCPB(RowId,O,OrdSub) q: OrdSub =” d /第二層循 環(huán)s DetSub=”f s DetSub =$o(DHCPB(RowId,O,OrdSub,”D”,DetSub) q: DetSub =” d /第三層循環(huán)5.表的索引的應(yīng)用取某段時間內(nèi)押金的明細(xì)(dhc_sfprintdetail),顯示押金的病人姓名,金額,支付方式 ,收費員信息索引結(jié)構(gòu)為DHCSFPRINTDETAIL(0,PrtDate,prt_printdate,prt_rowid
28、)F PrtDate=Stdate:1:EndDate ds RowId=$o( DHCSFPRINTDETAIL(0,PrtDate,PrtDate,RowId) q:RowId=” d;找到數(shù)據(jù)的RowId后,到主Global中取相應(yīng)的數(shù)據(jù)S PrtDate=$p(DHCSFPRINTDETAIL (RowId),”,2)S PrtTime=$p(DHCSFPRINTDETAIL (RowId),”,3)S AdmId=$p(DHCSFPRINTDETAIL (RowId),”,4)I $d(PAADM(AdmId) d. .S paperid=$p(PAADM(AdmId),”,1) .
29、 .S Regno=$p(PAPER(paperid,”ALL”),”,1). .S PatName=$p(PAPER(paperid,PAT,1),”,1). S PayAmt=$p(DHCSFPRINTDETAIL (RowId),”,6)S PayMode=$p(DHCSFPRINTDETAIL (RowId),”,9)S Num=Num+1Q6.Terminate端M程序調(diào)試編譯m程序 d %urcomp,然后輸入要編譯的m名稱調(diào)試程序(包括.mac,.cls,query)Mac文件調(diào)試d procnamemacname(參數(shù)1,參數(shù)2.。) q后面沒有返回值w $functionma
30、cname(參數(shù)1,參數(shù)2.。)q后面有返回值如果以q 返回值的方式執(zhí)行,即使沒有入?yún)?,也要在函?shù)名稱后面增加括號練習(xí)1查詢某段日期(prt_date)的某個收費員(prt_adduserid)的押金的明細(xì)(表DHC_SFPRINTDETAIL),顯示信息為病人登記號(Pa_PatMas.paper_ipno),病人姓名(Pa_PatMas.paper_name),收費金額(DHC_PrintDetail.prt_payamount),支付方式(dhc_sfprintdetail.paymode);練習(xí)2.查詢?nèi)朐喝掌跒?007-04-02至2007-04-08日的住院就診病人的信息,顯示信息
31、為病人登記號(Pa_PatMas.paper_ipno),病人姓名(Pa_PatMas.paper_name),入院日期;用到的表就診信息表Pa_adm,病人基本信息表Pa_PatMas,paadm_type=”I”的表示住院病人利用索引PAADMi(PAADM_AdmDate,PAADM_AdmDate,PAADM_RowID)四類的創(chuàng)建及類方法的編寫及調(diào)試 轉(zhuǎn)換命名空間到websource下1.創(chuàng)建一個類,保存到websource下File-New-Cache Class Definition下一步,修改class名稱下一步,選擇第三項,然后完成就可以了2.打開一個類文件,在websour
32、ce/web目錄下1)打開Studio,選擇NameSpace為websource,點Open from databasae,Files of 選擇.cls文件類型,為如下界面 2)雙擊Web包,進(jìn)入后則現(xiàn)則所有的類文件,File Name:輸入要打開的類名稱。3. 類方法的編寫首先創(chuàng)建一個類,然后編寫類方法,一個類里面可以有多個類方法我們把前面編寫的m里面的函數(shù)轉(zhuǎn)換成類的方法編寫/如查詢所有押金明細(xì)表的收費日期,病人姓名,金額,支付方式,收費員姓名(表dhc_sfprintdetail,對應(yīng)字段分別為prt_date,prt_adm(病人就診rowid,指向pa_adm表),prt_paya
33、mount,prt_paymode,指向ct_paymode表)我們可以查看表的Global的存儲結(jié)構(gòu)為DHCSFPRINTDETAIL(prt_rowid)ClassMethod GetDepositDetail()s prtrowid=0,num=0f s prtrowid=$O(DHCSFPRINTDETAIL(prtrowid) quit:prtrowid= do.;i prtrowid= q.s prtdate=$p(DHCSFPRINTDETAIL(prtrowid),2).s prttime=$p(DHCSFPRINTDETAIL(prtrowid),3).s adm=$p(DH
34、CSFPRINTDETAIL(prtrowid),4).q:adm=.s papmi=.i $d(PAADM(adm) s papmi=$p(PAADM(adm),1).q:papmi=.i $d(PAPER(papmi,ALL) s papname=$p(PAPER(papmi,ALL),1).s papno=$p(PAPER(papmi,PAT,1),1).s payamt=$p(DHCSFPRINTDETAIL(prtrowid),6).s num=num+1.w !,$zd(prtdate,3)_$zt(prttime,1)_papname_papno_payamtq寫好后到Termi
35、nate端調(diào)試4.Query程序的編寫見TestCls文本里的FindDeposit練習(xí)3 用Query查詢支付方式表ct_paymode,顯示內(nèi)容為 Ctpm_code,ctpm_desc練習(xí)4查詢某個賬單對應(yīng)的收費項目明細(xì);要求顯示收費項目名稱(dhc_pabilldetail.pbd_tari_dr),單價(pbd_unitprice),數(shù)量(pbd_billqty),金額(pbd_totalamount)練習(xí)5查詢某段日期(prt_date)的押金的明細(xì)(表DHC_SFPRINTDETAIL),顯示信息為病人登記號(Pa_PatMas.paper_ipno),病人姓名(Pa_PatMa
36、s.paper_name),收費金額(DHC_PrintDetail.prt_payamount),支付方式(dhc_sfprintdetail.paymode);5.Terminate端類方法的調(diào)試Class文件d #class(web.classname).functionname(參數(shù)1,參數(shù)2.)w #class(web.classname).functionname(參數(shù)1,參數(shù)2.) Query的執(zhí)行D #class(%ResultSet).RunQuery(“類名稱”,”Qurey名稱”,”參數(shù)1”,”參數(shù)2”,.)五組件程序開發(fā)1.javascript基礎(chǔ)1)功能在客戶端 IE
37、 執(zhí)行 用來與用戶交互 數(shù)據(jù)檢查、控制控制Browser 的頁面方式2).基本命令var 定義變量alert 生成一個獨立的小窗口,稱作對話框,并用它來顯示一條信息和一個“確定”按鈕!當(dāng)顯示這個對話框時,暫停程序的執(zhí)行。 confirm 確認(rèn)選擇對話框用于確定用戶某個Yes/No風(fēng)格問題的回答。這種風(fēng)格的對話框中顯示一個問號和兩個按鈕:“確定”和“取消”。當(dāng)用戶單擊了“確定”按鈕Confirm()方法返回true;否則返回false。If , else For Less than () Not (!) Not equal (!=) Equals (=) Logical AND (&) Logi
38、cal OR (|) Is NOT a Number (isNaN )Split 將string對象字符以某個符號分開隔開 3.屬性document properties 文檔對象,描述當(dāng)前窗口或指定窗口對象的文檔。它包含了文檔從到的內(nèi)容。document.getElementById document.getElementById(id1).value/獲取或設(shè)置id1的值Object properties Obj.tagName Obj.className Obj.type Obj. checked Obj. value Obj. disabled Obj. style Obj.readO
39、nly 4.事件document eventsdocument.body.onload=MyLoadHandler; 當(dāng)網(wǎng)頁打開,只能書寫在body中onUnload 當(dāng)網(wǎng)頁關(guān)閉或離開時,只能書寫在body中 Object eventsobj.onclick=MyOnClick; 當(dāng)對象被點擊 obj.onkeydown=MyKeyDown; 按回車obj.onchange = MyChange; 當(dāng)對象的內(nèi)容被改變 obj.onblur= MyBlur; 當(dāng)對象失去焦點 obj.onmouseover 當(dāng)鼠標(biāo)懸于其上時 obj.onmouseout 當(dāng)鼠標(biāo)離開對象時 obj.onmouseu
40、p 當(dāng)鼠標(biāo)松開 obj.onmousedown 當(dāng)鼠標(biāo)按下鍵 obj.onFocus 當(dāng)對象獲取焦點時 obj.onSelect 當(dāng)對象的文本被選中時 我們在使用object.onXXX=handler是需要保證object已經(jīng)在頁面中生成。比如我們?yōu)閐ocument.body賦予事件處理函數(shù),我們必須保證document.body已經(jīng)存在,就是說我們不能在之前在的全局語句中使用document.body; handler必須是函數(shù)名 2.創(chuàng)建組件過程1)創(chuàng)建組件;進(jìn)入組件管理器,選擇要連接的數(shù)據(jù)庫,如下圖所示選擇連接的數(shù)據(jù)庫后,點擊進(jìn)入,然后新建組件ComponentNew Componen
41、t,提示Create a New Component?,選擇”是”.系統(tǒng)會默認(rèn)的創(chuàng)建組件的名稱,選中名稱,點擊右鍵,進(jìn)入Component Properties,如下圖所示修改組件的名稱,同時把Display Type修改成Custom,點擊Apply按鈕,保存所做的改變2)創(chuàng)建組件上的元素選中組件名稱,點擊右鍵,進(jìn)入Add Item(s) to Component ,進(jìn)入界面如下Custom Item 組件上的單個元素Custom Table Item 以列表的形式顯示的元素根據(jù)實際需求選擇要創(chuàng)建的元素類型對于要創(chuàng)建的元素打勾,然后FileApply3)修改元素屬性選中元素,右鍵 Item
42、Properties (或雙擊),如下圖所示Name:元素名稱Caption:界面上顯示的名稱Display Type:TEXTBOX,LISTBOX,CHECKBOX,LINK,BUTTON等Data Type屬性:元素顯示的數(shù)據(jù)類型,如日期,字符串等3.查詢程序的編寫及調(diào)試(以押金收據(jù)購入程序為例)練習(xí)不帶條件的查詢和帶條件的查詢 參考Test.cls中的Query:FindDeposit注意:Query FindDeposit() As %Query(ROWSPEC = Tprtdate:%String,Tprttime:%String,Tpapname:%String,Tpapno:%
43、String,Tpayamt:%String)中的ROWSPEC中的Tprtdate,Tprttime等是組件上的元素名稱,這類元素是Table ItemOutputRow中的 set Data=$lb(prtdate,prttime,papname,papno,payamt) $lb內(nèi)的是要輸出的值,這些變量的位置要和組件上的元素相對應(yīng),這樣 才能在Table的相應(yīng)的列對應(yīng)的顯示內(nèi)容組件的屬性:連接Class和Query名稱(在修改時要先把組件的顯示類型修改成除Custom之外的類型才能修改)組件的類型是:修改后組件的顯示類型修改成Custom如果是帶參數(shù)的查詢程序,則相應(yīng)的參數(shù)為組件上的元
44、素,那么在點擊查找的時候會自動傳入?yún)?shù);練習(xí)6用組件開發(fā),把練習(xí)4,練習(xí)5的查詢結(jié)果在界面上顯示出來;并掛入菜單4.組件程序的開發(fā)(以押金收據(jù)購入程序)1).放大鏡,不帶參數(shù),帶有參數(shù)組件元素為:Custom Item元素的LookUp如下圖所示放大鏡要顯示的內(nèi)容寫成QueryLookupClassName:要調(diào)用的類的名稱LookupQueryName:要調(diào)用的Query名稱LookupProperties:傳入的參數(shù),如果沒有入?yún)t為空,參數(shù)為組件上元素的名稱LookupJsFunction:js文件里調(diào)用的js函數(shù)練習(xí)7在練習(xí)5的基礎(chǔ)上,收費員顯示以放大鏡的方式顯示,顯示收費員姓名,查詢
45、時以rowid為查詢條件;2).js文件創(chuàng)建,js文件的調(diào)用;創(chuàng)建的js文件的名稱必須要和對應(yīng)的組件的名稱一致如果js文件里調(diào)用其他js文件里的函數(shù),則要在組件的OtherScript里把js文件的名稱添加進(jìn)來,就可以調(diào)用里面的函數(shù)了3).前端頁面元素調(diào)用后臺的classmethod的方法; 前端頁面調(diào)用后臺的類方法是通過函數(shù)js函數(shù)里調(diào)用cspRunServerMethod(參數(shù)1,參數(shù)2,參數(shù)3.。)來實現(xiàn)參數(shù)1為固定參數(shù),傳入的值為要調(diào)用的后臺的類方法那么入?yún)⒌墨@取是通過組件上的某個元素來獲得的如組件UDHCJFRcptBuy中的添加按鈕,是通過調(diào)用元素ins1來獲取后臺要執(zhí)行的方法(V
46、alueGet) 4).執(zhí)行后臺的classmethod之后接收返回結(jié)果的兩種方法;1直接通過cspRunServerMethod(參數(shù)1,參數(shù)2,參數(shù)3.。)返回結(jié) 果,可以定義變量直接接收返回結(jié)果;如果采用此方式,要求 Classmethod的q 后面返回變量 Var Returnvalue Returnvalue= cspRunServerMethod(參數(shù)1,參數(shù)2,參數(shù)3.。)2通過cspRunServerMethod(參數(shù)1,參數(shù)2,參數(shù)3.。)里的某個參 數(shù)接收返回值,如可以利用參數(shù)2接收后臺的返回值 如接收返回值的參數(shù)的名稱為GetReturnValue,那么在傳入?yún)?shù)的時 候
47、要傳到后臺cspRunServerMethod(參數(shù)1,GetReturnValue,參數(shù) 3.。) 在class端,GetReturnValue已經(jīng)傳入,那么通過 S retval= GetReturnValue _(_$ZCVT(返回值,O,JS)_); &javascript,通過javascript把結(jié)果返回頁面 在js文件里有個函數(shù)名稱為GetReturnValue(value),接收返回值括號 內(nèi)的value就是返回值,然后可以根據(jù)需求對返回值做相應(yīng)處理練習(xí)8 輸入登記號,回車,查找病人的姓名;并在界面上顯示出來;6).SelectRowHandler的用途;可以獲取Table的行
48、數(shù)和當(dāng)前選中的記錄的行可以選中某個記錄,獲取選中記錄的各元素的值獲取到選中的行var eSrc=window.event.srcElement;var rowObj=getRow(eSrc);var selectrow=rowObj.rowIndex;獲取Table的記錄數(shù)var objtbl=document.getElementById(tUDHCJFRcptBuy);var rows=objtbl.rows.length;獲取Table上某一行的某個元素的值var SelRowObj=document.getElementById(Tbuyrowidz+selectrow);var bu
49、yrowid=SelRowObj.innerText;其中Tbuyrowid為元素的名稱,z要加到元素名稱的后面,selectrow為行號;如果是顯示的列則用SelRowObj.innerText;如果是隱藏的列則用SelRowObj.Value7).Link00528273Display Type:LinkLinkUrl:websys.default.csp(在輸入組件名稱時會自動輸入)LinkComponent:要Link的組件的名稱LinkExpression:要傳入到所Link的組件的名稱如果要在新的窗體中打開組件:在General頁簽處,設(shè)置新打開窗體的大小ShowInNewWind
50、ow:top=30,height=650,left=8,width=10008).按鈕中打開新的組件var str=websys.default.csp?WEBSYS.TCOMPONENT=UDHCJFDeposit&Adm=+Adm+&deposittype=+t01window.open(str,_blank,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width=1000,height=700,left=0,top=0)9).
51、Message的定義在組件屬性的Message頁簽,定義Code,Description在js文件里調(diào)用時用tCode,獲取Description練習(xí)9輸入登記號(pa_patmas.Papmi_no),回車事件時,顯示病人的姓名(pa_patmas.papmi_name),就診號(pa_adm.paadm_admno,pa_adm.paadm_rowid)(就診號用放大鏡顯示,可能會有多條記錄);選擇就診號,查詢病人的賬單總表(dhc_patientbill),顯示賬單的總金額(pb_totalamount),賬單Rowid(pb_rowid);選中病人的某個賬單,顯示賬單的收費項目明細(xì)(pa_patbilldetails)(以按鈕的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度特種門窗安裝與改造工程合同3篇
- 個人著作出版協(xié)議(2024年)3篇
- 2025年度區(qū)塊鏈技術(shù)應(yīng)用企業(yè)內(nèi)部股東股權(quán)激勵協(xié)議4篇
- 二零二五版排水管網(wǎng)檢測與維護(hù)服務(wù)合同4篇
- 2025年度教育信息化場合作經(jīng)營協(xié)議參考文本4篇
- 2025年度窗簾墻布研發(fā)創(chuàng)新成果轉(zhuǎn)化合作合同4篇
- 晶體熒光光譜研究-深度研究
- 2025版門窗行業(yè)綠色生產(chǎn)標(biāo)準(zhǔn)認(rèn)證合同3篇
- 2025年度奶業(yè)行業(yè)標(biāo)準(zhǔn)化與認(rèn)證合同4篇
- 2025年度農(nóng)藥產(chǎn)品銷售與客戶關(guān)系維護(hù)合同3篇
- 2025-2030年中國草莓市場競爭格局及發(fā)展趨勢分析報告
- 華為智慧園區(qū)解決方案介紹
- 奕成玻璃基板先進(jìn)封裝中試線項目環(huán)評報告表
- 廣西壯族自治區(qū)房屋建筑和市政基礎(chǔ)設(shè)施全過程工程咨詢服務(wù)招標(biāo)文件范本(2020年版)修訂版
- 人教版八年級英語上冊期末專項復(fù)習(xí)-完形填空和閱讀理解(含答案)
- 2024新版有限空間作業(yè)安全大培訓(xùn)
- GB/T 44304-2024精細(xì)陶瓷室溫斷裂阻力試驗方法壓痕(IF)法
- 年度董事會工作計劃
- 《退休不褪色余熱亦生輝》學(xué)校退休教師歡送會
- 02R112拱頂油罐圖集
- 2021年新教材重慶生物高考真題(含答案解析)
評論
0/150
提交評論