Создать поле формулы, в котором перечислены все таблицы в отчете Crystal - PullRequest
2 голосов
/ 09 декабря 2011

Я ищу способ создания поля формулы, в котором будут перечислены имена таблиц всех таблиц, которые используются в качестве источников данных в Crystal Report.

Я не нашел ни одной функции, которая бы обеспечивала такую ​​возможность в приложении.

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

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

Спасибо.

1 Ответ

2 голосов
/ 10 декабря 2011

К сожалению, этот тип функций отсутствует в Crystal Reports.

Возможно, вы сможете использовать UFL для решения проблемы.Общая идея:

  • передать путь текущего отчета в UFL (функция Filename даст вам это)
  • открыть ссылочный отчет с помощью Crystal Reports SDK и изучить таблицы в классе DataDefintion;DatabaseFieldDefinition.UseCount поможет определить, есть ли ссылка на поле (и, следовательно, на таблицу) в отчете
  • вернуть имена таблиц в виде строкового массива (примечание: CR поддерживает только одномерные массивы с максимум 1000elements)
  • создать поле формулы для вызова функции UFL;Join () строковый массив (поля формулы не могут возвращать массив):

    Join (GetRptTables (Filename), ",")

  • распределить UFL с.RPT

Другой вариант, если у вас есть BusinessObjects Enterprise и лишние 40 тыс. долларов, - это менеджер метаданных;это даст вам целостное представление о развертывании отчетности в вашей организации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...