Как получить пользовательские отчеты BIRT в SilkCentral Test Manager, чтобы получить выбранный в данный момент проект? - PullRequest
1 голос
/ 11 октября 2011

Мы используем Eclipse (Galileo) для создания некоторых пользовательских отчетов BIRT (версия 2.5) для SilkCentral Test Manager (версия 11).При создании отчета в SCTM мы должны указать SQL-запрос, который будет использоваться для отчета.Мы также должны указать запрос SQL при разработке отчета BIRT в Eclipse.

Я знаю, что в операторе SQL SCTM мы могли бы указать параметры, которые должны быть извлечены на основе текущих параметров, таких как текущий выбранный проект:

WHERE TPN.PROJECTID_FK = ${$PROJECTID}

Я думал, что это перенесется в отчет BIRT, связанный с отчетом SCTM, но это не так.Я создал новый отчет в SCTM и указал следующий запрос (который не содержит информации, которая будет отображаться в отчете BIRT):

SELECT      proj."ProjectName", proj."ProjectID_pk"
FROM        "Silk"."SCC_Projects" AS proj

Затем я перешел на вкладку отчета и связал пользовательский отчет иотчет отображается правильно, подтверждая, что он использует источник данных / наборы данных из BIRT, а не SQL, предоставленный в SCTM.

Проблема, с которой я сталкиваюсь, заключается в том, что я хочу, чтобы в пользовательском отчете отображался текущий выбранный проект., но я не могу указать это правильно в Eclipse.Мне это нужно, потому что я хочу иметь только один шаблон отчета, который будет использоваться для нескольких проектов, вместо того, чтобы загружать пользовательский отчет для каждого отдельного проекта.

  • Жестко закодированное значение для проекта определенно не работает:

    , ГДЕ TPN.PROJECTID_FK = 34

  • Я попытался установить его в качестве параметра (Имя= projectID, DataType = Integer, DisplayType = текстовое поле, DefaultValue = 34).

    WHERE TPN.PROJECTID_FK =?

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

  • Я пытался установить его в качестве динамического параметра (имя = projectID, DataType = Integer, DisplayType = ListBox, DataSet = ProjectID, SelectValueColumn = ProjectID_pk, SelectDisplayText = ProjectName, ProjectValue =36)

    Это также извлекает значение по умолчанию при запуске отчета.

Значение по умолчанию является обязательным полем, поэтому я не знаю, что делать, чтобы получить этоработать правильно.

Есть предложения / решения?

1 Ответ

1 голос
/ 27 октября 2011

Вот решение, которое я придумал, и пример из BirtReports.doc с сайта Borland:

В SCTM я отредактировал SQL-запрос из

WHERE TPN.PROJECTID_FK = ${$PROJECTID}

до

WHERE TPN.PROJECTID_FK = ${currentProject|34|ProjectId}

При этом создается параметр с именем currentProject , который передает значение 34 в отчет BIRT под именем параметра rp_currentProject .

Затем я отредактировал параметр projectID отчета BIRT, чтобы он имел следующие значения: Name = rp_currentProject , DataType = Integer, DisplayType = TextBox, DefaultValue = Empty / Null .

В DataSet для отчета я редактировал?параметр должен быть: Name = param_1, DataType = Integer, Direction = Input, DefaultValue = GreyedOut / Disabled, LinkedToReportParameter = rp_currentProject .

Итак, я загружаю один и тот же шаблон отчета в несколько проектовпод вкладкой Отчет> Параметры в SCTM я изменяю значение параметра currentProject на правильный идентификатор проекта.Этот идентификатор передается в отчет и отображается правильная информация.

Кстати, я также пробовал этот формат, но у меня возникали конфликтующие ошибки типа:

WHERE TPN.PROJECTID_FK = ${currentProject|${$PROJECTID}|ProjectId}

Я также пытался использовать DECLARE /Установите в SQL, чтобы установить переданное значение переменной, но я получил сообщение о том, что оператор SQL недопустим, поскольку он больше не доступен только для чтения.

Надеюсь, это поможет всем, у кого возникла такая же проблема!

...