JasperReports и пользовательские источники данных

Необходимо переопределить onSaveInstanceState(Bundle savedInstanceState) и записать значения состояния приложения, которые Вы хотите изменить на Bundle параметр как это:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  // Save UI state changes to the savedInstanceState.
  // This bundle will be passed to onCreate if the process is
  // killed and restarted.
  savedInstanceState.putBoolean("MyBoolean", true);
  savedInstanceState.putDouble("myDouble", 1.9);
  savedInstanceState.putInt("MyInt", 1);
  savedInstanceState.putString("MyString", "Welcome back to Android");
  // etc.
}

Пакет является по существу способом сохранить NVP ("Пара"имя-значение"") карта, и это будет передано в onCreate() и также onRestoreInstanceState(), где Вы тогда извлекли бы значения как это:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // Restore UI state from the savedInstanceState.
  // This bundle has also been passed to onCreate.
  boolean myBoolean = savedInstanceState.getBoolean("MyBoolean");
  double myDouble = savedInstanceState.getDouble("myDouble");
  int myInt = savedInstanceState.getInt("MyInt");
  String myString = savedInstanceState.getString("MyString");
}

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

5
задан John Woo 17 March 2012 в 02:37
поделиться

2 ответа

Каждый шаблон JasperReports может иметь два разных источника данных. Один из них - это подключение непосредственно к базе данных с использованием какого-либо драйвера jdbc или, в вашем случае, предоставление коллекции Java beans (POJO), обычно list.

Шаблон JasperReports похож на определение метода. У него есть имя, то есть скомпилированный объект JR и параметры (источник данных и список входных параметров некоторых из самых популярных типов Java).

Я предлагаю использовать инструмент iReport. Откройте пример, который поставляется с пакетом JasperReports, проанализируйте его и настройте. Это не так сложно.

ОБНОВЛЕНИЕ

Разрешение клиентам создавать шаблоны JasperReports, компилировать и добавлять в путь к классам означает, что вам придется слишком часто открывать вашу систему. Обычно клиенты предоставляют описание желаемого отчета, а разработчик (и) создают источник данных и разрабатывают шаблон. JasperReports может иметь параметры. Если эти параметры представлены через пользовательский интерфейс, пользователи могут изменить поведение отчетов во время выполнения.

Если вам действительно нужно обеспечить большую гибкость, используйте API, предоставляемый JasperReports, для создания шаблонов. Я мог бы представить себе несколько простых DLS для опытных пользователей, которые могут общаться с вашей системой, создавая оперативные отчеты.

3
ответ дан 14 December 2019 в 08:56
поделиться

Отчеты Jasper позволяют использовать источник данных "JavaBean". Вы можете загружать свои данные в любую структуру Java Bean и строить отчеты на их основе. Работает хорошо.

См. Раздел «Пользовательский источник данных» здесь .

4
ответ дан 14 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: