2009-06-05 1 views
5

У меня есть формула @InitVars в заголовке страницы, который включает в себя следующие и подобные строки:сообщает Кристл, суб-отчетов, и общие переменные

shared numbervar runWaste:=0; 

В Подробности у, у меня есть суб-отчет, который имеет формулу @SetRunWaste:

shared numbervar runWaste; 
if (OnFirstRecord) then 
(
if not(isnull({x.x-or})) and 
not(isnull({x.y-override})) and {x.y-override} = true then 
runWaste:={x.x-or} 
    else 
runWaste:= {x.x} 
); 
runWaste 

Я могу видеть вывод этой формулы в подотчет является 18,00.

Однако и в другом подотчет, в подробностях аз, и в основном докладе в детали ш (как тест), у меня есть следующая формула @test:

shared numbervar runWaste; 
runWaste; 

В обоих местах, он показывает как 0.00.

Почему он показывает 0 не 18?

Я использую Crystal Reports версии 11.0.0.895.

ответ

9

Проблема в том, что @InitVars находится в заголовке страницы, а не в заголовке отчета. Он переустанавливает переменную на 0 в верхней части каждой страницы.

Перемещение @InitVars в заголовок отчета исправлено так, чтобы в подзадаче в диалоговом окне Details az появилось правильное число.

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

1

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

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

+0

Хм, добавив, что запись на печать в @test заставила ее работать в нижнем колонтитуле страницы, но она по-прежнему неверна в деталях w. Это также неверно на более поздних страницах ... – LeBleu

+0

И вы уверены, что он нигде не перезагружается ни где-либо в основном отчете, ни в одном из подписок? – Adrien

0

Из статьи Adding Sub reports ,Find Sub Total and Grand Total(To main Report):

Crystal Reports является разведка бизнес-приложений используется для проектирования и создания отчетов из широкого спектра источников данных . Sub Отчеты представляют собой дочерние отчеты основного отчета , которые могут быть включены в основной отчет . Sub-отчеты очень полезны для составления отчетов .

Добавление Sub отчетов найти вспомогательный общий и итог каждого суб отчета в основного доклад

Основного отчет

Sub Report 1

Sub Итого: сумма (LabTotal)

Подраздел 2

Под. Итого: сумма (Общая Товарная позиция)

Гранд Всего

отчеты Sub очень полезная опция в отчете кристалла. Предположим, что мы хотим найти

Добавление Кристал отчета

  1. Добавить item-> Crystal Report
  2. Если мы хотим создать Crystal Report наш собственный формат выбрать «Как Blank отчет» из кристаллов отчета галерея
  3. Щелкните правой кнопкой мыши на «База данных полей» в полях базы данных и выберите таблицы из базы данных, то сделать ссылки (при необходимости)
  4. Щелкните правой кнопкой мыши из раздела «Подробности» и добавьте дополнительный отчет.
  5. Повторите те же самые вещи, которые мы сделали в главном отчете и перетащите необходимые поля детали подразделов отчета

Для Eg: Мы создаем отчет рабочей общий уровень рабочей силы может быть рассчитывается как

В формуле поле -name LabTotal

WhilePrintingRecords; Общий NumberVar LabTotal: = Сумма ({} PC_LABOUR_DETAILS.Total)

({PC_LABOUR_DETAILS) - таблица Общее --- Поле

и добавить сумму LabTotal в к общей области к югу

Если у нас есть еще один доклад к югу, чтобы добавить ионов на главную страницу, снова щелкните правой кнопкой мыши на «подробности раздел» и добавить новый раздел -> подробности (б) и повторите шаг 4 и 5 Здесь мы добавляем второй суб Отчет по материалу и промежуточный итог материалов может быть, как

Процент от

В формуле поле -name ItemTotal

WhilePrintingRecords; Общий номерVar Элемент товара: = Сумма {PC_MATERIAL_DETAILS.Всего})

({PC_MATERIAL_DETAILS) --table Всего - поле

и добавить сумму ItemTotal в к общей области к югу

Основной доклад

Чтобы найти итога обоих суб сообщает

В формуле поля имени-GrandTotal

WhilePrintingRecords; Shared NumberVar ItemTotal; Общий NumberVar LabTotal; NumberVar TotalAmount; TotalAmount: = ItemTotal + LabTotal; TotalAmount

+0

@kristina: Пожалуйста, не копируйте и не вставляете контент с других сайтов, не придавая должного оригинала оригиналу. Спасибо. –

Смежные вопросы