当前位置:文档之家› AUTO LISP函数参考5

AUTO LISP函数参考5

AUTO LISP函数参考4实体数据函数下列函数可让用户检索和修改定义实体的数据,所有函数都用实体名指定要操作的实体.4.1(entdel<实体名>)如果由<实体名>指定的实体在当前图中,它就被删掉,如果在这次编辑中该实体已被删除,那么它将被重新恢复出来(从当前图中).退出图形编辑程序时,被删除的实体便从图中彻底清除掉了,所以ENTDEL只能在删除实体的那次编辑过程中使实体再恢复.ENTDEL只对主实体进行操作.对属性和多义线的顶点是不能脱离其双亲实体而予删除的(可使用COMM AND函数执行ATTEDIT或PEDIT命令来达到这一目的).例如:(setq e1(entnext));置E1为图中第一个实体的名(entdel e1);删去实体E1(entdel e1);不删除(恢复)已被删去的实体E14.2(entget<实体名>)从数据库中检索到名为<实体名>的实体,并以表形式返回,此表包含实体的定义数据表的结果以LISP的关联表形式编制,用ASSOC函数可以容易地从中检索每一项.表中的对象是用AutoCAD的DXF组码形式定义的,它们是为实体数据的每个部分准备的.例如,用下列命令序列画线,然后再检索此线:对下面的例子,我们假定:.当前层是"0",.当前线型是"CONTINUOUS"(缺省值),.当前Z向高度是零(缺省值),.实体标号功能被关闭,而且.FLATLAND系统变量值为零.假设用下列命令画一条线:Command:LINEFrom point:1,2To point:6,6To point:RETURN然后可以用下述命令为线检索实体数据:Command:(setq a(entget(entlast)))假定系统变量FLATLAND为零(即要求3D点).这样,将把A置为下表(为了可读,作了缩进排列):((-1.<Entity name:60000014>)(0."LINE");Entity type(8."0");Layer(101.02.00.0);Start point(116.06.00.0);End point)表的开头-1项包含这个所代表的实体名.下面描述的ENTMOD函数将用这种表来识别要修改的实体.表示某一值的点对表可以很容易地用ASSOC提取,再用CDR分离出它们的值.实体中各部分的编码是DXF所用的那些编码,在AutoCAD参考手册的附录C中有描述.和DXF一样,实体题头项(实体的颜色和线型,属性跟随标志,厚度,及实体标号)只有在不为缺省值时才被输出.和DXF不同的是,任选的实体定义字段不管是否和它们的缺省值相等都将被输出.这样做的意图是为了简化处理;对于使用那种操作和处理它们的通用程序,可以总是假设这些字段是存在的.另外与DXF不同的是,三维坐标是被组合成一个点值表,如(101.02.03.0),而不象DXF格式中所出现的三个独立的10,20和30组值.注意,点的子表不同于以上所述的点对型的.我们约定,子表的CDR即为组值,由于点是由两个实数(或三个函数)组成的一个表,所以使得整个组为一个三元素(或四元素)表.这个组的CDR即为代表此点的表.因此,这便保证了CDR总能返回组值的这个约定.当编写函数来处理这些实体表时,必须保证它们与子表的顺序无关.使用ASSOC能保证达到这个要求.包含实体名的-1组使得修改操作只须诉诸于实体表,也避免了在平行(另外的)结构内保持实体名的要求.在多义线或属性集最后的SEQEND实体中包含-2组,它的CDR是这个实体的排头的实体名.这样,查到SEQEND,就能从子实体序列中找到排头,然后用SEQ END实体中-2组的CDR作为实体名,从而由此获得相关联的主实体.下面的例子表示一个更复杂的实体数据.对此例,我们假定当前的UCS处在WCS中关于Z 轴逆时针旋转40度的位置,实体标号的功能是打开状态和系统变量FLATLAND为零.Command:LINETYPE?/Create/Load/Set:SETNew entity linetype<BYLAYER>:DASHED?/Create/Load/Set:RETURNCommand:COLORNew entity color<BYLAYER>:BLUECommand:LAYER?/Make/Set/New/On/Off/Color/Ltype/Freeze/Thaw:MAKENew current layer<0>:ANNOTATION?/Make/Set/New/On/Off/Color/Ltype/Freeze/Thaw:RETURNCommand:TEXTStart point or Align/Center/Fit/Middle/Right/Style:2,2Height<0.2000>:0.3Rotation angle<0>:30Text:So long,and thanks for all the fish!Command:(setq ed(entget(setq e(entlast))))在这种情况下,E将被置为TEXT的实体名,而ED被置为它的实体表(如下示).查找Auto CAD参考手册中的附录C就能知道这个表的具体含意.((-1.<Entity name:6000053c>)(0."TEXT");Entity type(8."ANNOTANTION");Layer(6."DASHED");Linetype(62.5);Color(5."7E");Handle(102.02.00.0);Start point(40.0.3);Height(1."So long,and thanks for all the fish!")(50.0.523599);Rotation angle(radians)(41.1.0);Width factor(51.0.0);Obliquing angle(7."STANDARD");Text style(71.0);Generation flags(72.0);Justification(110.00.00.0);Alignment point(2100.0-0.6427880.766044);Extrusion direction vector)所有与实体有关的点均以实体坐标系的形式表达(ECS),对于点(point),线(Line),三维线(3DLine),三维面(3DFace),三维多义线(3DPolyline),三维网格(3DMesh),和标注(D imension)实体,而对于所有其余实体,其实体坐标(ECS)则可从通用坐标系(WCS)和实体本身的延伸方向(组代码为210)中导出.当用非通用坐标系绘制实体时(如上例中的Text),需将点值变换为通用坐标或当前的用户坐标(UCS),这可通过TRANS函数来实现.用上面的Tex t实体为例:(setq p(cdr(assoc10ed)))可能返回(2.02.00.0)将文本实体的起点赋给P,即Text实体的实体坐标(ECS),(注意按这种形式返回的点与在用ENTGET时设置的当前用户坐标系无关).现在:(trans p e0)可能返回(2.01.532091.28558)这里用e作为"from"转换码,将文本实体的起点从其实体坐标形式转换为通用坐标形式.如果系统变量FLATLAND是非零值并且上例中的实体是在与通用坐标系(WCS)等效的用户坐标系<UCS>中绘制的,则ENTGET返回的有关点值将是二维通用坐标(2D WCS)形式,并具有一个组代码为38的组值,该组值用以定义实体的Z向高度(如果为非零值的话),同时210组值(延伸方向)将被取消.4.3(entmod<实体表>)ENTMOD接受由ENTGET返回的那种格式的表(<实体表>),为此实体更新其在数据库中信息,该实体名由<实体表>中的-1组指定.因此,AutoLISP更新数据库的基本方法就是用ENTG GET提取实体,修改定义该实体的表(注意,AutoLISP的SUBST函数对这种操作非常有用),而用ENTMOD更新数据库中的实体.例如:(setq en(entnext));置EN为图中第一个实体的名(setq ed(entget en));置ED为实体名为EN的实体数据(setq ed(subst(cons8"0")(assoc8ed);改变ED中的图层组的组值ed;为图层"0"))(entmod ed);修改图中实体EN的图层ENTMOD对它要做的更改加了一此限制.首先,不能更改实体的类型和实体标号(如果要这样做,则先用ENTDEL删除它,再用COMMAND函数建立一个新的实体).实体表引用的所有对象在执行ENTMOD之前必须是AutoCAD已知的.因此文本类型、线型、形状和块名,在ENTMOD 修改实体表之前必须预先定义好.这个规定的一个例外就是层名,如果在实体表中用到还没有定义的层,那么ENTMOD将用"LAYER NEW"命令和层的标准缺省值产生一个新层.对于那些使用浮点值的字段(如厚度thickness),ENTMOD可以接受一个整数,但它会自动将其转变成浮点值.同样;如果为那些整数型实体数据段(如颜色码)指定了一个浮点值,则ENTMOD也会自动将其截断成整数来处理.正如DXFIN对DXF文件中的数据处理一样,ENTMOD对提供给它的表也进行一致性检查.如果检测出严重错误,且严重到数据库已无法更新,则返回nil.否则,ENTMOD将返回作为变元送给它的表.ENTMOD将不会改变内部字段,如:实体中SEQEND实体中的-2组中的实体名---对更改这样字段的企图被作为无效处理.更新主实体时,ENTMOD既修改这个实体,又更新它在屏幕上的图象(包括子实体).当使用ENTMOD更新子实体(多义线的顶点或块的属性)时,子实体将只在数据库中被更新,但是屏幕上的图象不会被重新显示.当对给定子实体的所有修改完成后,就可以用下面描述的ENTUPD函数来更新屏幕上的图象.4.4(entupd<实体名>)如上所述,当使用ENTMOD对多义线顶点或块属性进行修改后,整个复合实体并不在屏幕上更新.例如,如果修改某条复杂多义线上的100个顶点,那么当每个顶点更改时都对多义线进行重新计算和重新显示,这样会使工作速度变得不可接受地缓慢.ENTMOD函数可用于在屏幕上更新经修改的多义线或块.可以用多义线或块中的任何部分的实体名调用ENTUP D.它没有必要是领头实体--ENTMOD将会找到头.虽然ENTUPD是用于多义线和具有属性的块,但实际上也可被其它任何实体调用.它将总是重新生成屏幕上的实体,包括所有的子实体.例如,设图中第一个实体是一条有若干顶点的多义线,那么:(setq e1(entnext));置E1为多义线的实体名(setq e2(entnext e1));置E2为多义线的第一个顶点(setq ed(entget e2));置ED为顶点的数据(setq ed(subst'(101.02.0)(assoc10ed);改变ED中的顶点位置为1,2ed))(entmod ed);移动图中的顶点(entupd e1);重新生成多义线实体E14.5限制实体名和选择集只对图形编辑过程有效,它们是在图形编辑过程中从AutoCAD取得的.另外在执行PLINE和ATTEDIT命令的过程中企图执行下列操作,则会返回nil,而且不执行所要求的函数.ENTMOD修改一个现存实体ENTUPD重新生成一个经修改的复杂实体ENTDEL恢复和重新生成一个删去的实体5将实体名和选择集与AutoCAD一起使用对于AutoCAD的实体选择提示,用实体名和选择集输入是有效的.因此,对由AutoLISP命名的实体可以用AutoCAD命令进行操作.在"Select object:"提示下AutoLISP可以提供一个实体名,它指定了单个实体,或者一个选择集,它选择了集中的所有实体.凡在AutoCAD允许使用"Last"选择项的地方,用AutoLISP给出实体名或选择集也是有效的(不管实体是否可见,它们都具有与拾取一个实体相同的效果,但却不必指定一个拾取点).在AutoCAD允许使用指点目标方式进行选择的地方,ENTSEL返回的那种格式的表将被选择过程接收.它们从表中选择实体,指定表中的点作为它们的拾取点.这就允许AutoLISP将这种形式的实体拾取点传送给如BREAK,FILLET,CHAMFER,TRIM和EXTEND这样的命令.注意,只要命令允许拾取点,ENTSEL型格式的表也可用于其它选择.6对处理曲线拟合和样条拟合多义线的说明当使用ENTNEXT逐步通过多义线的各顶点时,可能会碰到一些不是有意建立的顶点,这些是辅助顶点,是PEDIT的Fit和Spline选择项自动插入的.用户可能想略去这些辅助顶点,因为在下次对多义线使用PEDIT的Fit和Spline时会取消对这些辅助点作的变动.从多义线实体的组标号70中,用户可看出多义线是曲线拟合(位值为2)的还是样条拟合(位值为4)的.如果未设置这两种位值,则多义线的所有顶点都是正常的.如果设置了曲线拟合位(2),则多义线的辅助顶点将具有其组标号70设置的位值1.以表示这些顶点是在曲线拟合过程中插入的.如果您想使用ENTMOD来移动这种多义线的顶点,并使用PEDIT来重新拟合曲线,那么您应该略去这些辅助的顶点.同样,如果多义线实体的样条拟合标记位值置为4,则会对各顶点进行分类,有些顶点的标记位值为1(在曲线拟合时插入,若系统变量SPLINESEGS为负),有些顶点的位值为8(在样条拟合时插入),所有其他顶点的位值都为16(样条骨架的控制点).同样,如果您使用ENTMOD 来移动顶点,然后想重新拟和样条,那么只应该移动作为控制点的那些顶点.7符号表访问函数函数,它们能够读取(也只能读取)增加了两个分别由AutoCAD的图层、线型、赋名视图,字型和块定义所组成的符号表.这两个新函数是TBLENXT和TBLSERCH,它们的描述如下.7.1(tblnext<表名>[<第一个>])本函数用于扫描整个符号表.第一个变元是一个字符串,它表明你想访问的符号表名.有效的表名包括"LAYER"、"LTYPE"、"VIEW"、"STYLE"、"BLOCK"、"UCS"和"VPORT".字符串不一定要大写.如果给出第二个变元且求值结果不为nil,则反绕回符号表头且返回表中第一项;否则,返回表中下一项.当到表尾时,则返回nil.被删去的表项不再返回.当找到一项后就返回一个如DXF类型的代码点对表,很像ENTGET函数的返回值.例如, (tblnext"Layer"T);检索第1个图层将返回:((0."LAYER");符号类型(2."0");符号名(70.0);标志(62.7);颜色号,如层被开闭则为负(6."CONTINUOUS");线型名)注意,这里没有"-1"组.AutoCAD会记住从每个表中最后返回的项,每次调用TBLNEXT将自动地返回下一项.开始扫描表时,必须保证第二变元为非nil值,这样函数才能绕回表头并返回第一项.在"BLOCK"表中有一个组代码为-2的实体名,它是该块定义中的第一个实体的名.这样,如果已知一个块名叫BOX:(tblnext"block");检索块定义可能返回:((0."Block");符号类型(2."Box");符号名(70.0);标志(10.9.0000002.0000000.000000);X,Y,Z的原点(-2.<实体名:40000126>);第一个实体)"-2"组中的实体名只能被ENTGET和ENTNEXT所接受,其它实体访问函数是不能访问的.这就是说,不允许用ENTMOD修改或用SSADD、ENTSEL将其收进某一选择集.依靠-2组的实体名,可以用ENTNEXT扫描构成块定义的各个实体;ENTNEXT对块定义中的最后一个实体名返回nil.如果系统变量FLATLAND为零,TBLNEZT对三维点将总以四元表的形式返回,如(100.0 2.03.0).如果FLATLAND为非零值,则三维点按三元表(二维)形式返回,但这时将有一个组码为30的点对表,用以说明点的Z向高度值.7.2(tblsearch<表名><符号>[<顺序状态>])此函数搜索用<表名>指定的符号表(同TBLNEXT一样),寻找由<符号>指定的符号名.两个名称都能自动转换成大写字母.如果找到了给定的符号名,有关该项的信息用TBLNEXT一样的格式返回.如果找不到该项,则返回nil.例如:(tblsearch"style""standard");字型检索将返回:((0."STYLE");符号类型(2."STANDARD");符号名字(70.0);标志(40.0.000000);固定字高(41.1.000000);字宽因子(50.0.000000);倾斜角(71.0);生成标志(3."txt");主字体文件(4."STYLE");大字体文件)一般TBLSEARCH不影响被TBLNEXT检索的符号表顺序,但若TBLSEARCH操作无误,且可选变元<顺序状态>存在并为非空值,则会调整TBLNEXT的检索顺序,使得下次调用TBLNEXT能返回紧随在这次调用TBLSEARCH之后的表项.变元<顺序状态>的这一功能对于处理VPORT符号表是极有用的,因为在特定的设置情况下,所有的视窗均具有同一名称.例如,要在名为"4VIEW"的设置中寻找并处理每一视窗,可使用如下程序段:(setq V(tblsearch"VPORT""4VIEW"T));寻找第一个视窗(while(and V(=(cdr assoc2V))"4VIEW"))...处理视窗...(setq V(tblnext"VPORT"));取得下一个视窗)如果系统变量FLATLAND为零,TBLNEXT对三维点将总以四元素的形式返回,如(101.0 2.03.0),如果FLATLAND为非零值,则三维点按三元表(二维)形式返回,但这时将有一个组码为30的点对表,用以说明点的Z向高度值.8对图形屏幕的输入设备的访问这一节讲述的AutoLISP函数允许从AutoLISP直接对AutoCAD图形屏幕的输入设备进行访问,使得用AutoLISP完成的命令可以和用户进行交互,就像用户和AutoCAD交互一样.这些命令可能会把屏幕图形搞乱,但用户可用下列命令恢复:(grtext)(redraw)所以没有必要担心.这些函数只提供给有经验的应用程序开发者使用.大多数AutoLISP 应用程序将不必用到这些函数.还需提请这些函数的用户注意,这些函数的操作可能会直接随着AutoCAD的发行版本的变化而更改,因此,AutoDISK公司不能保证使用这些函数的应用程序的向上兼容性.使用GRTEXT和GRREAD函数的应用程序也许不能在所有的硬件配置上以同样效果工作,除非开发者非常认真地遵循下面介绍的有关它们的使用规则.8.1(grclear)这个函数清空当前视窗(在单屏幕系统中,它先从文字屏幕转换图形屏幕).但命令/提示、状态和菜单区保持不变.图形屏幕的原来内容可以用REDRAW函数恢复.8.2(grdraw<起点><终点><颜色>[<加亮>])GRDRAW在当前视窗中的两点之间画一条矢量线.<起点>和<终点>是两个二维或三维点(两个实数或三个实数的表),它们指定当前用户坐标系中矢量的两个端点.若矢量线超出当前显示区,它们将被修剪以适合于屏幕.矢量将以整数<颜色>变元指定的颜色画出,-1指定"XOR涂描"方式,它复盖它画过的地方,当被复盖时就抹掉它自己.如果任选项<加亮>变元(整数)存在并且为非零值,矢量就加以加亮的形式画出,就象显示设备加亮所选择的目标一样(通常以虚线形式).如果省略了<加亮>项,或者提供的值为零,则使用通常的显示方式.8.3(grtext[<框区><文本>[<加亮>]])利用GRTEXT,AutoLISP可以将文本写到AutoCAD图形屏幕的文本区上.如果调用它时有<框区>变元,且其范围从0到屏幕菜单框区最大编号减一,那么它将在指定的屏幕菜单框区内显示字符串变元<文本>.如果<文本>太长放不进菜单框区,则将它截尾,如果太短则填加空格.如果提供了任选的整数变元<加亮>,则加亮(若变元为非零值)指定菜单框区内的文字,或去掉(若变元为零值)指定菜单框区内的文字加亮态(注意,加亮另一个菜单框区将自动地去掉已被加亮的框区的加亮显示态).当往菜单框区写东西时,文本须先在无<加亮>方式下写,然后才可做加亮显示.对和原来写到菜单框区的文本相同的字符串,必须提供加亮或去掉加亮的变元.如果不注意这些规则,将会导致AutoLISP程序在不同的显示设备上产生不同的结果操作.注意,这个函数只不过能在屏幕菜单区内显示所提供的文本;它并不改变被其覆盖的屏幕菜单项.另外,某些显示器上采用重新涂覆菜单项来实现加亮菜单框区的操作,故用GRTEXT写字可能会导致将用户加亮菜单框区时的菜单项内容恢复出来.还有一些显示器,当用REDRAW, REGEN等命令或执行屏幕切换时;会自动重写菜单区内容.然而对大部分显示器,用GRTEXT往屏幕菜单区内写字可保留到直至调用下页屏幕菜单为止.如果调用GRTEXT时其框区编号为-1,文本将被写到屏幕的方式状态行上.方式状态行的长度因显示器的类型而不同(除IBM彩色图形适配器之外,大多数显示器至少允许40个字符).当<文本>太长以致不能容纳在状态行可用空间内,GRTEXT将对它进行截尾.如果使用的框区号为-2,将把文本写到坐标状态行上.注意,如果坐标跟踪处于打开态,一旦定标器发送新的一组坐标值,写到该处的文本值将被复盖掉.对于-1或-2菜单框区号, <加亮>变元不起作用.最后,如果调用GRTEXT时不加任何变元,就能将屏幕上所有的文本区域恢复到它们的标准数值状态.8.4(grread[<跟踪>])利用GRREAD,用户可以直接读AutoCAD的输入设备,任选变元<跟踪>指定了是否跟踪定标器的移动.只有非常特殊的命令才会用到这个函数--AutoLISP的大多数输入应该通过各种各样的"GETxxx函数",如GETSTRING,GETREAL等.<跟踪>变元如果存在且不为nil,那么当定标器移动时,就能从它那儿返回坐标值,而不需要按选择按钮.这就是AutoCAD用于实现拖曳的机制.GRREAD返回一个表,它的第一个元素是指定输入类型的编码.第二个元素既可能是一个整数,也可能是一个点表,这取决于输入类型.表中第一个元素编码方式如下:2键盘字符----第二个元素为ASCII码.3选择的点----作为表的坐标4屏幕菜单单元选择----第二个元素作为菜单框区号.5第二个元素为拖曳方式坐标.只有当第二个变元指定了且不为nil时,才返回.6BUTTONS(按钮)菜单项选择----第二个元素为按钮号.7数字化TABLET1菜单项----第二个元素为菜单项编号.8数字化TABLET2菜单项----第二个元素为菜单项编号.9数字化TABLET3菜单项----第二个元素为菜单项编号.10数字化TABLET4菜单项----第二个元素为菜单项编号.11数字化AUXI菜单项----第二个元素为菜单项编号.12第二个元素作为与定标器按钮对应的坐标返回.总是跟随类型6的返回表.13由键盘输入选择加亮屏幕菜单项.返回的第二个元素是菜单项编号.当返回表中的第二项为点值时,系统变量FLATLAND的当前设置状态会自动决定其返回形式.如FLATLAND为零,则返回点值为与当前用户坐标系统对应的三维坐标;否则为二维坐标.当GRREAD正在运行时,若输入了CTRL-C,就能从键盘上中止AutoLISP程序.任何其它输入将直接传送给GRREAD,使得它能完成对输入设备的控制.附录A错误信息当AutoLISP检测到一个错误时,它就停止执行当前正在执行的函数而去调用用户定义的错误处理函数*ERROR*.如果用户没有定义自己的错误处理函数(即*ERROR*的约束值为nil),标准的错误处理便以下列格式显示信息:error:message(错误信息)接下来显示函数的历程报告.如果用户定义了自己的错误处理函数*ERROR*,则把message作为仅有的变元传给*ERROR*函数.1.用户程序错误下面是错误信息表,当编写和调试AutoLISP函数时经常能见到这些信息.大部分信息指出了典型的LISP程序错误,例如:.函数或符号名拼写错误;.函数变元的个数或类型错误;.括号不匹配;.引号不匹配(字符串没有终止符);.函数没有执行完就试图使用它的结果.尽管这些信息通常指出的是用户程序的错误,但有时也可能是由于AutoLISP本身的程序产生的错误.如果系统报告了错误而你又在你的程序中没有找到任何错误,请你填写一份错误报告(Bug Report)寄Autodesk公司.atomlist modified after function swap(函数交换后,修改了atomlist表)一个表达式修改了ATOMLIST表.在VMON函数被激活以后,这是不允许的.AutoCAD rejected function(AutoCAD不接受的函数)传送给AutoCAD函数的变元不合法(如:在函数SETVAR中用了只读的系统变量或在函数TBLNEXT中用了无效的表名),或函数本身在当前的正文中不合法.例如,不能在COMMAND函数中使用用户输入函数GETxxx.bak argument type(变元类型有错)传送给函数的变元类型不正确(例如,不能把一个整型数传给函数STRLEN).bad association list(关联表有错)提供给ASSOC函数的关联表不能由"(key value)"表组成.bad entmod list(entmod表有错)传送给ENTMOD的变元不是一个合适的实体数据表(如同ENTGET返回的那样的表).bad entmod list value(entmod表值有错))传送给ENTMOD的关联表中的一个子表包含错误的值.bad formal argument list(形式变元表有错)当AutoLISP计算函数时,它测到一个非法的形式变元表.也许此函数根本不是一个函数,而是一个数据表.bad function(函数有错)表中的第一个元素不是一个合法的函数名.也许它是一个变量名或一个数.这个信息也可能表明函数的定义有问题,不要忘记所需要的形式变元表.bad list(表有错)一个构造有错的表传给了函数.如果实型数以一个小数点开头,也会产生这种错误;这种情形下必须在小数点前面加一个零.bad node(结点有错)TYPE函数遇到了非法类型的项.bad node type in list(表中出现错误的结点类型)FOREACH函数遇到了非法类型的项.bad point argument(点变元有错)一个定义不合适的点(两个实数的表)被传送给需要点的函数.请注意,实型数不能以小数点开头;在这种情况下必须在小数点前面加一个零.bad point value(点值有错)一个定义不合适的点(两个实数的表)被传送给需要点的函数.请注意,实型数不能以小数点开头;在这种情况下必须在小数点前面加一个零.bad ssget list(ssget表有错)传送给(SSGET"X")的变元不是一个合适的实体数据表(就象ENTGET返回的那样的表).bad ssget list volue(ssget表值有错)传送给(SSGET"X")的关联表中的一个子表有不正确的值.。

相关主题