软属性文档类型的最新文档

源:原创 作者:云淡天晴 时间:2008-12-19 

       本次例子依然延续了前几次查询的模式,虽然该范例只是查询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;

/**
 *
 * @author 云淡天晴.上雪堂
 * @version 1.0
 * @time 2008.12.19
 * 查询所有属于该软属性文档类型的最新文档
 */
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 9 .0 的例子,很多都是相通的。如何应用在你的需求之中,就需要体现你的智慧了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值