关键词不能为空

当前您在: 主页 > 英语 >

M语言

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-29 02:41
tags:

-坡跟鞋

2021年1月29日发(作者:military是什么意思)


开发培训文档




alert



M

基础


(


参考


Cache

< p>
面向对象软件开发教程


.pdf


P489)



1.


常用的特殊的变量




这些特殊的变量有指定的含义,它们一般以

< br>$$


开头。有个别特殊变量也同时支


持缩写




1)$$HOROLOG ($$H)



$$Horolog


包含了时间和日 期,它们由逗号分开。第一部分是日期的数字,它


是从


1840



12



31


日开始计算日期的数字。第二 部分是秒的数字,它是从午


夜开始计算的。




Global


中的日期时间都是以数 字的形式存储的。




时间日期的函数




$$ZDate



$$Horolog


格式的日期值按照指定格式显示。




$$ZDateH $$ZDate


的反函数。




$$ZDateTime



$$Horolog


格式的日期时间值按照指定格式显示。




$$ZDateTimeH $$ZDateTime


的反函数。




$$ZTime



$$Horolog


格式的时间值按照指定格式显示。




$$ZTimeH $$ZTime


的反函数。




2) $$JOB



$$J





$$JOB


包含一个正整数,表示系 统所分配给每一个在执行中的进程独一无二的


编号。当进程还在的时候,


$$JOB


的值是不变的




2.


基本的运算符




1)


算术运算符

+



-



*



/





#



**





其中,


+


、-、


*



/


是基本的


4


个算术运算符。





整数的除法




2+5*7 = 49


,从左到右依次运算




2+(a*b) = 37



2)< /p>


算术比较运算符


<


>



3)


字符串比较运算符


=



[



]



=


比较运算符 是比较两个字符串的相同与否。如果需要比较两个数字是否一


样的话,

< br>


需要在前面再加一个


+


号。例如,




+number1=+number2





[


运算符检查右边的串是不是包含了左边的串




]


运算符检查左边的串是不是在字 典顺序上跟着右边的串;它是严格按照


ASCII


码来操作的 。例如:


2]19


,返回是


1


,因为


2



ASCII


值是

< br>50


,而


1



ASCII


值是


49





4)


连接符




_


它是用来连接两个字符串的




&





!






‘=







3.


常见的命令




变量操作命令:


Set, Merge, Kill, New, Lock



1)SET (S)


给一个或者多个变量赋值


,


缩写


S



Set x=5,n(1)=4,dd=5



Set ^File=3



2) MERGE (M)


拷贝变量树。




Merge a=b



Merge var(1)=^G(1,2)



3) KILL



删除所有变量或一些指定的变量或所有变量除了指定的变量。




4



NEW



初始化变量。




New a,b



New (x1,x2)



初始化除 了


x1,x2


之外的变量




4.


程序流控制命令




If, Else, For, Quit, Do, Goto, Break



If,



I







条件判断语句。




ELSE (e)



当判断条件不通过的时候,执行后面的命令行。




FOR (f)




循环命令




QUIT (q)




结束执行一个函数并返回一个值。




DO (d)




执行命令。




GOTO(g)



跳转命令。




BREAK(b)



在调试的时候中断一个


routine


的执行。




WRITE(w)



输出信息到当前设备上




READ (r)



从当前的设备读信息




OPEN (o)



开启一个设备以备使用。




5.


常用的函数




$$Piece($$P)



格式::


$$Piece(expression,delimiter [,from[,to]])



返回一个或者多个被分隔符分开的子串。




$$Order($$O)



格式:


$$Order(variable[,direction])



按照指定的方向返回一个变量的上一个或下一个索引




$$get($$g)



返回一个变量的值




如果变量存在则返回变量本身,不存在则返回空




$$data($$d)



判断变量是否存在




$$Extract($$e)



格式:


$$Extract(expression,[,from[,to]])



说明:返回字符串的指定部分。




