2016-08-04 46 views
0

我必须在Genexus中使用jFreeChar打印一些图。 当我获取数据的变量是矢量类型时,我已经实现了打印图形,在属性中选择dimension = Vector和Row =(项目数)。在这种情况下,我可以使用得到一个元件:访问收集使用JAVA的Genexus项目

JAVA   categoriaBar = [!&categorias!][iBar]; 

为& categorias向量类型的变量和的iBar之前声明一个java属性。

这可行,但在实际情况下,信息由SDT给出,并且此代码不起作用。

我怎样才能使用Java集合的一个项目,我已经尝试下面的语句和所有返回一个Java错误:“表达的非法启动”

JAVA   categoryLine = [!&jFreeChar1.Categories.Item(1)!]; 
JAVA   categoryLine = [!&jFreeChar1.Categories.Item!][1]; 
JAVA   categoryLine = [!&jFreeChar1.Categories!].get(1); 
JAVA   categoryLine = [!&jFreeChar1.Categories.Item([!1!])!]; 

是& jFreeChar1.Categories的集合。

+0

我不太明白你想做什么。 'categoryLine'是什么类型?在第一个例子中,你会得到一个单独的值(例如int);但在第二个你得到一个SDT。我会尝试在GeneXus中编写你想要的表达式,获取单独的值,并将它传递给Java代码,而不是其他方式......如果你告诉我们SDTs结构和你需要提取什么值,它可能会更容易帮助你。 –

回答

0

我不完全理解你想达到什么,但也许这个提示可以帮助你:一般来说,当你试图在JAVA中使用SDT数据类型的语句优于使用“简单”中间语句变量。以你为例:

&myTempVar = &jFreeChar1.Categories.Item(1) 
java categoryLine = [!&myTempVar!]; 

只是我的2cents。