版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OBEL语言学习1.Obel语言简介1)Obel语言是一种针对trigger和action的脚本语言。2)Obel语言是通过xos在计算机和系统之中进行信息传递的语言。2.Obel语言一些重要定义(1)有一些对象不用写任何 Obel代码就其本身的创建 trigger,action,target,就可以执行。2)子类具有父类的所有方法。例如v_alarm_table的父类是v_rt_table,v_rt_table、v_slow_table的父类是 v_table.。(3)两种路径的规则:A:对globalreference (绝对路径)只有两种格式:对于除v_model以外的其它对象: /MODEL/class/instanceName MODEL是AutoCAD的文件名,但必须全大写且无扩展名即使AutoCAD中的文件不是大写的,class如v_button等,instanceName是大小写敏感的。对于v_model:/MODEL/v_model/model_instanceNameB:对于localreference (相对路径)的规则:对于非model的对象: ~class/instanceName对于model对象:~model(4)Obelsentence的语句格式: receiverObject method:parameter(s);句末用分号,method后要加上冒号加空格后跟参数。说明:一个 sentence可能包括多行( line)5)Obel代码写在begin和^ture之间。obel代码是大小写敏感的。6)一段完整的代码示例methodTriggeronmsg:msg
'注释放在单引号之间
'begin|listnamefirst|first=true;
'变量声明。注意:在 开头的|后要有空格,在结束的 |前也要有空格 ''给boolen变量first初始化(即赋初值 ture)'name=~v_OBEL_object/name
getObject;
'
把一个对象赋给
name
变量
,namestore:“Kristen”at:0;namestore: “Jeff ”at:1;namestore: “Tyler ”at:2;namestore: “KayLynn”at:3;namestore: “Lindsey ”at:4;list=Listnew;0to:4do:[:i|(first)
~v_OBEL_objec/name没有具体指定'把一些名字储存在 name中''把一个列表对象赋给 list变量'初始化循环 ''查看是否是第一个名字 '
'
'ifTrue:[first=false;list<<(namerecall:i);
''
改变first的值'增加第一个名字给
list
对象
']];
ifFalse:[list<<","<<(namerecall:i);];
'
'
继续向结束
list中追加名字do循环 '
'^trueEnd3.Obel代码的执行及调试(1)在DOS下输入obelparse进入obel。(2)叹号!表示执行,!edit打开obel编辑器,!quit退出obel,!reset重新输入(3)ClassmethodsFor列出该类的所有方法。Classdump列出该类继承的所有方法。例如/SAMPLE/v_button/activate_adoesExist。Obellist:"classes"列出在runtime时可识别的类(及系统中的类)。注意首字母大写,且必须是双引号。Obellist:"interfaces"列出所作的xos中所有对象。(4)创造一个试验用的信息框,其语法格式:(注意语法中的大小)1>MsgBoxmsgtxt:“helloworld”2>ok:nil;3>!(5) windows与pop_ups.windows是等同关系的,互不影响,而 pop_ups是具有父子关系的,如果父画面关闭子画面随之关闭。有两个画面分别为father,child。father画面有一个按钮,对这个按钮写obel代码:若是~modelshowModel:"CHILD";则当father画面关闭时,child画面随之关闭,即他们是pop_ups关系,若代码是GrdxModelManshowModel:"CHILD";则当father画面关闭时,child画面不会关闭,即他们是windows关系.(6)dismiss画面对于当前画面,即dismiss接受方法的对象所在画面时,用相对路径~modeldelete;即可,若是dimiss另外一个画面则必须使用绝对路径:/MODEL/v_model/model_namedelete(7)设置控件的外部属性:(8)string的连接操作是obel中非常重要的操作。str=str1<<str2把str1和str2连接起来结果放到到str1,然后赋给str,其中<<可用+替换,且str值必须用双引号,若是string与一个变量连接,例如Str="selectnamefromstatuswherename='"<<name<<"'";引号是就近匹配的,单双引号在obel是等同的,但为了区别,就让单双引号交替使用。最后的"'"是为了让'作为字符值。9)"str1"isSubStr:"str2";判断str2是否为str1的一部分子串(区分大小写),1>|var|2>var="TelventproducesthebestSCADAsystem"isSubStr:"cad";3>varprintNl;4>! 则var得到 false值且打印在屏幕上。str="str1"leftStr:int取出str1中左起的int个字符给str。同样还有rightStr4.面板的制作过程及解析(以一个阀的控制面板制作过程为例)面板CAD下名称:vp_val_cntl_rov下图为vp_val_cntl_rov在XOS下面板的全视图:下图为vp_val_cntl_rov在CAD下的视图:按照从上到下,从左到右,从内到外的控件名称依次是:v_rt_text/nam v_rt_text/namev_button_icon/open v_rt_text/text1 v_button_icon/mt1 v_rt_text/text11v_button_icon/closedv_rt_text/text2v_button_icon/mt2v_rt_text/text12v_button_icon/localv_rt_text/text7v_button_icon/manlv_rt_text/text5v_button_icon/remotev_rt_text/text8v_button_icon/autov_rt_text/text6v_button_icon/openningv_rt_text/text3v_button_icon/dav_rt_text/text10v_button_icon/closingv_rt_text/text4v_button_icon/faultv_rt_text/text9v_rt_text/controlv_button/open_oneselfv_button/openv_button/set_mtv_button/close_oneselfv_button/closev_button/set_nmtv_button/execute_oneselfv_button/executev_button/execute_mtv_button/dismiss相应的控件中的 OBEL语句的解释:v_model中一共有三个 Trigger第一个Trigger ShowModel中语句(在第一次点击的时候执行的语句 )'==================================================================**OBELMethod**Object:/VP_DEV_CNTL/v_model/VP_DEV_CNTLAuthor:Project:Date: WedMay2408:48:531995Note:ThismethodisexecutedwhentheShowModel/messageissentto:/VP_DEV_CNTL/v_model/VP_DEV_CNTL==================================================================='methodTriggeronmsg:msgbegin|deviceaStrObjIDClassNameModelNamestrTablestrPointstrFieldObjectListstrProfixstrSuffix|‘上面这句话实在定义初始量 ’selfsetWindowType:"popup";‘设置面板初始方式为弹出式 ’selfsetPopupTimeout:600;‘设置时间超过600秒没有操作自动退出’ObjID=selfgetShowMsggetValue:"ObjectID";device=ObjectgetObject:ObjID;ClassName=devicegetClassName;‘得到你所点击控件的class名’ModelName=selfgetModelName;‘得到你所点击控件的Model名’strTable=devicetable;‘得到你所点击控件中加载的点的 Table名(即analog,status 等)’strField=devicefield;‘得到你所点击控件中加载的点的 field 名(即字段名)’strProfix=devicepointleftStr:6;‘得到你所点击控件中加载的点的 point名中从左边开始的六位’(((device point rightStr: 1)!="A") &&((device point rightStr: 1)!="B")&&((devicepointrightStr:1)!="C")&&((devicepointrightStr:!="D")&&((devicepointrightStr:1)!="E")&&((devicepointrightStr:1)!="F"))‘逻辑与运算在这六个条件中只要有一个不成立即为 False,全部成立为True’ifTrue:[strSuffix=devicepointrightStr:3;]‘如果为真得到你所点击控件中加载的点的 point名中从右边开始的三位’ifFalse:[strSuffix=devicepointrightStr:4;];‘如果为假得到你所点击控件中加载的点的 point名中从右边开始的四位’~v_rt_text/namesetText:strSuffix;‘把strSuffix中的值写到v_rt_text/name的控件中去’ObjectList=Listnew;ObjectListadd:"XSO";ObjectListadd:"XA";ObjectListadd:"ZSO";ObjectListadd:"DA";ObjectListadd:"SAM";ObjectListadd:"ZLR";ObjectListlist:[:item|device=ObjectgetObject:("/"+ModelName+"/v_rt_text/"+item);strPoint=strProfix+item+strSuffix;aStr=strTable+"."+strPoint+"."+strField;devicesetPoint:aStr;];.ObjectList=Listnew;ObjectListadd:"ROV";ObjectListlist:[:item|device=ObjectgetObject:("/"+ModelName+"/v_rt_text/"+item);strPoint=strProfix+item+strSuffix+"M";aStr=strTable+"."+strPoint+"."+strField;devicesetPoint:aStr;];‘把数据库中的点的字段值赋值到相应的控件中,例如status.CH0JANCHSO101F.cursta的格式’self store: ("'" +strProfix +"ZSO"+strSuffix +"'") at: "open_close";selfstore:("'"+strProfix+"SAM"+strSuffix+"'")at:"sam";self store: ("'" +strProfix +"ROV"+strSuffix +"M"+"'") at: "rov";‘把点名赋给全程变量,例如把 CH0JANCHSO101F赋给open_close这个全程变量’~v_sql_data_access/LabelSQLstart;~v_sql_data_access/LabelSQL1start;~v_sql_data_access/LabelSQL2start;‘触发v_sql_data_access/LabelSQL中的startTrigger’^trueEnd第二个Trigger ReshowModel中语句(不关掉打开的面板再次点击的时候执行的语句 )'==================================================================**OBELMethod**Object:/VP_DEV_CNTL/v_model/VP_DEV_CNTLAuthor:Project:Date: WedMay2408:48:531995Note:Thismethodisexecutedwhenthe ReshowModel/messageissentto:/VP_DEV_CNTL/v_model/VP_DEV_CNTL==================================================================='methodTriggeronmsg:msgbegin|deviceaStrObjIDClassNameModelNamestrTablestrPointstrFieldObjectListstrProfixstrSuffix|selfsetWindowType:"popup";'selfsetPopupTimeout:600;ObjID=selfgetShowMsggetValue:"ObjectID";device=ObjectgetObject:ObjID;ClassName=devicegetClassName;ModelName=selfgetModelName;strTable=devicetable;strField=devicefield;strProfix=devicepointleftStr:6;(((device point rightStr: 1)!="A") &&((device point rightStr: 1)!="B")&&((devicepointrightStr:1)!="C")&&((devicepointrightStr:!="D")&&((devicepointrightStr:1)!="E")&&((devicepointrightStr:1)!="F"))ifTrue:[strSuffix=devicepointrightStr:3;]ifFalse:[strSuffix=devicepointrightStr:4;];~v_rt_text/namesetText:strSuffix;ObjectList=Listnew;ObjectListadd:"XSO";ObjectListadd:"XA";ObjectListadd:"ZSO";ObjectListadd:"DA";ObjectListadd:"SAM";ObjectListadd:"ZLR";ObjectListlist:[:item|device=ObjectgetObject:("/"+ModelName+"/v_rt_text/"+item);strPoint=strProfix+item+strSuffix;aStr=strTable+"."+strPoint+"."+strField;devicesetPoint:aStr;];ObjectList=Listnew;ObjectListadd:"ROV";ObjectListlist:[:item|device=ObjectgetObject:("/"+ModelName+"/v_rt_text/"+item);strPoint=strProfix+item+strSuffix+"M";aStr=strTable+"."+strPoint+"."+strField;devicesetPoint:aStr;];self store: ("'" +strProfix +"ZSO"+strSuffix +"'") at: "open_close";selfstore:("'"+strProfix+"SAM"+strSuffix+"'")at:"sam";self store: ("'" +strProfix +"ROV"+strSuffix +"M"+"'") at: "rov";~v_sql_data_access/LabelSQLstart;~v_sql_data_access/LabelSQL1start;~v_sql_data_access/LabelSQL2start;^trueEnd‘再次点击和头一次点击的语句是一样的 ’第三个Trigger UnshowModel中语句(在面板退出的时候执行的语句 )'==================================================================**OBELMethod**Object: /VP_DEV_CNTL/v_model/VP_DEV_CNTLAuthor:Project:Date: FriNov1012:07:241995Note:ThismethodisexecutedwhentheUnshowModel/messageissentto:/VP_DEV_CNTL/v_model/VP_DEV_CNTL==================================================================='methodTriggeronmsg:msgbegin|ObjNameObjID|ObjName=selfgetShowMsggetValue:"ObjectID";ObjID=ObjectgetObject:ObjName;ObjIDdeselect;‘语句的意思是释放掉所做的选择,并使其为未被选择状态 ’^trueEndLabelSQL中只有一个 Trigger第一个
Trigger
Start中语句(在面板开始的时候执行的语句,在
v_model中的
showModel的
Trigger
中做的触发)'==================================================================**OBELMethod**Object: /VP_DEV_CNTL/v_sql_data_access/LabelSQLAuthor:Project:Date: TueJul2516:03:061995Note:ThismethodisexecutedwhentheStart/messageissentto:/VP_DEV_CNTL/v_sql_data_access/LabelSQL==================================================================='methodTriggeronmsg:msgbegin|str|0to:3do:[:item|selfbindColumn:itemas:"string";];‘设置一个有四个数的表并作了一个0-3的循环’str="declare@x1varchar(20),@x2varchar(20),@x3varchar(20),@x4varchar(20)";str<<"execsp_getStatMsgTxt'status',";str<<(~modelrecall:"open_close");str<<",'flag',@x1output,@x2output,@x3output,@x4output";str<<"select@x1,@x2,@x3,@x4";‘拼凑execsp_getStatMsgTxt ‘status’,‘CH0JANCHSO101F’,’flag
’,@x1output,@x2output,@x3output,@x4output;select@x1,@x2,@x3,@x4
语句’selfsetSQL:str;^trueEnd‘在cmxsql下执行上面所拼凑的语句得到的结果 ’LabelSQL1中只有一个 Trigger第一个Trigger Start中语句(在面板开始的时候执行的语句,在 v_model中的showModel的Trigger中做的触发)'==================================================================**OBELMethod**Object: /VP_DEV_CNTL/v_sql_data_access/LabelSQLAuthor:Project:Date: TueJul2516:03:061995Note:ThismethodisexecutedwhentheStart/messageissentto:/VP_DEV_CNTL/v_sql_data_access/LabelSQL==================================================================='methodTriggeronmsg:msgbegin|str|0to:3do:[:item|selfbindColumn:itemas:"string";];str="declare@x1varchar(20),@x2varchar(20),@x3varchar(20),@x4varchar(20)";str<<"execsp_getStatMsgTxt'status',";str<<(~modelrecall:"sam");str<<",'flag',@x1output,@x2output,@x3output,@x4output";str<<"select@x1,@x2,@x3,@x4";selfsetSQL:str;‘方法同上面的一致’^trueendLabelSQL2中只有一个 Trigger第一个
Trigger
Start中语句(在面板开始的时候执行的语句,在
v_model中的
showModel的
Trigger
中做的触发)'==================================================================**OBELMethod**Object: /VP_DEV_CNTL/v_sql_data_access/LabelSQLAuthor:Project:Date: TueJul2516:03:061995Note:ThismethodisexecutedwhentheStart/messageissentto:/VP_DEV_CNTL/v_sql_data_access/LabelSQL==================================================================='methodTriggeronmsg:msgbegin|str|0to:3do:[:item|selfbindColumn:itemas:"string";];str="declare@x1varchar(20),@x2varchar(20),@x3varchar(20),@x4varchar(20)";str<<"execsp_getStatMsgTxt'status',";str<<(~modelrecall:"rov");str<<",'flag',@x1output,@x2output,@x3output,@x4output";str<<"select@x1,@x2,@x3,@x4";selfsetSQL:str;^trueEndZSO中只有一个 Trigger第一个Trigger UBEUpdate中语句(在控件所加的点有数值改变的时候执行的语句 )'==================================================================**OBELMethod**Object: /VP_PUMP_CNTL_STOP/v_rt_text/ZSOAuthor:Project:Date: WedNov0218:36:182005Note:ThismethodisexecutedwhentheUBEUpdate/messageissentto:/VP_PUMP_CNTL_STOP/v_rt_text/DBLS==================================================================='methodTriggeronmsg:msgbegin|str|str=selfgetText;‘获取控件Rttext 的值’(strisSubStr:"open")‘判断它的值是否为”open”’ifTrue:[~v_button_icon/opensetInactiveBitmap:"green";‘给v_button_icon/open控件的nactiveBitmap的颜色为绿色’~v_button_icon/closedsetInactiveBitmap:"white";];(strisSubStr:"closed")ifTrue:[~v_button_icon/opensetInactiveBitmap:"white";~v_button_icon/closedsetInactiveBitmap:"green";];(strisSubStr:"error")ifTrue:[~v_button_icon/opensetInactiveBitmap:"white";~v_button_icon/closedsetInactiveBitmap:"white";];(strisSubStr:"transit")ifTrue:[~v_button_icon/opensetInactiveBitmap:"green";~v_button_icon/closedsetInactiveBitmap:"green";];‘和上面的大同小意,没有做过多的解释 ’^trueEndSAM中只有一个 Trigger第一个TriggerUBEUpdate中语句(在控件所加的点有数值改变的时候执行的语句 )'==================================================================**OBELMethod**Object: /VP_PUMP_CNTL_STOP/v_rt_text/DBLSAuthor:Project:Date: WedNov0218:36:182005Note:ThismethodisexecutedwhentheUBEUpdate/messageissentto:/VP_PUMP_CNTL_STOP/v_rt_text/DBLS==================================================================='methodTriggeronmsg:msgbegin|str|str=selfgetText;(strisSubStr:"open")ifTrue:[~v_button_icon/manlsetInactiveBitmap:"green";~v_button_icon/autosetInactiveBitmap:"white";];(strisSubStr:"closed")ifTrue:[~v_button_icon/manlsetInactiveBitmap:"white";~v_button_icon/autosetInactiveBitmap:"green";];(strisSubStr:"error")ifTrue:[~v_button_icon/manlsetInactiveBitmap:"white";~v_button_icon/autosetInactiveBitmap:"white";];(strisSubStr:"transit")ifTrue:[~v_button_icon/manlsetInactiveBitmap:"green";~v_button_icon/autosetInactiveBitmap:"green";];^trueEndXA中只有一个 Trigger第一个TriggerUBEUpdate中语句(在控件所加的点有数值改变的时候执行的语句 )'==================================================================**OBELMethod**Object: /VP_PUMP_CNTL_STOP/v_rt_text/DBSAuthor:Project:Date: WedNov0219:00:352005Note:ThismethodisexecutedwhentheUBEUpdate/messageissentto:/VP_PUMP_CNTL_STOP/v_rt_text/DBS==================================================================='methodTriggeronmsg:msgbegin|str1|str1=selfgetText;(str1isSubStr:"open")ifTrue:[~v_button_icon/faultsetInactiveBitmap:"white";]ifFalse:[(str1isSubStr:"closed")ifTrue:[~v_button_icon/faultsetInactiveBitmap:"red";]ifFalse:[~v_button_icon/faultsetInactiveBitmap:"white";];];^trueEndROV中只有一个 Trigger第一个TriggerUBEUpdate中语句(在控件所加的点有数值改变的时候执行的语句 )'==================================================================**OBELMethod**Object: /VP_PUMP_CNTL_STOP/v_rt_text/DBLSAuthor:Project:Date: WedNov0218:36:182005Note:ThismethodisexecutedwhentheUBEUpdate/messageissentto:/VP_PUMP_CNTL_STOP/v_rt_text/DBLS==================================================================='methodTriggeronmsg:msgbegin|str|str=selfgetText;(strisSubStr:"open")ifTrue:[~v_button_icon/mt1setInactiveBitmap:"red";~v_button_icon/mt2setInactiveBitmap:"white";]ifFalse:[~v_button_icon/mt1setInactiveBitmap:"white";~v_button_icon/mt2setInactiveBitmap:"green";];^trueEnd中只有一个TriggerXSOUBEUpdate第一个Trigger中语句(在控件所加的点有数值改变的时候执行的语句 )'==================================================================**OBELMethod**Object: /VP_PUMP_CNTL_STOP/v_rt_text/DBLSAuthor:Project:Date: WedNov0218:36:182005Note:ThismethodisexecutedwhentheUBEUpdate/messageissentto:/VP_PUMP_CNTL_STOP/v_rt_text/DBLS==================================================================='methodTriggeronmsg:msgbegin|str|str=selfgetText;(strisSubStr:"open")ifTrue:[~v_button_icon/openningsetInactiveBitmap:"green";~v_button_icon/closingsetInactiveBitmap:"white";];(strisSubStr:"closed")ifTrue:[~v_button_icon/openningsetInactiveBitmap:"white";~v_button_icon/closingsetInactiveBitmap:"green";];(strisSubStr:"error")ifTrue:[~v_button_icon/openningsetInactiveBitmap:"white";~v_button_icon/closingsetInactiveBitmap:"white";];(strisSubStr:"transit")ifTrue:[~v_button_icon/openningsetInactiveBitmap:"green";~v_button_icon/closingsetInactiveBitmap:"green";];^trueEndZLR中只有一个 Trigger第一个TriggerUBEUpdate中语句(在控件所加的点有数值改变的时候执行的语句 )'==================================================================**OBELMethod**Object: /VP_PUMP_CNTL_STOP/v_rt_text/DBFAUAuthor:Project:Date: WedNov0219:17:512005Note:ThismethodisexecutedwhentheUBEUpdate/messageissentto:/VP_PUMP_CNTL_STOP/v_rt_text/DBFAU==================================================================='methodTriggeronmsg:msgbegin|str1|str1=selfgetText;(str1isSubStr:"closed")ifTrue:[~v_button_icon/localsetInactiveBitmap:"green";~v_button_icon/remotesetInactiveBitmap:"white";]ifFalse:[(str1isSubStr:"open")ifTrue:[~v_button_icon/localsetInactiveBitmap:"white";~v_button_icon/remotesetInactiveBitmap:"green";]ifFalse:[~v_button_icon/localsetInactiveBitmap:"white";~v_button_icon/remotesetInactiveBitmap:"white";];];^trueEnd中只有一个TriggerDAUBEUpdate第一个Trigger中语句(在控件所加的点有数值改变的时候执行的语句 )'==================================================================**OBELMethod**Object: /VP_PUMP_CNTL_STOP/v_rt_text/BDAAuthor:Project:Date: WedNov0219:58:252005Note:ThismethodisexecutedwhentheUBEUpdate/messageissentto:/VP_PUMP_CNTL_STOP/v_rt_text/BDA==================================================================='methodTriggeronmsg:msgbegin|str1|str1=selfgetText;(str1isSubStr:"open")ifTrue:[~v_button_icon/dasetInactiveBitmap:"red";]ifFalse:[(str1isSubStr:"closed")ifTrue:[~v_button_icon/dasetInactiveBitmap:"white";]ifFalse:[~v_button_icon/dasetInactiveBitmap:"white";];];^trueEndv_button/ execute_oneself 中只有一个 Trigger第一个
Trigger
LeftMouseButtonRelease
中语句(在左键点击时执行的语句
)'==================================================================**OBELMethod**Object: /VP_DEV_CNTL/v_button/executeAuthor:Project:Date: FriJun3015:45:351995Note:ThismethodisexecutedwhentheLeftMouseButtonRelease/messageissentto:/VP_DEV_CNTL/v_button/execute==================================================================='methodTriggeronmsg:msgbegin|devicestr|(~v_button/open_oneselfisPressed)‘如果v_button/open_oneself 在按下的状态’ifTrue:[str =~v_sql_data_access/LabelSQL getDataAtRow:0andColumn:1;‘把LabelSQL中包含的表中0行1列的数赋给str’~v_button/open
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Python编程高级算法试题及分析
- 矿物学试题及详解
- T-NAIA 0393-2025 葡萄酒中维生素B2的测定 液相色谱-串联质谱法
- 新生儿压疮的预防与护理
- CX-659S-生命科学试剂-MCE
- 2026年宠物保健品监管:规范夸大宣传与提升实际功效
- 2026年新能源电池回收协议
- 2025年AI驱动的产品设计定制化服务
- 18《大象的耳朵》 课件 2025-2026学年二年级语文下册统编版
- 工资付清协议书
- 2026年青岛市局属公办高中自主招生物理试卷试题(含答案详解)
- 2026中国激光器行业发展现状调研及市场前景趋势洞察报告
- 2026年政府采购评审专家通关考试题库完整附答案详解
- GB/T 47364-2026肉牛营养需要量
- (二模)河南五市2026年高三毕业年级第二次质量检测生物试卷(含答案)
- (二模)拉萨市2026届高三第二次联考文科综合试卷(含答案)
- 养老院老人食物中毒应急预案演练脚本
- 2026湖北省崇阳县人才引进26人建设笔试备考题库及答案解析
- 国家义务教育质量监测八年级德育模拟试卷
- 初中生物学七年级下册新教材(北师大版2024)跨学科实践单元教学设计
- (2026版)发热待查诊治专家共识课件
评论
0/150
提交评论