您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Cache数据库组件学习指南
第一章创建组件一,新建组件说明:1.Name组件名称2.“DisplayType”显示类型一般选择Custom3.“ClassName”类名可以写出类名前几个字符,以便查找4.“QueryName”查询名称(见创建Query)5.一般选择“IncludeScript”和”IncludeCustomScript”二,添加组件子件说明:1.单独选择”CustomItem”可以是:标签说明输入框的类型按钮BUTTON执行某项的按钮输入框TEXTBOX让用户输入内容连接LINK2.选择”Custom”和”CustomItem”两项全选择会实现:一个有标签的查找输入框(例如想让用户输入一个部门),输入框与Query联系,可弹出一个部门列表供用户选择。3.”CustomTableItem”返回结果集的字段1.可弹出选择列表的输入框(带有放大镜图标,弹出部门列表,让用户选择部门)1)General选项卡DisplayType选择TEXTBOX2)Lookup选项卡(1)LookupClassName类名(可据此找到类的文件)(2)LookupqueryName查询的名称2.可执行的按钮(例如“查找“按钮)1)Link选项卡(1)LinkUrl连接的页面(2)LinkComponment连接到的组件名称第二章创建菜单一创建菜单位置:[菜单管理]-[菜单管理器]1标题2名称3连接元素组件4连接URL(?)5子菜单挂靠在那个菜单下二权限赋予位置:[工具栏]-[安全组]-按“查找“按钮-选择要设置安全组的“菜单访问”在弹出页面的“旁边菜单”中选择要显示的菜单第三章创建执行代码一,创建Query1.选择ThisQueryisbasedonanSQLstatement返回值%SQLQuery2.选择Thisqueryisbasedonuser-writtencode返回值%Query如要创建XXXX查询,系统会自动创建三个类方法XXXXCloseXXXXExcuteXXXXFetch第四章页面控件的取值方法表格项(字段)输入框(可以和表格的字段对应起来)按钮多选项调用对象方法注意:此类控件(对象)的一定要勾选Hidden,使此控件隐藏.第五章工作流定义一、工作流的作用二、定义工作流1.工作流定义1)工作流定义〔菜单管理〕-〔工作流项目定义〕2.工作流项目定义定义工作流项目按定义功能菜单(可以显示页面)定义3.定义工作组1)定义〔主菜单标题〕2)激活4.定义使用用户5.定义有工作流的组显示的顶层菜单见(A)只能选择在〔工作组中选择的主菜单的子菜单〕附录一源代码查找病人信息ClassMethodGetPatBaseInfoExecute(ByRefqHandleAs%Binary,wardidAs%String)As%Status{///病人基本信息Setrepid=$I(^CacheTemp)If$g(ind)=Setind=1ifwardid=SetqHandle=$lb(0,repid,0)Quit$$$OK//sadmId=fsadmId=$O(^PAADM(admId))q:admId=di(wardid'=)d.sparoom=0fsparoom=$o(^PAADMi(CurrWard,wardid,paroom))q:paroom=d..sadmId=0fsadmId=$o(^PAADMi(CurrWard,wardid,paroom,admId))q:admId=d...spavisit=$p($g(^PAADM(admId)),^,20)...ipavisit=Dq...sadmno=$p($g(^PAADM(admId)),^,81)...spapmiId=$p($g(^PAADM(admId)),^,1)...sregNo=$p($g(^PAPER(papmiId,PAT,1)),^,1)...spatName=$p($g(^PAPER(papmiId,ALL)),^,1)...ssex=$p($g(^CT(SEX,$p($g(^PAPER(papmiId,ALL)),^,7))),^,2)...sbedSub=$p($p($g(^PAADM(admId)),^,73),||,2)...//&jsalert(#(bedSub)#+/bed1adm/+#(admId)#);...q:bedSub=...sbedCode=$p($g(^PAWARD(wardId,BED,bedSub)),^,1)...q:bedCode=;防止床位有变化DoOutput11SetqHandle=$lb(0,repid,0)Quit$$$OKOutput11setData=$lb(regNo,patName,sex,bedCode)Set^CacheTemp(repid,ind)=DataSetind=ind+1quit}ClassMethodGetPatBaseInfoFetch(ByRefqHandleAs%Binary,ByRefRowAs%List,ByRefAtEndAs%Integer=0)As%Status[PlaceAfter=GetPatBaseInfoExecute]{SetAtEnd=$LIST(qHandle,1)Setrepid=$LIST(qHandle,2)Setind=$LIST(qHandle,3)//Setind=$o(^CacheTemp(repid,ind))Ifind={//iftherearenomorerows,finishfetchingSetAtEnd=1SetRow=}Else{//fetchrowSetRow=^CacheTemp(repid,ind)}//SaveQHandlesqHandle=$lb(AtEnd,repid,ind)Quit$$$OK}QueryGetPatBaseInfo(wardidAs%String)As%Query(ROWSPEC=regNo,patName,sex,bedCode){}ClassMethodGetPatBaseInfoClose(ByRefqHandleAs%Binary)As%Status[PlaceAfter=GetPatBaseInfoExecute]{Setrepid=$LIST(qHandle,2)Kill^CacheTemp(repid)Quit$$$OK}afeigoo_wuqk说:varstr='websys.default.csp?WEBSYS.TCOMPONENT=UDHCJFIntPay&BillNo='+BillNowindow.open(str,'_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=yes,width=700,height=520,left=0,top=0')附录(语言)ReferencesTables和ChildTables有什么区别?两表之间是父子表的关系:1.删除父表的记录,也会删除父表的子项2.父表RowId=PatRef_”||”_ChildSub两表之间是引用表的关系:1.参考关系数据的关联表的关系附录(实例):demopass:demo菜单:INSU组件人员类别-组件:INSUPatTypeCom脚本:INSUPatTypeCom.js主要功能实现:表的插入,删除,更新varCurrentSel=0functionBodyLoadHandler(){varobj=document.getElementById(Update);if(obj){obj.onclick=Updat_click;}varobj=document.getElementById(Delete);if(obj){obj.onclick=Delete_click;}iniForm();}页面载入函数(页面载入时调用,见后)(*必须)取得页面元素按钮(对象变量)(Update更新)按钮(Update)赋予脚本页面元素的名称取自组件functioniniForm(){初始化函数(初始变量)}functionUpdat_click(){variCode=,iDesc=,iDemo=,iEnable=,iRowid=varobj=document.getElementById(Code);if(obj){iCode=obj.value}varobj=document.getElementById(Desc);if(obj){iDesc=obj.value}varobj=document.getElementById(Demo);if(obj){iDemo=obj.value}varobj=document.getElementById(Enable);if(obj){if(obj.checked==true){iEnable=1}else{iEnable=0}}varobj=document.getElementById(Rowid);if(obj){iRowid=obj.value}if(iCode==||iDesc==||iEnable==){//alert(Pleaseentryallinformation.);alert(t['01']);returnfalse}varInstring=iRowid+^+iCode+^+iDesc+^+iEnable+^+iDemo;varIns=document.getElementById('ClassBox');if(Ins){varencmeth=Ins.value}else{varencmeth=''};varflag=cspRunServerMethod(encmeth,'','',Instring)if(flag=='0'){}else{//alert(Inserterror.ErrNo=+flag)alert(t['02']+flag);}location.reload();}输入参数验证(非空)利用事先定义的常量(在组件中定义:多语言实现:可移植)functionDelete_click(){variRowid=varobj=document.getElementById(Rowid);if(obj){iRowid=obj.value}if(iRowid==){//alert(Pleaseselecttherowtobedeleted.);alert(t['03']);显示语句来自组件Messages未选择,报警returnfalse}//if(confirm(Areyousuredeleteit?)){if(confirm(t['04'])){varIns=document.getElementById('DeleteBox');if(Ins){varencmeth=Ins.value}else{varencmeth=''};varflag=cspRunServerMethod(encmeth,'','',iRowid)if(flag=='0'){}else{//alert(Deleteerror.ErrNo=+flag)alert(t['05']+flag);}location.reload();}}特殊技巧:在组件中创建不可见控件,用其值隐藏服务(对象方法)和通过其调用服务cspRunServerMethod调用服务器上的对象方法encmeth方法名web.INSUPatTypeCom.DeletefunctionWriteTest(value){alert(value)}functionSelectRowHandler(){vareSrc=window.event.srcElement;varobjt
本文标题:Cache数据库组件学习指南
链接地址:https://www.777doc.com/doc-4012624 .html