2016-08-04 6 views
0

Мне нужно напечатать некоторые графики, используя jFreeChar в Genexus. Я уже добился печати графов, когда переменная, где я получаю данные, является векторным типом, выбирая в свойствах размерность = Вектор и строку = (количество элементов). В этом случае я могу получить элемент с помощью:Доступ к коллекции Genexus Item с использованием JAVA

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-коду, а не наоборот. Если вы сообщите нам структуру SDT и какое значение вам нужно извлечь, это может быть проще, чтобы помочь вам. –

ответ

0

Я не совсем понимаю, чего вы пытаетесь достичь, но, может быть, этот намек может вам помочь: вообще говоря, когда вы пытаетесь использовать данные SDT в JAVA-типах, предпочтительнее использовать «простую» промежуточную переменные. Следуйте вашему примеру:

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

Только мои 2cents.