Вот решение, которое я придумал, и пример из 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 недопустим, поскольку он больше не доступен только для чтения.
Надеюсь, это поможет всем, у кого возникла такая же проблема!