Как получить поле, которое существует только в одном подотчете Crystal, для отображения в других подотчетах - PullRequest
0 голосов
/ 07 апреля 2020

Я беру отчет, созданный кем-то другим, который состоит из основного отчета и 7 вложенных отчетов. В одном из вложенных отчетов есть поле для чисел c (OTHER_TIME_INT), которое мне нужно получить во всех вложенных отчетах. Моя проблема в том, что опция существует только в этом подотчете, и я не могу понять, откуда берется поле.

Как мне получить это поле из одного подотчета ко всем подотчетам, если его нет в моем основном отчете?

Также - отчет заполняется командой, созданной в SSMS. OTHER_TIME_INT определяется как целое число в исходном запросе sql.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Важное предупреждение: для отображения значения общей переменной из подотчета формула в основном отчете должна находиться в разделе под разделом подотчета ...

0 голосов
/ 07 апреля 2020

Данные, найденные в подотчетах, выходят за пределы области действия после их распечатки. Чтобы обойти это, вам нужно будет использовать глобальную переменную. Вот основные c шаги по созданию глобальной переменной.

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

Shared NumVar otherTime;
otherTime := {OTHER_TIME_INT}

Первая строка инициализирует переменную с именем otherTime с типом данных NumVar, а вторая строка присваивает ей значение из поля. в подотчете. Ключевое слово Shared указывает область действия переменной. В Crystal Reports есть 3 различных области действия переменных: локальная, глобальная и общая. Локальные переменные можно использовать только в той формуле, в которой они созданы, глобальные переменные можно использовать только в рамках основного документа отчета (без подотчетов), а общие переменные можно использовать в основном отчете и во всех его подотчетах.

Поместите поле формулы GetVariable в подотчет, где отображается поле {OTHER_TIME_INT}, затем отредактируйте свойства формата поля формулы GetVariable, чтобы оно подавлялось и не отображалось в подотчете.

В любом месте, где вы хотите получить эту переменную, теперь также потребуется новое поле формулы. Например, если у вас есть второй подотчет, где вам нужно значение этой переменной, вы захотите создать новое поле формулы в этом подотчете. Опять же, имя поля может быть любым, каким вы хотите, но для этого примера я назову его GetValue. Формула для этого поля будет иметь вид:

Shared NumVar otherTime;
otherTime;

Опять же, первая строка создает переменную с именем otherTime. Он уже имеет значение ранее, поэтому нет необходимости назначать его. Во второй строке выводится значение переменной otherTime.

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

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