2014-01-30 2 views
0

enter image description hereJasper Report с картой мира и кругами разного цвета, как наложение поверх разных стран

Я создал отчет яшмы с изображением и набором малого эллипса/окружности в верхней части этого изображения , Цвет небольших цирков должен измениться на основе данных, которые используются для генерации отчета. Поэтому я создал стиль и применил этот стиль к элементу эллипса. Вот мой стиль:

<style name="ZFieldStyle"> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{value} < 2L]]></conditionExpression> 
     <style backcolor="#00ff00"/> 
    </conditionalStyle> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{value} > 2L]]></conditionExpression> 
     <style backcolor="#FF0000"/> 
    </conditionalStyle> 
</style> 

И вот как я применяю его к эллипсу:

  <ellipse> 
       <reportElement style="ZFieldStyle" mode="Opaque" x="285" y="47" width="17" height="17" forecolor="#FF00FF" > 

       </reportElement> 
      </ellipse> 

, но я хочу, чтобы связать круги к различным элементам данных, так что путь, когда условный стиль применяется значение, которое считается значением, которое относится к этой стране.

Для справки переданные данные представляют собой источник JRDataSource, который обертывает список экземпляров Country.

Экземпляры 1. name = "Canada"; значение = 0;

Экземпляр 2. name = "US" value = 3;

..etc. И поле определяет, какой цвет должен отображаться на круге поверх изображения.

Как я могу сделать это в Джаспере?

NB. Все круги будут показаны в отчете. (ничего не скрыто). Вопрос о привязке i-го круга, который находится в позиции (x = 34, y = 90) к определенному элементу данных, и окрасить его как c, j-й круг, который находится в положении (x = 8, y = 12) к определенному элементу данных и покрасить его d ... и т. Д. Где c, d - цвета.

У меня есть проект mvn + java + jasper, который я тестирую здесь: у него есть 3 элемента данных и 3 круга, уже помещенные в заголовок раздела поверх изображения.

https://drive.google.com/file/d/0B5GhWVO8BNlcVlNaRHpodm1Hd0k/edit?usp=sharing

+1

Как я понимаю, вы хотите отображать разные цвета 2 в разных странах. Это правильно? – user1791574

+0

@ user1791574 Да. На основе данных, отправленных с сервера. Я знаю положения эллипсов. У меня есть условный стиль, который сообщает, какой цвет применять на основе какого значения. Как связать входящие значения с кругами? – Rose

ответ

1

Установить все эллипс на своем месте в начальный момент времени. И для каждого набора эллипсов «print when expression» основывается на вашей ценности. например:

<ellipse> 
    <reportElement uuid="7c0a9248-b2a1-43ea-b329-ff2212845b4b" x="323" y="0" width="109" height="45" backcolor="#EF4141"> 
       <printWhenExpression><![CDATA[$F{value} == 3]]></printWhenExpression> 
    </reportElement> 
     </ellipse> 

Надеюсь, это поможет вам.

+0

- привет спасибо за попытку. PrintWhenExpression печатает, когда определенная ситуация верна. Вопрос заключается не в том, чтобы печатать эллипсы во время этого события, а не во время этого другого события. Вопрос в том, как узнать, какой цвет для эллипса? и какой эллипс связан с элементом данных в списке/строке? Но в любом случае я помещаю ваш код в грязные руки. Ни один из эллипсов не появился. Я нахожу, что в «printWhenExpression» рассматривается только первый элемент. Я поделюсь своим проектом с помощью Google Drive - просто игрушечного приложения, которое используется для тестирования. – Rose

+1

Спасибо за ваш ответ. Можете ли вы предоставить информацию, используемую в этом проекте, или просто предоставить зависимость от maven. Какую версию отчета о яшме вы используете? – user1791574

+0

\t net.sf.jasperreports \t JasperReports \t 3.7.6 \t баночка \t компилировать \t \t \t ... \t Rose