为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

CAXA图文档二次开发手册

2020-12-29 17页 doc 1MB 128阅读

用户头像 机构认证

壹笑先生

致力于服务广大学子、教师、社考人员等一份学习的资料!

举报
CAXA图文档二次开发手册CAXA图文档二次开发手册图文档开发组2007/10目录TOC\o"1-3"\h\z\u一、系统结构9二、系统组件112.1数据模型参考标准112.1.1.PDM使能器112.1.2.PDM模式112.1.3.国内相关标准122.2系统组件划分122.2.1.服务端122.2.2.客户端13三、基础服务143.1类框架143.1.1IPdemObject153.1.2IPdemTransactionObject153.1.3IPdemNode153.1.4IPdemState163.1.5IPdemIdentifierObje...
CAXA图文档二次开发手册
CAXA图文档二次开发手册图文档开发组2007/10目录TOC\o"1-3"\h\z\u一、系统结构9二、系统组件112.1数据模型参考112.1.1.PDM使能器112.1.2.PDM模式112.1.3.国内相关标准122.2系统组件划分122.2.1.服务端122.2.2.客户端13三、基础服务143.1类框架143.1.1IPdemObject153.1.2IPdemTransactionObject153.1.3IPdemNode153.1.4IPdemState163.1.5IPdemIdentifierObject173.1.6IPdemAttribute193.1.7IPdemPersistObject203.1.8IPdemManagedObject213.1.9IPdemLifecycle213.1.10IPdemLock233.1.11IPdemMaster243.1.12IPdemRevision253.1.13IPdemActor253.2属性服务263.2.1INProperty263.2.2IPdemPropertySet273.2.3IPropertiesIterator303.2.4IPropertyNamesIterator323.3关系服务333.3.1IPdemRelationship343.3.2IPdemRole353.3.3IPdemObjectSimpleInfo363.4事务服务373.5.1IPdemDatabase373.5.2IPdemTransaction423.5搜索引擎433.5.1IPdemQuery443.5.2IPdemQueryCondition463.5.3IPdemQueryConditionItem483.5.4IPdemQueryResult493.5.5IPdemQueryResultItem493.5.6IPdemQueryResultIterator49四、业务逻辑模型514.1通用文档管理514.1.1IPdemDocument524.1.2IPdemCADDocument534.1.3IPdemGeneralDocument534.1.4IPdemDocWorkRev534.1.5IPdemFolder554.1.6IPdemVault554.1.7IPdemObsoleteVault564.1.8IDocMasterComposition564.1.9IDocRevOfMaster574.1.10IDocMasterForRevs574.1.11IReferenceDocument574.1.12IOriginDocument584.1.13IDocumentReference584.1.14IFolderDocument584.1.15IDocInFolder594.1.16IFolderOfDocs594.1.17IFolderHierarchy594.1.18IParentFolder604.1.19IChildFolder604.1.20IPdemFile604.1.21IDocumentFile624.1.22IDocumentForFile634.1.23IFileOfDocument634.1.24IPdemDocumentFactory634.1.25IPdemFolderFactory644.1.26IFolderDocumentFactory654.1.27IDocExternRefFactory654.2特殊文档管理664.2.1IPdemCappDocument674.2.2IPdem3DDocument674.2.3IPdem3DFolder674.2.4IDocExternRef684.2.5IXRefedDoc684.2.6IDocUsingXRef684.2.7ICappDocMasterComposition694.2.8ICappDocRevOfMaster694.2.9ICappDocMasterForRevs694.2.10I3DDocMasterComposition704.2.11I3DDocRevOfMaster704.2.12I3DDocMasterForRevs704.2.13I3DExternLink714.2.14IExtLinkedDoc714.2.15IDocUsingExtLink714.2.16I3DFolderHierarchy724.2.17IParent3DFolder724.2.18IChild3DFolder724.2.19I3DFolder3DDocument734.2.20I3DDocIn3DFolder734.2.21I3DFolderOf3DDocs734.2.22IPdem3DFolderFactory744.2.23IPdem3DDocumentFactory754.2.24IPdemCappDocumentFactory754.2.25I3DFolderHierarchyFactory764.2.26I3DFolder3DDocumentFactory764.2.27I3DExternLinkFactory774.2.28I3DDocWorkSceneFactory784.2.29I3DDocWorkScene794.3产品结构管理814.3.1IPdemPartRevision814.3.2IPdemRevision824.3.3IPdemPartHelper824.3.4IPdemProductClassFactory844.3.6IProductClassHierarchyFactory844.3.7IPdemPartRevisionFactory854.3.8IPdemProductFactory864.3.9IAssemblyUsageFactory864.3.10IPartDrawingFactory874.3.11IProductClassProductFactory874.4BOM生成与输出884.4.1IPdemBomEngine894.4.2IPdemBomResult924.4.3IPdemBomResultColumn934.4.4IPdemBomItem944.4.5IPdemBomOption944.4.6IPdemBomExpressionFilterItem954.4.7IPdemBomScriptFilteItem954.4.8IPdemBomItemIterator964.4.9IPdemBomResultIterator984.5人员管理1004.5.1IPdemTeamFactory1004.5.2IPdemTeam1014.5.3IPdemPersonFactory1014.5.3IPdemPerson1024.5.3IPdemGroupFactory1024.5.3IPdemGroup1034.5.4ITeamPersonFactory1034.6权限管理1044.6.1IPdemSecurityNode1054.6.2IpdemSecurityMgr1074.6.3IPdemSecurityNodeMgr1094.7系统1114.7.1IPedmSession1114.7.2IPedmSystem1134.7.3IPedmContext1154.8UI1164.8.1IPdemUIMenuManager1174.8.2IPdemUIMenuItem1214.8.3IPdemUIToolBarManager1224.8.4IPdemUIToolBarItem1234.8.5IPdemUIClipboardCenter1234.8.6IPdemUIClipboardItem1254.8.6IPdemUIMainform1264.8.7IPdemUIObjectForm1274.8.8IPdemUIObjectFormItem1304.8.9IPdemUIObjectFormManager1344.8.10IPdemUIObjectFormPage1364.8.11IPdemUIObjectList1404.8.12IPdemUIObjectListItem1444.8.13IPdemUIObjectListSite1464.8.14IPdemUIObjectTree1484.8.15IPdemUIObjectTreeNode1514.8.16IPdemUIObjectTreeSite1544.9审计1554.9.1IPdemAuditor1564.9.2IPdemLogInfo156一、系统定义工具158FormDesigner使用158MenuDesigner使用说明159RelDesigner使用说明159二、脚本编写支持1602.1脚本工作原理1612.2图文档中脚本控制点及编程实例1642.2.1BOM输出1642.2.2BOM的xls模板设置1642.2.3批量入库1652.2.4生成新版本1702.2.5Menudesigner中菜单脚本1712.2.6权限检测1742.2.7系统1752.2.8相关列表1762.2.9排序1762.2.10Formdesigner中事件脚本176第一篇CAXA图文档系统结构一、系统组件CAXA图文档在划分时,参考了国内外重要的PDM标准和规范,其中有较大影响的是OMG定义的PDM使能器规范(PDMEnablers)。该规范对于保障图文档的扩展性、数据组织的合理性、与国外主流PDM系统的一致性提供了巨大帮助。2.1数据模型参考标准在PDM系统的国际化标准方面,有两大主流,一个是OMG定义的PDM使能器;一个是ISO组织定义的PDM模式。2.1.1.PDM使能器OMG在1998年发布了PDM使能器(PDM Enabler)规范,该规范由DEC、IBM、FUJITSU、eMatrix、UGS、Sherpa等公司和机构提出,并在后面的过程中不断修正和完善。所谓使能器,指的是实现或者支持一种特定的抽象处理过程的物理实体,它通过提供共享产品数据的灵活方式来增强产品开发团队的能力和效率。在OMG的目标是定义八类使能器(工程活动需求、工程变更、制造实现、文档管理、产品结构定义、配置管理和测试维护等),使它们能够支持企业在制造过程模型中的整个产品开发过程。在该规范中,系统内部的集成与系统之间的集成通过CORBA实现,以增强PDM系统的可扩展性和与其它系统的集成能力。该规范的目的是使能部件对象界面描述和对象模型的PDM系统之间将能够实现:1.将一个PDM系统的数据转移到另一个PDM系统之中;2.实现PDM系统的联邦机制,也即一个PDM系统能够管理另一个PDM系统中的数据。同时,通过该规范定义的统一的对象界面,其它制造系统中涉及的软件系统(如CAD、CAM和ERP等)可以调用这些对象界面所定义的服务而不必关注所对应的具体PDM产品,从而极大地方便系统的集成。事实上,由于CORBA技术本身发展的不成熟,在实际项目中应用较少,PDM使能器最终的发展受到限制。但PDM使能器中定义的接口以及数据模型对于PDM系统的发展起到很大的促进作用,CAXA图文档从该规范中借鉴了许多数据组织,这种服务封装机制一方面向用户提供符合标准的服务访问机制以利于二次开发和系统集成,另一方面为实现最终的产品数据管理的标准模式奠定了基础。2.1.2.PDM模式PDM模式(PDMSchema)是ISOTC184/SC4为PDM系统管理的产品数据定义了标准的表达形式。STEP的目的是提供一种不依赖于具体应用系统的中性机制,用来描述产品整个生命周期中的数据。PDESInc.和ProSTEP是两家主要的PDM模式开发组织,PDSInc.负责AP203配置管理、AP232核心信息和交换的技术数据封装、AP210电子装配件、互联与封装等应用,ProSTEP负责AP214机械设计过程的核心数据、AP212机电设计与安装等应用协议。两家机构协同开发了STEPPDM模式。OMGPDM使能器和STEPPDM模式是互补的标准,两者是PDM互操作统一标准系统的不同方面。两类标准的互补性表现在:PDM使能器的作用是在制造企业中为各种应用软件系统提供访问PDM系统的途径,它支持的活动包括产品概念和规划、产品设计、制造工程、生产、运输和维护。其重点是为产品数据的管理提供接口:存储和获取产品“文档”(模型、图样、数据集合等);跟踪装配件或零部件关系、改变和替换零件、提供物料清单、执行“用于何处和何处可用"的搜索功能;多版本及其有效性管理;控制变更和发布;提供对产品、产品规范、过程规范、维护规范之间关系以及创建、使用修改它们的工程和管理任务的全面描述。PDM使能器可支持制造活动及各个阶段的工程活动。2.1.3.国内相关标准我国目前尚没有完整的PDM标准,但部分标准与PDM相关。GB/T16656.203(等同采用ISO10303-203);CAD文件管理的标准:GB/T17678.1-1999CAD电子文件光盘存储、归档与档案管理要求电子文件归档与档案管理;GB/T17678.2-1999CAD电子文件光盘存储、归档与档案管理要求光盘信息组织结构;GB/T17679-1999CAAD电子文件光盘存储归档一致性测试;GB/T17825.1-10CAD文件管理。上述标准是CAXA图文档进行设计时的重要参考文献和资料。二、基础服务3.1类框架类框架(PdemFoundation),为各种对象提供状态控制、身份标识、数据存储等服务。图PdemFoundation类图IPdemObject为图文档中的基本实体类,所有实体类都继承自该基类,作用类似于MFC中的CObject类。IPdemObject具有多种机制,分别继承自IPdemTransactionObject、IPdemNode等类。3.1.1IPdemObject1.描述实体类的基类,COM接口类。它同时继承IPdemTransactionObject,IPdemNode,IPdemState,IPdemIdentifierObject,IPdemAttribute,IPdemPersistObject,IPdemManagedObject,IPdemLifecycle。2.数据成员无3.方法参见各个基类。3.1.2IPdemTransactionObject1.描述事务对象类,COM接口类。当CPdemTransaction对象参与到一个事务中时,通过该接口将该事务传递到该对象中,以便该对象加入到该事务中。事务的发起、提交、错误回滚由对象实现。2.数据成员_handle:IPdemDatabase*事务对象的句柄。3.方法无3.1.3IPdemNode1.描述节点类,COM接口类。实体对象之间彼此相互关联形成一个关系图,两个关联的实体在图中是两个节点,节点之间的一条线代表关系。如下图:图实体对象关系同一个实体对象可以参与到多个关系中。在不同的关系中,同一个对象有不同角色IPdemRole。同一个对象的同一个角色只能参与一种关系。2.数据成员无3.方法query_role(role_name:BSTR,the_role:IPdemRole**):HRESULT查询节点对象所参与的角色,每个角色使用一个角色名对应。举例:一个IPdemPartRevision对象参与装配关系和加锁关系,在装配关系中该IPdemPartRevision对象具有IAssembly角色,在加锁关系该IPdemPartRevision对象具有ILockedPart角色。调用IPdemPartRevision对象query_role的方法,给定“Assembly”角色名可以查到IAssembly角色,给定“LockedPart”角色名可以查到ILockedPart角色。输入参数:role_name:BSTR系统设定的角色名。输出参数:the_role:IPdemRole**该角色名对应的角色。返回值:S_OK:成功返回;E_HRESULT_NOT_SUPPORT_ROLE:该角色名对应的角色不存在;异常:无3.1.4IPdemState1.描述状态类,COM接口类。通常实体对象是有状态的,在本系统中,有三种状态:1代表设计,4代表发布,8代表归档.2.数据成员无3.方法get_state(state:short*):HRESULT得到对象当前状态。输入参数:无输出参数:state:short*对象当前状态。返回值:S_OK:成功返回;异常:无set_state(state:short*):HRESULT设置对象当前状态。输入参数:state:short*对象新的状态。输出参数:无返回值:S_OK:成功返回;E_HRESULT_INVALID_STATE:无效的对象状态;异常:无3.1.5IPdemIdentifierObject1.描述对象唯一标识类,COM接口类。系统对象使用唯一标识来识别,标识由类别+流水号组成,是一个唯一字符串。2.数据成员无3.方法get_id(id:OBJID*):HRESULT得到对象的标识。输入参数:无输出参数:id:OBJID*对象标识。返回值:S_OK:成功返回;异常:无set_id(id:OBJID):HRESULT设置对象的标识。输入参数:id:OBJID对象标识输出参数:返回值:S_OK:成功返回;异常:无get_moniker([out,retval]BSTR*_moniker):HRESULT得到对象的别名。输入参数:无输出参数:BSTR*_moniker对象标识。返回值:S_OK:成功返回;异常:无set_moniker([in]BSTR_moniker):HRESULT设置对象的别名。输入参数:BSTR_moniker对象别名输出参数:返回值:S_OK:成功返回;异常:无clone([out,retval]IPdemIdentifierObject**_cloned_id):HRESULT对象的复制。输入参数:无输出参数:IPdemIdentifierObject**_cloned_id生成新对象。返回值:S_OK:成功返回;异常:无3.1.6IPdemAttribute1.描述对象属性类,COM接口类。用于获取和设置对象的属性。2.数据成员无3.方法get_info(property_set:IPropertySet**):HRESULT得到对象的属性。输入参数:无输出参数:property_set:IPropertySet**对象的属性。返回值:S_OK:成功返回;异常:无set_info(property_set:IPropertySet*):HRESULT设置对象的属性。输入参数:无输出参数:property_set:IPropertySet*对象的属性。返回值:S_OK:成功返回;异常:无3.1.7IPdemPersistObject1.描述永久对象类,COM接口类。用于永久存储(存放到数据库中)、实例化对象。2.数据成员无3.方法store(location:BSTR):HRESULT将对象保存到数据库中,通常将对象的标识、属性、状态保存到数据库中。输入参数:无输出参数:location:BSTR对象要保存的数据库位置,通常为空。返回值:S_OK:成功返回;异常:无restore(location:BSTR):HRESULT将对象的标识、属性、状态从数据库中取出,并更新对象。输入参数:无输出参数:location:BSTR对象要取出的数据库位置,通常为空。返回值:S_OK:成功返回;异常:无update(location:BSTR):HRESULT更新对象在数据库中的标识、属性、状态等信息。输入参数:无输出参数:location:BSTR对象要更新的数据库位置,通常为空。返回值:S_OK:成功返回;异常:无remove(location:BSTR):HRESULT将对象的标识、属性、状态从数据库中删除。输入参数:无输出参数:location:BSTR对象要删除的数据库位置,通常为空。返回值:S_OK:成功返回;异常:无3.1.8IPdemManagedObject1.描述可管理的对象类,COM对象类。包含对象可管理的属性,如名称等。2.数据成员name:BSTR对象的名称。create_date:DATE对象的创建日期。last_modify_date:DATE对象最后一次被修改的日期。description:BSTR对象的描述。3.方法无3.1.9IPdemLifecycle1.描述生命周期对象类,COM对象类。用于表达对象生命周期的操作,包含创建、被拷贝、销毁等。2.数据成员无3.方法copy(the_criteria:Criteria,new_obj:IPdemLifecycle**):HRESULT拷贝对象,每个实体对象通过拷贝自身来生成一个新的对象。除了两个对象的标识、状态不同之外,属性是相同的。输入参数:无输出参数:the_criteria:Criteria拷贝时相关的外部数据。new_obj:IPdemLifecycle**拷贝生成新的对象。返回值:S_OK:成功返回;异常:无move(the_criteria:Criteria):HRESULT移动对象,移动一个实体对象到一个新的位置。输入参数:无输出参数:the_criteria:Criteria移动时相关的外部数据,通常包含对象移动之前的初始位置和要移动到的位置以及条件数据。返回值:S_OK:成功返回;异常:无remove():HRESULT删除对象,该方法将从数据库中删除该对象及所有与该对象相关的关系。输入参数:无输出参数:无返回值:S_OK:成功返回;异常:无3.1.10IPdemLock1.描述可加锁对象类,COM接口类。用于对象的加锁、加锁状态查询、解锁。当对象被加锁后,可限制其他人的修改。2.数据成员无3.方法lock(person:IPdemActor*,reason:BSTR):HRESULT加锁对象,该方法将设置实体对象的状态为加锁状态,加锁状态将限制其他用户对该对象的修改。输入参数:person:IPdemActor*加锁人。reason:BSTR加锁原因。输出参数:无返回值:S_OK:成功返回;E_HRESULT_LOCKED:已经被加锁E_HRESULT_LOCKED_BY_OTHER:已经被其他用户加锁异常:无unlock(person:IPdemActor*):HRESULT解锁对象,该方法将设置实体对象的状态为通常状态。输入参数:person:IPdemActor*解锁人。输出参数:无返回值:S_OK:成功返回;E_HRESULT_UNLOCKED:已经被解锁E_HRESULT_LOCKED_BY_OTHER:已经被其他用户加锁异常:无is_lock(block:VARIANT_BOOL*):HRESULT对象是否被加锁。输入参数:无输出参数:block:VARIANT_BOOL*已经被加锁返回1,否则返回0。返回值:S_OK:成功返回;异常:无3.1.11IPdemMaster1.描述实体类,COM接口类。通常它表示一个虚拟实体,由若干个实际实体(版本)组成。如一个零部件A在设计过程中创建若干工作版本A1,A2…,此时A是一个实际并不存在的实体,而真正代表它的是若干工作版本中的一个(当前版本)。2.数据成员无3.方法get_current_revision(cur_rev:IPdemRevision**):HRESULT得到对象当前活动版本。输入参数:无输出参数:cur_rev:IPdemRevision**当前版本返回值:S_OK:成功返回;异常:无set_current_revision(cur_rev:IPdemRevision*):HRESULT设置对象当前活动版本。输入参数:cur_rev:IPdemRevision*当前版本输出参数:无返回值:S_OK:成功返回;异常:无3.1.12IPdemRevision1.描述版本类,COM接口类。对象在生命周期过程中由于不断演化而产生不同的版本,如图纸在设计过程中的修改而创建的各个工作版本。2.数据成员无3.方法create_next_revision(the_criteria:Creteria,new_revision:IPdemRevision**):HRESULT从该对象版本创建一个新的版本,该方法与版本对象的copy方法雷同。输入参数:the_criteria:Creteria创建下一个版本相关的数据。输出参数:new_revision:IPdemRevision**新的版本返回值:S_OK:成功返回;异常:无3.1.13IPdemActor1.描述人员角色类,COM接口类。用于表示人员、部门共同特征,如联系方式等。2.数据成员无3.方法参见基类.3.2属性服务属性服务(PdemPropertyService)本程序模块主要负责实体对象和关系对象属性的操作。用于实体对象和关系对象属性的浏览、编辑及删除。图属性服务数据类图3.2.1INProperty1.描述INProperty表示一个名值对,其中包括两个属性:属性名和属性值。2.数据成员Property_name:BSTR属性的名称。Property_value:Variant属性的值。(可以转换为各种数据类型)。3.方法无3.2.2IPdemPropertySet1.描述属性集类,COM接口类,它是名值对的集合,用于实体和关系属性的操作。名值对中属性名是类型为BSTR的字符串,属性值是VARIANT类型。2.数据成员无3.方法define_property(property_name:BSTR,property_value:VARIANT*):HRESULT定义一个属性,如果同名的属性已经在属性集合中存在,则更新属性值。输入参数:property_name:PropertyName属性名,长度不大于32。property_value:VARIANT*属性值。输出参数:无返回值:返回S_OK;异常:无define_properties(nproperties:VARIANT*):HRESULT一次定义多个属性。如果同名的属性已经在属性集合中存在,则更新属性值。输入参数:nproperties:VARIANT*多个属性。输出参数:无返回值:返回S_OK;异常:无get_number_of_properties(number:ULONG*):HRESULT得到属性集合中属性的个数。输入参数:无输出参数:number:ULONG*属性个数,该值大于等于0。返回值:返回S_OK;异常:无get_all_property_names(how_many:ULONG,property_names:VARIANT*,rest:VARIANT*):HRESULT得到属性集合中所有的属性名。输入参数:how_many:ULONG要得到的属性名个数。输出参数:property_names:VARIANT*属性名列表。rest:VARIANT*属性名枚举器,如果属性集合中属性个数大于how_many,则该值不为空,否则为空。返回值:返回S_OK;异常:无get_property_value(property_name:BSTR,property_value:VARIANT*):HRESULT得到属性集合中一个属性名所对应的值。输入参数:property_name:PropertyName属性名。输出参数:property_value:VARIANT*属性值。返回值:S_OK成功返回;E_HRESULT_PROPERTY_NOT_EXIST属性不存在;异常:无get_property_value_string(property_name:BSTR,property_value:BSTR):HRESULT得到属性集合中一个属性名所对应的值,属性值转换为字符串。输入参数:property_name:BSTR属性名。输出参数:property_value:BSTR属性值。返回值:S_OK成功返回;E_HRESULT_PROPERTY_NOT_EXIST属性不存在;异常:无get_properties(property_names:VARIANT*,nproperties:VARIANT*,_bsuccess:VARIANT*):HRESULT得到给定若干属性名所对应的值。如果属性名不存在,则不返回。输入参数:property_names:VARIANT*属性名的列表。输出参数:nproperties:VARIANT*属性列表。bsuccess:VARIANT*是否成功。返回值:返回S_OK;异常:无get_all_properties(how_many:ULONG,nproperties:VARIANT*,rest:VARIANT*):HRESULT得到属性集合中所有属性。输入参数:how_many:ULONG要得到的属性个数。输出参数:nproperties:VARIANT*得到的属性。rest:VARIANT*属性枚举器。如果属性集合中属性个数大于how_many,则该值不为空,否则为空。返回值:返回S_OK;异常:无delete_property(property_name:BSTR):HRESULT从属性集合中删除一个属性。输入参数:property_name:BSTR要删除的属性名。输出参数:无返回值:返回S_OK;异常:无delete_properties(property_names:VARIANT*):HRESULT从属性集合中删除多个属性。输入参数:property_names:VARIANT*要删除的属性名列表。输出参数:无返回值:返回S_OK;异常:无delete_all_properties(bsucess:VARIANT_BOOL*):HRESULT从属性集合中删除所有属性。输入参数:无输出参数:bsucess:VARIANT_BOOL*删除成功返回1,否则返回0。返回值:返回S_OK;异常:无is_property_defined(property_name:BSTR,bsuccess:VARIANT_BOOL*):HRESULT判断一个属性在属性集合中是否存在。输入参数:property_name:PropertyName要判断的属性名。输出参数:bsuccess:VARIANT_BOOL*存在返回1,否则返回0。返回值:返回S_OK;异常:无3.2.3IPropertiesIterator1、描述枚举器类,COM接口类,用于枚举属性集合中的各个属性。2、数据成员无3、方法reset():HRESULT重置枚举器,将枚举器放到属性集合的首位置。输入参数:无输出参数:无返回值:返回S_OK;异常:无next_one(nproperty:VARIANT*,bsuccess:VARIANT_BOOL*):HRESULT将枚举器移到属性集合的下一个位置。输入参数:无输出参数:nproperty:VARIANT*下一个属性。bsuccess:VARIANT_BOOL*如果枚举器已经移到属性集合的末尾,该值为0,nproperty为空;否则该值为1,nproperty不为空。返回值:返回S_OK;异常:无next_n(how_many:ULONG,nproperties:VARIANT*,bsuccess:VARIANT_BOOL*):HRESULT将枚举器移到属性集合的下how_many个位置,并返回前how_many个属性。输入参数:how_many想要移动的位置。输出参数:nproperties:VARIANT*下how_many个属性。bsuccess:VARIANT_BOOL如果枚举器已经移到属性集合的末尾,该值为0;否则该值为1。返回值:返回S_OK;异常:无destroy():HRESULT销毁该枚举器。输入参数:无输出参数:无返回值:返回S_OK;异常:无3.2.4IPropertyNamesIterator1、描述枚举器类,COM接口类,用于枚举属性集合中的各个属性名。2、数据成员无3、方法reset():HRESULT重置枚举器,将枚举器放到属性名集合的首位置。输入参数:无输出参数:无返回值:返回S_OK;异常:无next_one(property_name:VARIANT*,bsuccess:VARIANT_BOOL*):HRESULT将枚举器移到属性名集合的下一个位置。输入参数:无输出参数:property_name:VARIANT*下一个属性名。bsuccess:VARIANT_BOOL如果枚举器已经移到属性名集合的末尾,该值为0,nproperty为空;否则该值为1,nproperty不为空。返回值:返回S_OK;异常:无next_n(how_many:ULONG,property_names:VARIANT*,bsuccess:VARIANT_BOOL*):HRESULT将枚举器移到属性名集合的下how_many个位置,并返回前how_many个属性。输入参数:how_many想要移动的位置。输出参数:property_names:VARIANT*下how_many个属性名。bsuccess:VARIANT_BOOL如果枚举器已经移到属性名集合的末尾,该值为0;否则该值为1。返回值:返回S_OK;异常:无destroy():HRESULT销毁该枚举器。输入参数:无输出参数:无返回值:返回S_OK;异常:无3.3关系服务关系服务(PdemRelationshipService)主要定义基本实体对象的基本关系,和属性服务一起构成CAXA图文档最基础的两个基本服务。实体对象之间的关系是相互关联的,如下:图对象关系图对象A与对象B之间存在R1的关系,A在R1关系中承当AByB的角色。同时对象A与对象C之间存在R2的关系,A在R2关系中承当AByC的角色。因此一个对象可以参与多个关系的形成。每个参与到关系中的对象(A、B、C、D)都实现了IPdemNode接口,通过该接口的query_role的方法可以得到该对象所扮演的角色,进而可以得到该对象所参与关系类型。对于对象A以及角色AByB,可以得到A参与的R1关系,从而可以找到关联的对象B。关系R1、R2都继承了IPdemRelationship的接口。关系服务类图示意如下:图关系服务类图3.3.1IPdemRelationship1、描述关系基类,COM接口类。用于表示关系,每个具体的关系是可标识的、永久存储的和有属性的。2、数据成员无。3、方法destroy():HRESULT删除一个关系。输入参数:无输出参数:无返回值:S_OK:成功返回;异常:无3.3.2IPdemRole1、描述关系角色类,COM接口类。用于表示实体对象在所参与的关系中所承担的角色。2、数据成员related_node:IPdemNode*承担该角色的实体对象。_role_name:BSTR*关系角色名,可命名的角色,角色名可以扩展。3、方法get_related_object(rel:IPdemRelationship*,other_obj:IPdemNode**):HRESULT通过给定的关系,从承担该关系角色的实体related_node来获取另一个参与该关系的实体other_obj。输入参数:rel:IPdemRelationship*给定的关系输出参数:other_obj:IPdemNode**参与该关系的另一个实体返回值:S_OK:成功返回;异常:无get_related_objects(rel_objs:VARIANT*,rels:VARIANT*):HRESULT从承担该关系角色的实体related_node来获取所有参与此类关系的实体。输入参数:无输出参数:rel_objs:VARIANT*参与此类关系的实体rels:VARIANT*对应的关系,rel_objs与rels的个数相同并且一一对应。返回值:S_OK:成功返回;异常:无quick_get_related_objects(nodes:VARIANT*):HRESULT从承担该关系角色的实体related_node来快速获取所有参与此类关系的实体及其相关信息。该方法通常用于树、列表的快速展开。输入参数:无输出参数:nodes:VARIANT*参与此类关系的实体的信息(实体标识和标签),标签是实体对象若干属性的合成字符串。返回值:S_OK:成功返回;异常:无3.3.3IPdemObjectSimpleInfo1、描述对象简单信息类,COM接口类。表示对象的简单信息。1、数据成员objid:OBJID对象IDobjmoniker:BSTR对象别名label:标签relid:关系IDrelmoniker:关系别名reserved1:BSTR保留字reserved2:BSTR保留字reserved3:BSTR保留字2、方法无3.4事务服务事务管理主要负责将多个接口的方法调用封装在一个事务之中。事务管理使用oledb提供的事务机制。图事务定义类图3.5.1IPdemDatabase1、描述数据库处理类,包括数据库的连接、结果集的处理等,类似MFC中的CDatabase和CRecordset。2、数据成员无3、方法open(conn_str:BSTR,user:BSTR,pwd:BSTR,timeout:long):HRESULT打开连接字符串。输入参数:conn_str:BSTR数据库连接字符串user:BSTR登陆名pwd:BSTR登陆密码timeout:long连接时限输出参数:无返回值:成功返回S_OK;异常:无xml_open(timeout:long):HRESULT打开一个XML文件。输入参数:timeout:long连接时限输出参数:无返回值:成功返回S_OK;异常:无close():HRESULT关闭连接。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无add_parameter(param_name:BSTR,data_type:long,param_dir:long,lSize:long,value:VARIANT*):HRESULT往SQL语句中增加参数。输入参数:param_name:BSTR参数名data_type:long参数类型param_dir:long控制项,可选择是输入参数、输入参数、返回值等lSize:long参数大小value:VARIANT*数据值输出参数:无返回值:成功返回S_OK;异常:无initialize_sql(sql:BSTR):HRESULTSQL语句初始化。输入参数:sql:BSTR输入的SQL语句输出参数:无返回值:成功返回S_OK;异常:无execute_sql():HRESULT执行SQL语句。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无is_eof(bEof:VARIANT_BOOL*):HRESULT。输入参数:无输出参数:bEof:VARIANT_BOOL*标志位,记录集是否已到终点返回值:成功返回S_OK;异常:无move_next():HRESULT移到记录集的下一个记录。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无get_field(field_name:BSTR,value:VARIANT*):HRESULT获得记录集中属性对应的值。输入参数:field_name:BSTR属性名输出参数:value:VARIANT*属性值返回值:成功返回S_OK;异常:无begin_trans():HRESULT事务开始。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无begin_trans():HRESULT事务开始。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无commit_trans():HRESULT事务提交。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无rollback_trans():HRESULT事务回滚。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无get_record_count(lCount:long*):HRESULT事务开始。输入参数:无输出参数:lCount:long*记录集中记录个数返回值:成功返回S_OK;异常:无get_connection(connnection:long*):HRESULT得到连接个数。输入参数:无输出参数:connnection:long*连接个数返回值:成功返回S_OK;异常:无set_connection(connnection:long*):HRESULT得到连接个数。输入参数:connnection:long*设置连接个数输出参数:无返回值:成功返回S_OK;异常:无3.5.2IPdemTransaction1、描述事务类。2、数据成员无3、方法get_transaction_handle(handle:IPdemDatabase**):HRESULT获得事务句柄。输入参数:无输出参数:handle:IPdemDatabase**数据库句柄返回值:成功返回S_OK;异常:无put_transaction_handle(handle:IPdemDatabase*):HRESULT设置事务句柄。输入参数:handle:IPdemDatabase*数据库句柄输出参数:无返回值:成功返回S_OK;异常:无commit():HRESULT提交事务。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无rollback():HRESULT回滚事务。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无3.5搜索引擎搜索引擎主要负责对数据库中数据的查询。图查询定义类图3.5.1IPdemQuery1.描述查询类,COM接口类.2.数据成员无3.方法do_query():HRESULT执行查询。输入参数:无输出参数:无返回值:成功返回S_OK;异常:无add_result_item(_item:IPdemQueryResultItem*):HRESULT增加查询结果项。输入参数:_item:IPdemQueryResultItem*查询结果项输出参数:无返回值:成功返回S_OK;异常:无remove_result_item(_item:IPdemQueryResultItem*):HRESULT删除查询结果项。输入参数:_item:IPdemQueryResultItem*查询结果项输出参数:无返回值:成功返回S_OK;异常:无get_condition(_condition:IPdemQueryCondition**):HRESULT得到查询条件。输入参数:无输出参数:_condition:IPdemQueryCondition**查询条件返回值:成功返回S_OK;异常:无set_condition(_condition:IPdemQueryCondition**):HRESULT得到查询条件。输入参数:_condition:IPdemQueryCondition**查询条件输出参数:无返回值:成功返回S_OK;异常:无get_result_item(index:int,_item:IPdemQueryResultItem**):HRESULT得到查询结果项。输入参数:index:int查询结果项索引输出参数:_item:IPdemQueryResultItem**查询结果项返回值:成功返回S_OK;异常:无get_result_item_count(_count:int*):HRESULT得到查询结果项数目。输入参数:无输出参数:_count:int*查询结果项数目返回值:成功返回S_OK;异常:无get_result_iterator(_itr:IPdemQueryResultIterator**):HRESULT得到查询结果枚举器。输入参数:无输出参数:_itr:IPdemQueryResultIterator**查询结果枚举器返回值:成功返回S_OK;异常:无3.5.2IPdemQueryCondition1.描述查询条件类,COM接口类.2.数据成员queried_class_name:BSTR要查询的类名。start_object:IPdemObject*开始对象。tree_name:BSTR树名。3.方法get_condition_string(_string:BSTR*):HRESULT得到查询条件字符串。输入参数:无输出参数:_string:BSTR*查询条件字符串返回值:成功返回S_OK;异常:无get_condition_item(index:int,_item:IPdemQueryConditionItem**):HRESULT得到由index指定查询条件项。输入参数:index:int输出参数:_item:IPdemQueryConditionItem**查询条件项返回值:成功返回S_OK;异常:无get_condition_item_count(count:int*):HRESULT得到查询条件项数目。输入参数:无输出参数:count:int*查询条件项数目返回值:成功返回S_OK;异常:无add_condition_item(_item:IPdemQueryConditionItem*):HRESULT增加查询条件项。输入参数:_item:IPdemQueryConditionItem*输出参数:无返回值:成功返回S_OK;异常:无remove_condition_item(_item:IPdemQueryConditionItem*):HRESULT删除查询条件项。输入参数:_item:IPdemQueryConditionItem*输出参数:无返回值:成功返回S_OK;异常:无3.5.3IPdemQueryConditionItem1.描述查询条件项类,COM接口类.2.数据成员class_name:BSTR类名。class_role:BSTR类角色。left_parentheses_num:short左括号数目.property_name:BSTR属性名condition_op:BSTR条件符号condition_val:VARIANT条件值condition_val1:VARIANT条件值right_parentheses_num:short右括号数目logic_op:BSTR逻辑符号3.方法无3.5.4IPdemQueryResult1.描述查询结果类,COM对象类.2.数据成员queried_object:IPdemNode*查询得到的实体对象。queried_text:SAFEARRAY(BSTR)查询得到的文本。3.方法无3.5.5IPdemQueryResultItem1.描述查询结果项类,COM对象类.2.数据成员property_name:BSTR属性名。property_index:short属性索引。sort_flag:排序标志.ascend_falg:升序标志3.方法无3.5.6IPdemQueryResultIterator1、描述枚举器类,COM接口类,用于枚举查询结果集合中的结果项。2、数据成员无3、方法reset():HRESULT重置枚举器,将枚举器放到查询结果集合的首位置。输入参数:无输出参数:无返回值:返回S_OK;异常:无how_many(_num:int*):HRESULT计算查询结果项的总数目。输入参数:无输出参数:_num:int*结果项总数返回值:返回S_OK;异常:无next_one(_resul
/
本文档为【CAXA图文档二次开发手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索