Предыдущий разделСледующий раздел


Учебник 5: Создание обработчика событий на JavaScript

В данном учебнике приведены инструкции по созданию набора обработчиков событий. Предполагается, что уже существует базовый проект отчета на основе примера базы данных Classic Models, Inc. Единственное требование к проекту отчета заключается в том, чтобы в нем была таблица клиентов со столбцом имени клиента. Упражнение данного учебника заключается в подсчете количества клиентов, в именах которых есть строка "Mini", и выдаче результата во всплывающем окне.

Данное упражнение сводится к выполнению последовательности задач:

Задача 1: Откройте проект отчета

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

  1. При необходимости откройте страницу Навигатора, выбрав опции Окно->Показать представление->Навигатор.
  2. Дважды щелкните на нужном отчете. Файл будет открыт в редакторе макета, как показано на рис. 22-4.

Задача 2: Создайте и инициализируйте счетчик в методе Table.onCreate( )

Для подсчета количества клиентов, в именах которых есть строка Mini, нужно сначала объявить глобальную переменную и присвоить ей значение 0. Наиболее рационально выполнить эти задачи в методе Table.onCreate( ), поскольку метод Table.onCreate( ) выполняется до извлечения строк данных. Код для увеличения значения этого счетчика при выполнении нужного условия будет вставлен в метод Row.onCreate( ).

  1. В окне Макет выберите таблицу, наведя курсор на ее нижний левый угол. Появится значок таблицы, показанный на рис. 22-5.
  2. Откройте вкладку Сценарий. Появится вкладка Сценарий, показанная на рис. 22-6.
  3. Введите следующий код в окне сценария для метода onCreate( ):
  4. countOfMinis = 0; 
    
  5. Для выполнения отчета и проверки правильности кода нажмите кнопку Просмотр.
  6. Пролистайте отчет до конца, поскольку сообщения об ошибках JavaScript выдаются в конце отчета. Если ошибок нет, отчет должен выглядеть так, как показано на рис. 22-7.
  7. Если будет выдано сообщение об ошибке, скорее всего, неправильно введен оператор. В этом случае вернитесь в окно сценария, исправьте ошибку в только что измененном методе и еще раз нажмите кнопку Просмотр.

Задача 3: Добавьте код условного увеличения значения счетчика в методе Row.onCreate( )

Для подсчета количества клиентов, в именах которых есть строка Mini, нужно организовать проверку имен клиентов и увеличивать значение счетчика при обнаружении совпадения. Рациональнее всего вставить этот код в метод Row.onCreate( ), поскольку он выполняется после извлечения каждой строки из источника данных.

  1. В окне Макет выберите опцию Строка, а затем Сценарий.
  2. Разверните список методов в верхней части окна Сценарий и выберите метод onCreate, как показано на рис. 22-8.
  3. Введите следующий код JavaScript в окне Сценарий:
  4. row=this.getRowData( ); 
    
    Обратите внимание, что после ввода точки появляется всплывающее окно с полным списком методов и свойств, включая getRowData. Данная строка получает экземпляр элемента IRowData, в котором предусмотрен метод getExpressionValue( ), для извлечения значения столбца в строке.
  5. Введите следующий код JavaScript под только что введенным кодом:
  6. CustName=row.getExpressionValue( "row[CUSTOMERNAME]" ); 
    
    Эта строка кода определяет значение столбца CUSTOMERNAME в текущей строке набора данных.
  7. Введите следующую строку кода для увеличения значения счетчика, созданного на шаге Создайте и инициализируйте счетчик в методе Table.onCreate( ), при выполнении нужного условия.
  8. if( CustName.indexOf( "Mini" ) != -1 ) countOfMinis += 1; 
    
    Для вставки следующих элементов в предыдущую строку нужно воспользоваться палитрой JavaScript:
    • indexOf( )
    • Выберите Собственные объекты ( JavaScript )->Строковые функции->indexOf( )
    • !=
    • Выберите Операторы->Сравнение->!=
    • +=
    • Выберите Операторы->Присвоение->+=
  9. Нажмите кнопку Просмотр для выполнения отчета и проверки правильности введенного кода.

Задача 4: Просмотр результатов с помощью метода
ReportDesign.afterFactory( )

Для вывода списка клиентов, в именах которых есть строка Mini, нужно вставить соответствующий код в метод, выполняемый после обработки всех строк таблицы. Лучше всего для этого подходит метод ReportDesign.afterFactory( ).

  1. В окне Структура выберите макет отчета, как показано на рис. 22-9.
  2. Выберите метод afterFactory( ) в списке методов окна Сценарий.
  3. Введите следующий код для метода afterFactory( ):
  4. importPackage( Packages.javax.swing ); 
    frame = new JFrame( "Count of Minis = " + countOfMinis ); 
    frame.setBounds( 310, 220, 300, 20 ); 
    frame.show( ); 
    
  5. Нажмите кнопку Просмотр для просмотра результатов. Если в коде нет ошибок, будет показан отчет, схожий с отчетом на рис. 22-10.

Если окно Count of Minis не появилось, посмотрите, нет ли его за окном Eclipse. Если окна Count of Minis действительно нет, скорее всего, это вызвано ошибкой при вводе кода JavaScript.

Если вы предполагаете, что могли ввести код с ошибкой, пролистайте отчет до конца и проверьте, есть ли там сообщения об ошибках. В большинстве случаев указываются краткие сведения об ошибке и знак ( + ). Знак плюса говорит о том, что развернув краткое сообщение, можно увидеть дополнительные сведения об ошибке. Для того чтобы развернуть краткое сообщение об ошибке, щелкните на знаке плюса. После этого пролистайте отчет до конца и просмотрите подробное сообщение об ошибке.


(c) Copyright Actuate Corporation 2006

Предыдущий разделСледующий раздел