对于你这种情况,使用CQ Api的querydef对象结合workspace对象可以轻松搞定。
我没有仔细去看,不过看了一下CQ的API,实现起来问题应该不大,下面是我摘选自CQ API的一段代码,希望能给你有所帮助^_^
复制内容到剪贴板
代码:
use CQPerlExt;
my $CQSession = CQSession::Build();
my $RootFolder = "Public Queries";
$CQSession->UserLogon($ologon, $opw, $odb, "");
$workspace = $CQSession->GetWorkSpace();
$QueryDef = $CQSession->BuildQuery("Defect");
@owner = ("jswift");
@state = ("Closed");
@dbfields = ("ID","State","Headline");
foreach $field (@dbfields) {
$QueryDef->BuildField($field);
}
$FilterNode1 = $QueryDef->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND);
$FilterNode1->BuildFilter("Owner", $CQPerlExt::CQ_COMP_OP_EQ, \@owner);
$FilterNode1->BuildFilter(’State’, $CQPerlExt::CQ_COMP_OP_NOT_IN, \@state);
$ResultSet = $CQSession->BuildResultSet($QueryDef);
$ResultSet->Execute();
$workspace->SaveQueryDef("delete me", $RootFolder, $QueryDef, 1);
print "’$RootFolder/delete me’ copied\n";
CQSession::Unbuild($CQSession);