Crystal Reports - НАЗВАНИЕ РАЗДЕЛА - Есть ли способ условно проверить или сохранить НАЗВАНИЕ РАЗДЕЛА в поле формулы - PullRequest
0 голосов
/ 18 июня 2020

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

Я попытался настроить счетчик al oop, но счетчик l oop никогда не меняется для тех же разделов (подробности a, b, c , d, et c) только при изменении номера записи. Я безуспешно настраиваю формулу при печати (Init & Cal c)

  • Раздел заголовка - Global Numbervar N: = 0;
  • Подробный раздел - WhilePrintingRecords; Numbervar N; Global NumberVar N: = N + 1

Снова хотел бы настроить одну формулу, которая будет возвращать другое значение в зависимости от того, в каком разделе она находится.

Формула будет выглядеть примерно так ...

"имя раздела" = Подробности a, Подробности b, Подробности c или Заголовок страницы a, Заголовок страницы b и т.д. c

If "Section Name" = "Details a" then \\ Return Value 1 {NETSALES_TODAY} Else if "Section Name" = "Details b" then \\ Return Value 2 {NETSALES_MTD} Else if "Section Name" = "Details c" then \\ Return Value 3 {NETSALES_QTD} Else {NETSALES_YTD}

screenshot

1 Ответ

0 голосов
/ 18 июня 2020

РЕДАКТИРОВАТЬ: КАЖЕТСЯ, ЭТО НЕ РАБОТАЕТ - Он хранится здесь по историческим причинам (и потому, что знание того, что он не работает, по-прежнему ценно).

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

  1. Создайте формулу, как вы. Назовем его {@Declaration}.
global numbervar N := 0;
Создайте другую формулу, как вы. Назовем его {@Increment}.
global numbervar N;
N := N + 1;
Поместите {@Declaration} в заголовок отчета. Поместите {@Increment} в три подробных раздела . Измените формулу, чтобы проверить значение of N mod 4 должно быть 0, 1, 2 или 3. Возможно, вам не нужен мод (только в случае большого количества строк деталей).
  global numbervar N;
  if N mod 3 = 0 then {NETSALES_TODAY}
  else if N mod 3 = 1 then {NETSALES_MTD}
  else if N mod 3 = 2 then {NETSALES_QTD}
  else {NETSALES_YTD}

Предполагаемые различия: (1 ) введите формулу 3 раза и (2) сделайте небольшую поправку в самой формуле.

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