>Write $$Extract(



AB



$$Justify($$J)



格式:


$$Justify(expr ession,width[,desimal])



说明:返回一个右对齐的值,并可以改变它的格式。




$$Length($$L)



格式:


$$Length(expression[,delimite r])



说明:返回一个字符串的长度,或者是被分隔符的子串的个数




>Write $$Length(



4



>Write $$Length(



3



Tstart





开始一个事务




Tcommit




提交事务




Trollback




保存失败后回滚



< br>三.编写简单的


M


程序及调试





介绍





Caché 中的所有数据都是保 存在


Global(


多维数组


)


中的。


Global


以如下

< br>形式表示:




^


名称


(


下标


1,

< p>
下标


2,


下标


3…)=值




l




^AirPlane(“Manu facturer”,“Address”,“Country”)=“US”




我们可以自己定制


Global


,包括添加、删除、修改、遍历其节点。多维数组


以树状的形式保存 ,他的每一个节点直接与磁盘和内存中的数据块相对应,因此可


以达到极快的访问速度。




e


的使用 (


.MAC


程序)




我们可以把


Routine


理解为“小程序”或程序模块。




Routine


的基本结构




1. Routine


的命名




Routine


的名字可以是任何的字母数字式字符。但是有 要求:一般不能以数


字或百分号%开头命名,和句号不能在开始或者结束的位置。以%百 分号开头命名



Routine


是不 局限在某一个名字空间(


Namespace


)应用的,%号它 是


Caché 系


统内部保留的,只是系统为我们提供的程序命 名所使用。此外,对


Routine


名字

的长度也没有限制,但是只有前


31


个字符是用来对不同的


Routine


加以区分的。




2. Routine


的程序行




程序行是


routine


最基本的单位之一。我们这里说的是一个逻辑上的行,因


为有的逻辑上的 行在物理上占据了可能超过一行的位置。


Routine


的行有


3


种不


同的类型,下面作一一的介绍。




Routine




标签行




一个标签要确定一行,它从当前行的第一个位置开始。它的命 名条件和


routine


的命名条件类似。但是它的长度不能超过


31


个字符。通常一个标签后面


有一些空格,后面可以跟一些


Caché 的可执行命令。




代码行




代码行的最前端至少要有一个空格,作为一行的开始部分。




注释行





4


种形式的注释符号:




;符号后面的本行内容将不被执行。




;;一些时候,注释的内容在执行的过程中是需要用到的。两个分




号的注释内容是被编译进去的,而一个分号的注释在编译 的时候就




被去掉了。




//


和一个分号是一样的。




/* ……*/中间省略号的部分是被注释的内容。




创建


Routine


< p>
首先切换


namespace


< br>Medsource



File



Change Namespace


,选择


Medsource



File---New ,


如下图







ok,


然 后点编译按钮,界面如下,保存



文件





点击保存。则保存在


Medsource



,


这 样我们保存了一个空的


.mac


文件,下


面我们将介绍如何写简单的程序


.



3.


没有父子关系的表




1)


如查询所有押金明细表的收费日 期


(prt_date)


,病人姓名


( pa__name)


,登记号(


pa__ipno


)金额,支付方式


(prt_paymode)


,收 费员姓名(表—


dhc_sfprintdetail


,对应字 段分别为


prt_date,prt_adm(


病人就诊


rowid


,指向


pa_adm



),prt_payamount,prt_paymode,

< p>
指向


ct_paymode


表)

< br>



我们可以查看表的


Glob al


的存储结构为




^DHCSFPRINTDETAIL({prt_rowid})



Test


(我们上面建的


mac


文件)




GetDepositDetail()


//


标签行,也就是函数的名称



s prtrowid=0,num=0


//


首先要对检索的< /p>


global


的节点付初始值




f s prtrowid=$$O(^DHCSFPRINTDETAIL(prtrowid)) quit:prtrowid=


.s prtdate=$$p(^DHCSFPRINT DETAIL(prtrowid),


.s prttime=$$p(^DHCSFPR INTDETAIL(prtrowid),


.s adm=$$p(^DHCSFPRI NTDETAIL(prtrowid),


.q:adm=


.s papmi=


.i $$d(^PAADM(adm)) s papmi=$$p(^PA ADM(adm),


.q:papmi=


.i $$d(^PAPER(papmi,



..papname=$$ p(^PAPER(papmi,


..s papno=$$p(^PAPER(papmi,


.s payamt=$$p(^DHC SFPRINTDETAIL(prtrowid),


.s num=num+1


.;w !,$$zd(prtdate,3)_


q num




Terminate


调试程序


(


参考


Termi nate


端程序调试


)



2)


查询表病人收费类别表


pac_ admreason


的数据,在


rowid

之前有一


个”ADMREA”的节点,显示代码


(rea_ code),


名称


(rea_desc)



^PAC(


记录




查询所有的病人收费类别循环如下:




S rowid=


F s RowId=$$o(^PAC(


.S Code=$$p(^PAC(


.S Desc=$$p(^PAC(


.S Num=+$$g(Num)+1


.S PLIST(Num)=Code_



Q



3)


查询表


ct_paymode


的数据,显示


ctpm_code,ctpm_desc



4.


有父子关系的表的取值




如查询显示某帐单(


dhc__ro wid


)的收费项目的名称(表



< /p>


dhc_patbilldetails


字段分别为




pbd_tari_dr->dhc_tari tem(tari_desc)


,单价


(pbd_unitpr ice)


,数量


(pbd_billqty)

< br>,




金额

(pbd_totalamount)




,收费日期


(pbd_billdate),


收费时间


(pbd_billtime)








GetDetailByRowID(pbrowid)



S rowid=””




f



s rowid=$$o(^DHCPB(rowid)) q:RowId=”” d



//


第一层循环




.s OrdSub=””





f



s OrdSub=$$o(^DHCPB(RowId,



//


第二层循







..s DetSub=””




..


f


s DetSub =$$o(^DHCPB(RowId,



DetSub =”” d




...


//


第三层循环




5.


表的索引的应用




取某段时间内押金的明细(


dhc_ sfprintdetail


),显示押金的病人姓名,金


额, 支付方式




,收费员信息




索引结构为




^DHCSFPRINTDETAIL(0,



F


PrtDate=Stdate:1:EndDate d




s RowId=$$o( ^ DHCSFPRINTDETAIL(0,


q:RowId=””



d



.;找到数据的


RowId


后,到主


Global


中取相应的数据




.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(^PAA


DM(AdmId),”^”,1)




. .S Regno=$$p(^PAPER(paperid,”ALL”),”^”,1)




. .S PatName=$$p(^PAPER(paperid,




. S PayAmt=$$p(^DHCSFPRINTDETAIL (RowId)),”^”,6)




.S PayMode=$$p(^DHCSFPRINTDETAIL (rowid)),”^”,9)





S Num=Num+1



Q



ate



M


程序调试




编译


m


程序



d ^%urcomp


,然后输入要编译的

< br>m


名称




调试程序(包括


.mac,.cls,query)



Mac


文件调试




d


procname^macn ame(


参数


1


,参数


2.


。。。


) q


后面没有返回值




w $$$$function^macname(


参数

< p>
1


,参数


2.


。。。)< /p>


q


后面有返回值




如果以


q


返回值的方式执行,即使没有入参,也要在函数名称后面增加括号




练习


1



查询某段日期(


prt_date


)的 某个收费员(


prt_adduserid


)的押金的明细


(



DHC_SFPRINTDETAIL )


,显示信息为病人登记号


(Pa__ipno)


,病人


姓名


(Pa__name)

< br>,收费金额


(DHC__payamount)


,支


付方式


(dhc_e)


< br>



练习


2



.


查询入院日期为

< br>2007-04-02



2007-04-08


日的住院就诊病人的信息,




显示信息为病人登记号


(Pa__ipno)


,病人姓 名


(Pa__name)


,入院日期;用到的表就诊信息表


Pa_adm


,病人基本信


息表

< p>
Pa_PatMas


,paadm_type=”I”的表示住院病人




利用索引




^PAADMi(



四.类的创建及类方法的编写及调试




转换命名空间到


websource





1.


创建 一个类,保存到


websource





File---New---Cache Class Definition



下一步,修改


class


名称




下一步,选择第三项,然后完成就可以了




2.


打开一个类文件,在

< p>
websource/web


目录下




1


)打开


S tudio


,选择


NameSpace



websource


,点


Open from


databasae,Files of


选择


.cls


文件类型,为如下界面






2


)双击


Web


包,进入后则现则所有的类文 件


,File Name:


输入要打开的类名


称。





3.


类方法的编写



首先创建一个类,然后编写类方法,一个类里面可以有多个类方法




我们把前面编写的


m


里面的函数转换成类的方法编写





//


如查询所有押金明细表的收费日 期,病人姓名,金额,支付方式,收费员


姓名(表—


dhc_s fprintdetail


,对应字段分别为


prt_date ,prt_adm(


病人就诊


rowid


,指向


pa_adm



),prt_ payamount,prt_paymode,


指向


ct_p aymode


表)




我们可以查看表的


Global


的存储结构为




^DHCSFPRINTDETAIL({prt_rowid})



ClassMethod GetDepositDetail()


{



s prtrowid=0,num=0


f s prtrowid=$$O(^DHCSFPRINTDETAIL(prtrowid)) quit:prtrowid=


.;i prtrowid=


.s prtdate=$$p(^DHCSFPRINTDETAI L(prtrowid),


.s prttime=$$p(^DHCSFPRINTDE TAIL(prtrowid),


.s adm=$$p(^DHCSFPRINTDET AIL(prtrowid),


.q:adm=


.s papmi=


.i $$d(^PAADM(adm)) s papmi=$$p(^PA ADM(adm),


.q:papmi=


.i $$d(^PAPER(papmi,


.s papno=$$p(^PAPER(papmi,


.s payamt=$$p(^DHC SFPRINTDETAIL(prtrowid),


.s num=num+1


.w !,$$zd(prtdate,3)_


q


}



写好后到


Terminate


端调试





程序的编写





TestCls


文本里的

< p>
FindDeposit



练习


3




Query


查询支付方式表


ct_pa ymode,


显示内容为




Ctpm_code



ctpm_desc



练习


4



查询某个账单对应的收费项目明细;




要求显示收费项目名称(


dhc__tari_dr

< p>
),单价





pbd_unitprice


),数量(


pbd _billqty


),金额(


pbd_totalamount





练习


5



查 询某段日期(


prt_date


)的押金的明细


(



DHC_SFPRINTDETAIL)


,显




示信息为病人 登记号


(Pa__ipno)


,病人姓名




(Pa__name)


,收费金额




(DHC__payamount)


,支付方式


(dhc_e)





ate


端类方法的调试




Class


文件




d ##class(ame).functionname (


参数


1


,参数


2….)




w ##class( ame).functionname(


参数


1


,参数


2….)







Query


的执行




D ##class(%ResultSet).RunQu ery(“类名称”,”Qurey


名称”,”参数


1”,”参 数


2”,…….)




五.组件程序开发




ript


基础




1)


功能




在客户端


IE


执行





用来与用户交互




数据检查、控制




控制


Browser


的页面方式




2).


基本命令




var




定义变量




alert



< br>生成一个独立的小窗口,称作对话框,并用它来显示一条信息和


一个“确定”按钮 !当显示这个对话框时,暂停程序的执行。




confirm


确认选择对话框用于确定用户某个

< p>
Yes/No


风格问题的回答。这种风


格的对话框 中显示一个问号和两个按钮:“确定”和“取消”。当用户单击了“确


定”按钮


Confirm()


方法返回


true


;否则返回


false





If , else




For





Less than (<)




Greater than (>)




Not (!)







Not equal (!=)




Equals (==)



Logical AND (&&)




Logical OR (||)



Is NOT a Number (isNaN )



Split



string


对象字符以某个符号分开隔开





3.


属性




document properties



文档对象,描述当前窗口或指定窗口对象的文档。它包含了文档从





的内容。




mentById



mentById(


//

< p>
获取或设置


id1


的值



-坡跟鞋


-坡跟鞋


-坡跟鞋


-坡跟鞋


-坡跟鞋


-坡跟鞋


-坡跟鞋


-坡跟鞋



本文更新与2021-01-29 02:41,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/583061.html

M语言的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文