本次例子依然延续了前几次查询的模式,虽然该范例只是查询WTDocument,但是对于WTPart的查询也是适用了。
import com.ptc.core.meta.type.mgmt.server.impl.WTTypeDefinition;
import com.ptc.core.meta.type.mgmt.server.impl.WTTypeDefinitionMaster;
import wt.doc.WTDocument;
import wt.fc.ObjectVector;
import wt.fc.PersistenceHelper;
import wt.fc.QueryResult;
import wt.query.CompositeWhereExpression;
import wt.query.ConstantExpression;
import wt.query.LogicalOperator;
import wt.query.QuerySpec;
import wt.query.SearchCondition;
import wt.query.TableColumn;
import wt.util.WTException;
import wt.vc.config.ConfigSpec;
import wt.vc.config.LatestConfigSpec;
public class Demo {
/**
* @param args
* @throws WTException
*/
public static void main(String[] args) throws WTException {
// TODO Auto-generated method stub
QueryResult qr = queryLatestIBADocument("wt.doc.WTDocument|cn.shangxuetang.TestPart");
while (qr.hasMoreElements()) {
WTDocument doc = (WTDocument) qr.nextElement();
System.out.println(doc.getName());
//获取该文档的版本信息
System.out.println(doc.getIterationDisplayIdentifier().toString());
}
}
/**
* 查询所有属于该软属性文档类型的最新文档
* @param documentType
* @return
* @throws WTException
*/
public static QueryResult queryLatestIBADocument(String documentType) throws WTException {
QuerySpec qs = new QuerySpec();
int a = qs.appendClassList(WTDocument.class, true);
int b = qs.appendClassList(WTTypeDefinition.class, false);
int c = qs.appendClassList(WTTypeDefinitionMaster.class, false);
qs.setAdvancedQueryEnabled(true);
String[] aliases = new String[4];
aliases[0] = qs.getFromClause().getAliasAt(a);
aliases[1] = qs.getFromClause().getAliasAt(b);
aliases[2] = qs.getFromClause().getAliasAt(c);
TableColumn tc1 = new TableColumn(aliases[0], "IDA2TYPEDEFINITIONREFERENCE");
TableColumn tc2 = new TableColumn(aliases[0], "LATESTITERATIONINFO");
TableColumn tc3 = new TableColumn(aliases[1], "IDA2A2");
TableColumn tc4 = new TableColumn(aliases[1], "IDA3MASTERREFERENCE");
TableColumn tc5 = new TableColumn(aliases[2], "IDA2A2");
TableColumn tc6 = new TableColumn(aliases[2], "INTHID");
CompositeWhereExpression andExpression = new CompositeWhereExpression(LogicalOperator.AND);
andExpression.append(new SearchCondition(tc1, "=", tc3));
andExpression.append(new SearchCondition(tc2, "=", new ConstantExpression("1")));
andExpression.append(new SearchCondition(tc4, "=", tc5));
andExpression.append(new SearchCondition(tc6, "=", new ConstantExpression(documentType)));
qs.appendWhere(andExpression, null);
QueryResult qr = PersistenceHelper.manager.find(qs);
//对于查寻到的集合进行处理以适应LatestConfigSpec
ObjectVector obj = new ObjectVector();
while (qr.hasMoreElements()) {
Object obj2[] = (Object[]) qr.nextElement();
obj.addElement(obj2[0]);
}
QueryResult qr2 = new QueryResult((wt.fc.ObjectVectorIfc) obj);
ConfigSpec cs = new LatestConfigSpec();
//用LatestConfigSpec过滤查询到的集合
return cs.process(qr2);
}
}
分享到:
相关推荐
Windchill 软属性相关数据库表整理 Windchill 软属性相关数据库表整理是 Windchill 系统中的一种重要概念,涉及到 Windchill 系统中的数据库表设计和实现。本文将对 Windchill 软属性相关数据库表进行整理和解释,...
导出命令需要在windchill shell中执行: windchill wt.load.LoadFromFile -d loadFiles/ext2/ExportType.xml -u wcadmin -p wcadmin
在Model类中添加注释,通常是为了描述每个属性或字段的作用、数据类型、取值范围以及与其他字段的关系等。这样做可以使代码更易读,减少理解和调试时的困扰。 "添加Model注释列"可能是指在生成的Model类中,为每个...
对于数据库操作,动软代码生成器支持多种数据库类型,如SQL Server 2000/2005、Oracle和OleDb,提供数据层生成的三种方式:基于SQL字符串、基于Parameter和基于存储过程。内置的数据库服务器管理功能类似于SQL ...
- imeOptions和imeActionId:这些属性用于设置与输入法相关的操作,如在软键盘上设置"完成"按钮。 2. EditText组件: EditText是基于TextView的文本输入控件,它允许用户输入文本,并且可以设置多种输入类型,如...
XPath允许我们定位XML文档中的节点,包括元素、属性、文本等。它使用路径表达式来选取节点,如“/root/element”选取根元素下的所有“element”元素。XPath还支持函数和运算符,可以进行复杂的查询和数据提取。 ...
- **按属性查询**:可根据文档的多种属性进行检索。 5. **原件查看与标注**: - **支持常见格式**:Office文档、CAD图纸、图像文件等。 - **非破坏性标注**:不影响原文档内容的完整性。 6. **版本控制**: - ...
这个中文API文档将详细解释每个类、方法和属性,帮助开发者快速定位和学习THREE.JS的特定功能。同时,文档中的注释使得对于非英语背景的开发者来说,理解THREE.JS更为方便。通过深入阅读和实践,开发者可以创建出...
1. **建表**:创建所需的数据库表,并定义各字段的数据类型、长度、是否为主键等属性。 2. **新增配置**:在系统中添加新的配置,将建好的表与流程关联起来。 3. **生成数据录入模板**:设计并生成数据录入界面,...
可根据选定的数据库和表(可多选),自动生成增、删、改、查等操作的存储过程脚本,和生成表的创建脚本及数据记录的SQL脚本,支持在当前生成和导出脚本文件功能。 自动生成数据库结构文档 可以根据选定的...
掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的...
国家标准软件开发文档模板是指导软件开发团队按照统一规范编写文档的重要工具,对于提高软件开发的质量、效率和可维护性具有显著作用。以下将详细介绍这些模板包含的主要内容和使用方法。 一、需求分析文档 需求...
例如,你可以使用BoxShape、SphereShape或MeshShape等不同类型的碰撞形状来创建各种复杂的物体。刚体可以通过调整其质量、惯性和转动惯量来影响其动态行为。同时,可以通过添加Force和Torque来施加外力,模拟风力或...
- 变更记录用于跟踪文档的修改历史,包括变更的时间、原因、类型和提出人,这在团队协作中非常重要,便于追溯和管理。 通过以上内容,我们可以了解到用友U8的UAP平台为开发者提供了一个强大的开发环境,能够有效地...
第三部分可能讲述了YTLWorld所使用的各种文档格式,比如项目文件、配置文件、数据交换文件等,这些文档在系统的操作和数据管理中扮演着关键角色。 第四部分介绍了YTLWorld的用户界面,这是用户与系统交互的主要途径...
**文件状态**:标明当前文档的状态(草稿、正式发布、正在修改),以便读者了解文档的最新进展。 **项目概述**:简要介绍项目的背景、目标和预期成果。 **业务流程角色**:定义了业务流程中涉及的不同角色及其职责...
### Box2D 2.3.1 文档关键知识点概览 #### 一、Box2D简介 **Box2D** 是一款专为游戏设计的2D刚体模拟库,它能够帮助程序员在游戏开发过程中实现更为真实物体运动效果及增强游戏世界的互动性。Box2D 是用可移植的 ...