Cache数据库组件学习指南

上传人:沈*** 文档编号:89943851 上传时间:2022-05-13 格式:DOC 页数:34 大小:13.14MB
收藏 版权申诉 举报 下载
Cache数据库组件学习指南_第1页
第1页 / 共34页
Cache数据库组件学习指南_第2页
第2页 / 共34页
Cache数据库组件学习指南_第3页
第3页 / 共34页
资源描述:

《Cache数据库组件学习指南》由会员分享,可在线阅读,更多相关《Cache数据库组件学习指南(34页珍藏版)》请在装配图网上搜索。

1、第一章 创建组件一, 新建组件说明:1. Name组件名称2. “Display Type”显示类型一般选择Custom3. “Class Name”类名可以写出类名前几个字符,以便查找4. “Query Name”查询名称(见 创建Query)5. 一般选择 “Include Script”和”Include Custom Script”二, 添加组件子件 说明:1. 单独选择 ”Custom Item” 可以是:标签说明输入框的类型按钮BUTTON执行某项的按钮输入框TEXTBOX让用户输入内容连接LINK2. 选择”Custom”和”Custom Item”两项全选择会实现: 一个有标签

2、的查找输入框(例如想让用户输入一个部门),输入框与Query联系,可弹出一个部门列表供用户选择。 3. ”Custom Table Item” 返回结果集的字段1. 可弹出选择列表的输入框(带有放大镜图标,弹出部门列表,让用户选择部门)1) General 选项卡Display Type 选择TEXTBOX2) Lookup 选项卡(1)LookupClassName类名(可据此找到类的文件)(2)LookupqueryName查询的名称2. 可执行的按钮(例如“查找“按钮)1) Link 选项卡(1) LinkUrl连接的页面(2) LinkComponment连接到的组件名称第二章 创建菜

3、单一 创建菜单位置:菜单管理-菜单管理器1标题2名称3连接元素组件4连接URL (?)5 子菜单挂靠在那个菜单下 二 权限赋予 位置:工具栏-安全组-按“查找“按钮-选择要设置安全组的“菜单访问” 在弹出页面的“旁边菜单”中选择要 显示的菜单第三章 创建执行代码一,创建Query 1. 选择 This Query is based on an SQL statement返回值 % SQLQuery2. 选择 This query is based on user-written code 返回值 %Query如要创建 XXXX 查询,系统会自动创建三个类方法 XXXXClose XXXXExc

