birt hyperlink

场景:Birt创建hyperLink出错误org.eclipse.birt.report.model.api.Expression cannot be cast

Birt创建hyperLink出异常org.eclipse.birt.report.model.api.Expression cannot be cast to
java.lang.ClassCastException: org.eclipse.birt.report.model.api.Expression cannot be cast to java.lang.String
at org.eclipse.birt.report.model.util.BoundColumnsMgr.dealAction(BoundColumnsMgr.java:604)
at org.eclipse.birt.report.model.util.BoundColumnsMgr.dealLabel(BoundColumnsMgr.java:568)
at org.eclipse.birt.report.model.writer.BoundColumnsWriterMgr.dealLabel(BoundColumnsWriterMgr.java:479)
at org.eclipse.birt.report.model.util.BoundColumnsMgr.dealNonDataContainerReportItem(BoundColumnsMgr.java:165)
at org.eclipse.birt.report.model.util.BoundColumnsMgr.dealTable(BoundColumnsMgr.java:460)
at org.eclipse.birt.report.model.writer.BoundColumnsWriterMgr.dealTable(BoundColumnsWriterMgr.java:535)
at org.eclipse.birt.report.model.writer.ModuleWriter.visitTable(ModuleWriter.java:2084)
at org.eclipse.birt.report.model.elements.TableItem.apply(TableItem.java:91)
at org.eclipse.birt.report.model.writer.ModuleWriter.writeChildren(ModuleWriter.java:2869)
at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2854)
at org.eclipse.birt.report.model.writer.ModuleWriter.writeContents(ModuleWriter.java:2888)
at org.eclipse.birt.report.model.writer.DesignWriterImpl.writeSlot(DesignWriterImpl.java:170)
at org.eclipse.birt.report.model.writer.DesignWriterImpl.visitReportDesign(DesignWriterImpl.java:78)
at org.eclipse.birt.report.model.elements.ReportDesign.apply(ReportDesign.java:65)
at org.eclipse.birt.report.model.writer.ModuleWriter.writeFile(ModuleWriter.java:315)
at org.eclipse.birt.report.model.writer.ModuleWriter.write(ModuleWriter.java:281)
at org.eclipse.birt.report.model.api.ModuleHandle.save(ModuleHandle.java:1423)
at org.eclipse.birt.report.model.api.ModuleHandle.saveAs(ModuleHandle.java:1443)
at com.huawei.nte.report.view.TestAAAReport.buildReport(TestAAAReport.java:379)
at com.huawei.nte.report.view.TestAAAReport.main(TestAAAReport.java:53)

解决方案:

void addHyperLink(LabelHandle labelHandle)
	{
		try {
			Action action = StructureFactory.createAction();
			ActionHandle actionHandle = labelHandle.setAction(action);
//			actionHandle.setURI("'http://www.iteye.com'");
//			actionHandle.setLinkType(DesignChoiceConstants.ACTION_LINK_TYPE_HYPERLINK);
			 actionHandle.setDrillThroughReportName("E:\\birt_space\\OrdersAfter\\OrdersAfter.rptdesign");
		     actionHandle.setLinkType(DesignChoiceConstants.ACTION_LINK_TYPE_DRILL_THROUGH);
		} catch (Exception e) {
			// TODO: handle exception
		}
	}