4、uteXXXXFetch第四章 页面控件的取值方法表格项(字段)输入框(可以和表格的字段对应起来)按钮多选项调用对象方法注意:此类控件(对象)的一定要勾选Hidden,使此控件隐藏.第五章工作流定义一、工作流的作用二、定义工作流1. 工作流定义1) 工作流定义菜单管理-工作流项目定义2. 工作流项目定义定义工作流项目按定义功能菜单(可以显示页面)定义3. 定义工作组1)定义主菜单标题)激活4. 定义使用用户5. 定义有工作流的组显示的顶层菜单见()只能选择在工作组中选择的主菜单的子菜单附录一 源代码 查找病人信息ClassMethod GetPatBaseInfoExecute(ByRef q

5、Handle As %Binary, wardid As %String) As %Status /病人基本信息 Set repid=$I(CacheTemp) If $g(ind)= Set ind=1 if wardid= Set qHandle=$lb(0,repid,0) Quit $OK /s admId= f s admId=$O(PAADM(admId) q:admId= d i (wardid=) d .s paroom=0 f s paroom=$o(PAADMi(CurrWard,wardid,paroom) q:paroom= d .s admId=0 f s admId

6、=$o(PAADMi(CurrWard,wardid,paroom,admId) q:admId= d .s pavisit=$p($g(PAADM(admId),20) .i pavisit=D q .s admno=$p($g(PAADM(admId),81) .s papmiId=$p($g(PAADM(admId),1) .s regNo=$p($g(PAPER(papmiId,PAT,1),1) .s patName=$p($g(PAPER(papmiId,ALL),1) .s sex=$p($g(CT(SEX,$p($g(PAPER(papmiId,ALL),7),2) .s be

7、dSub=$p($p($g(PAADM(admId),73),|,2) ./&js .q:bedSub= .s bedCode=$p($g(PAWARD(wardId,BED,bedSub),1) .q:bedCode= ;防止床位有变化 Do Output11 Set qHandle=$lb(0,repid,0) Quit $OKOutput11 set Data=$lb(regNo,patName,sex,bedCode) Set CacheTemp(repid,ind)=Data Set ind=ind+1 quitClassMethod GetPatBaseInfoFetch(ByRe

8、f qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status PlaceAfter = GetPatBaseInfoExecute Set AtEnd=$LIST(qHandle,1) Set repid=$LIST(qHandle,2) Set ind=$LIST(qHandle,3)/ Set ind=$o(CacheTemp(repid,ind) If ind= / if there are no more rows, finish fetching Set AtEnd=1 Set Ro

9、w= Else / fetch row Set Row=CacheTemp(repid,ind) / Save QHandle s qHandle=$lb(AtEnd,repid,ind)Quit $OKQuery GetPatBaseInfo(wardid As %String) As %Query(ROWSPEC = regNo,patName,sex,bedCode)ClassMethod GetPatBaseInfoClose(ByRef qHandle As %Binary) As %Status PlaceAfter = GetPatBaseInfoExecute Set repi

10、d=$LIST(qHandle,2) Kill CacheTemp(repid) Quit $OKafeigoo_wuqk 说:var str=websys.default.csp?WEBSYS.TCOMPONENT=UDHCJFIntPay&BillNo=+BillNo window.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)附录(

11、语言)References Tables 和Child Tables 有什么区别?两表之间是父子表的关系: 删除父表的记录,也会删除父表的子项 父表RowId=PatRef_”|”_ChildSub两表之间是引用表的关系: 参考关系数据的关联表的关系附录(实例)web/user:demopass:demo菜单:INSU组件 人员类别 -组件:INSUPatTypeCom脚本:INSUPatTypeCom.js 主要功能实现:表的插入,删除,更新var CurrentSel=0function BodyLoadHandler() var obj=document.getElementById(U

12、pdate);if (obj) obj.onclick=Updat_click;var obj=document.getElementById(Delete);if (obj) obj.onclick=Delete_click;iniForm();页面载入函数(页面载入时调用,见后)(* 必须)取得页面元素按钮(对象变量)(Update更新)按钮(Update)赋予脚本页面元素的名称取自 组件function iniForm()初始化函数(初始 变量)function Updat_click() var iCode=,iDesc=,iDemo=,iEnable=,iRowid= var obj

13、=document.getElementById(Code); if (obj)iCode=obj.value var obj=document.getElementById(Desc); if (obj)iDesc=obj.value var obj=document.getElementById(Demo); if (obj)iDemo=obj.value var obj=document.getElementById(Enable); if (obj) if (obj.checked=true)iEnable=1 elseiEnable=0 var obj=document.getEle

14、mentById(Rowid); if (obj)iRowid=obj.value if (iCode=|iDesc=|iEnable=) /alert(Please entry all information.); alert(t01); return false var Instring=iRowid+iCode+iDesc+iEnable+iDemo; var Ins=document.getElementById(ClassBox); if (Ins) var encmeth=Ins.value else var encmeth=; var flag=cspRunServerMetho

15、d(encmeth,Instring) if (flag=0) else /alert(Insert error.ErrNo=+flag) alert(t02+flag); location.reload();输入参数 验证(非空)利用事先定义的常量(在组件中定义:多语言实现:可移植)function Delete_click() var iRowid= var obj=document.getElementById(Rowid); if (obj)iRowid=obj.value if (iRowid=) /alert(Please select the row to be deleted.

16、); alert(t03); return false /if (confirm(Are you sure delete it?) if (confirm(t04) var Ins=document.getElementById(DeleteBox); if (Ins) var encmeth=Ins.value else var encmeth=; var flag=cspRunServerMethod(encmeth,iRowid) if (flag=0) else /alert(Delete error.ErrNo=+flag) alert(t05+flag); location.rel

17、oad(); 显示语句来自组件Messages未选择,报警 特殊技巧:在组件中创建不可见控件,用其值隐藏服务(对象方法)和通过其调用服务cspRunServerMethod调用服务器上的对象方法 encmeth 方法名 web.INSUPatTypeCom.Deletefunction WriteTest(value)alert(value)function SelectRowHandler()var eSrc=window.event.srcElement;var objtbl=document.getElementById(tINSUPatTypeCom);var rows=objtbl.

18、rows.length;var lastrowindex=rows - 1;var rowObj=getRow(eSrc);var selectrow=rowObj.rowIndex; /alert(selectrow+/+rows) if (!selectrow) return;var SelRowObjvar objif (selectrow=CurrentSel)obj=document.getElementById(Code); obj.value=; obj=document.getElementById(Desc); obj.value=; obj=document.getElem

19、entById(Demo); obj.value=; obj=document.getElementById(Enable); /alert(obj.checked) obj.checked=false; obj=document.getElementById(Rowid); obj.value=; CurrentSel=0 return;CurrentSel=selectrow;SelRowObj=document.getElementById(TCodez+selectrow);obj=document.getElementById(Code);obj.value=SelRowObj.in

20、nerText;SelRowObj=document.getElementById(TDescz+selectrow);obj=document.getElementById(Desc);obj.value=SelRowObj.innerText;SelRowObj=document.getElementById(TDemoz+selectrow);obj=document.getElementById(Demo);obj.value=SelRowObj.innerText;SelRowObj=document.getElementById(TEnablez+selectrow);obj=do

21、cument.getElementById(Enable);/alert(obj.checked)obj.checked=SelRowObj.checked;SelRowObj=document.getElementById(TIdz+selectrow);obj=document.getElementById(Rowid);obj.value=SelRowObj.value;/alert(SelRowObj.value)系统会将设计时插入页面的Query(table对象)转化为web表格(table)对象,表格对象名 t+组件名 表的RowId 虽然不显示,但不可忘记赋值。负责删除/更改等操

22、作无法进行 Rowid 是专为与 TId 对应而设置的(对象)变量,不显示。在这里郑重建议:为表中所有的字段一一定义相应的页面变量document.body.onload = BodyLoadHandler;当页面载入时,执行此函数(* 必须)user:demopass:demo错误列表:1. 组件的query 对象不存在 2. $Piece与$List ClassMethod StationListExecute(ByRef qHandle As %Binary, RowId As %String) As %StatusSet repid=$I(CacheTemp) s ind=1 s id

23、=f s id=$o(DHCTJST(id) q:id= d.s CurData=$g(DHCTJST(id).s Code=$List(CurData,1) .s Desc=$List(CurData,2) .s Place=$List(CurData,3) .s Sequence=$List(CurData,4) .s Active=$List(CurData,5) .d BuildSet qHandle=$lb(0,repid,0)Quit $OKBuild set Data=$lb($g(id),Code,Desc,Place,Sequence,Active) Set CacheTem

24、p(repid,ind)=Data Set ind=ind+1 qClassMethod StationListExecute(ByRef qHandle As %Binary, RowId As %String) As %StatusSet repid=$I(CacheTemp) s ind=1 s id=f s id=$o(DHCTJST(id) q:id= d.s CurData=$g(DHCTJST(id).s Code=$p(CurData,1) .s Desc=$p(CurData,2) .s Place=$p(CurData,3) .s Sequence=$p(CurData,4

25、) .s Active=$p(CurData,5) .d BuildSet qHandle=$lb(0,repid,0)Quit $OKBuild set Data=$lb($g(id),Code,Desc,Place,Sequence,Active) Set CacheTemp(repid,ind)=Data Set ind=ind+1 q2. 没有为ST_RowId(表的RowId) 设置对应的页面变量RowID 出错现象:不能删除(找不到RowID对象,不能确定记录)3. 错误使用代码缩进ClassMethod Save(itmjs As %Library.String = , itmj

26、sex As %Library.String = , InString As %Library.String = ).s Rowid=$p(InString,1).s Code=$p(InString,2) .s Desc=$p(InString,3) .s Place=$p(InString,4) .s Sequence=$p(InString,5) .s Active=$p(InString,6)&sql(update DHC_TJ_Station set ST_Code =:Code, ST_Desc =:Desc, ST_Place =:Place, ST_Sequence =:Seq

27、uence, ST_Active=:Active where ST_RowId= :Rowid ) q InString_ _Rowid红色代码未执行给出的 SQLCODE 是 100 100No (more) data4.程序中用于调试的代码在完成使命以后一定要删除 function trim(s) var m = s.match(/s*(S+(s+S+)*)s*$/); return (m = null) ? : m1; 注意Cache 对象的类方法ClassMethod 的参数不能有下滑线 _ 错误原因:调用此页面需要一个参数,首次调用未传递参数错误代码ClassMethod Query

28、AllExecute(ByRef qHandle As %Binary, ParRef As %Library.String) As %Status Set repid=$I(CacheTemp)/Set qHandle=$lb(0,repid,0) s ind=1 s id=f s id=$o(DHCTJST(ParRef,O,id) q:id= d.s xx=$g(DHCTJST(ParRef,O,id).s iParRef=ParRef.s iChildsub=id.s iRowId=iParRef_|_id.s iARCIMDR=xx.s iARCIMCode=$p(ARCIM($p(

29、xx,|,1),$p(xx,|,2),1),1).s iARCIMDesc=$p(ARCIM($p(xx,|,1),$p(xx,|,2),1),2) .d BuildSet qHandle=$lb(0,repid,0)Quit $OKBuild set Data=$lb(iParRef,iRowId,iChildsub,iARCIMDR,iARCIMCode,iARCIMDesc) Set CacheTemp(repid,ind)=Data Set ind=ind+1 q接上,加一判断语句,当传入值为空,则退出ClassMethod QueryAllExecute(ByRef qHandle

30、As %Binary, ParRef As %Library.String) As %Status Set repid=$I(CacheTemp)/Set qHandle=$lb(0,repid,0) s ind=1 s id= i =ParRef q f s id=$o(DHCTJST(ParRef,O,id) q:id= d.s xx=$g(DHCTJST(ParRef,O,id).s iParRef=ParRef.s iChildsub=id.s iRowId=iParRef_|_id.s iARCIMDR=xx.s iARCIMCode=$p(ARCIM($p(xx,|,1),$p(x

31、x,|,2),1),1).s iARCIMDesc=$p(ARCIM($p(xx,|,1),$p(xx,|,2),1),2) .d BuildSet qHandle=$lb(0,repid,0)Quit $OKBuild set Data=$lb(iParRef,iRowId,iChildsub,iARCIMDR,iARCIMCode,iARCIMDesc) Set CacheTemp(repid,ind)=Data Set ind=ind+1 q注意:组件的 Table Item 控件,其ValueGet 的字段值,与其组件的连接的Query 的传出字段名一定要一致。(严重)疑问:&js子表

32、插入记录时,所引用的父表的记录一定要存在(报104,105,108错误)注意 javascript 逻辑判断if (iParRef=|iChildSub=) 这样的语句会使整个js 文件无法使用。就是此文件的所有的函数都不能执行。if (iParRef=)|(iChildSub=)调用(用户)变量,一定要注意大小写,CACHE对用户定义的对象(变量,方法)是大小写敏感的(严重)输入要调用的对象方法时,注意方法的大小写关于Item类型的 TEXTBOX 的页面控件不能在页面上正常使用的问题现象:在设计时 ,控件成黄色显示并且在页面上不能显示即使删除控件也不能改变控件状态解决:在设计界面 右健点击

33、控件,把“Display Only” 不选择 Query使用技巧1. 传递参数%STARTSWITHThe %STARTSWITH operator (described in the SELECT page) tests if a string value starts with the specified characters如下语句查找name以A开始的记录SELECT %ID, Name FROM Sample.Person WHERE Name %STARTSWITH A2.处理返回结果给网页加 菜单 1. 添加菜单2. 挂靠菜单3. 设置权限4. 写处理函数(高级)2006.03.30怎样给页面的日期输入框设置初始值见本机 住院基费程序-病区日清明细UDHCJFDayDetail 给函数的参数赋值1. 网页元素2. 固定值(网页参数)&ID=_$s(obj:obj.%Id(),1:)DHCOutPhChWin DHCOutPhChWin 34 / 34文档可自由编辑打印

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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