powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal Reports, содержание
6 сообщений из 6, страница 1 из 1
Crystal Reports, содержание
    #34184436
hdp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hdp
Гость
Приветствую
Возник вопрос: как сформировать содержание - т.е. список заголовков групп и номеров страниц - в отчете, созданном в Crystal Reports.
Вроде бы, задача не такая уж редкая, но почему-то не нашел такой функции в CR (CR в VS .NET 2003).
В сети нашлось 2 таких решения:
1) http://support.businessobjects.com/library/kbase/articles/c2011950.asp Недостаток - нужно записывать некоторую информацию в базу, что неприемлемо
2) http://www.ml-crystal.com/articles/toc.htm Здесь формируется 2 строковых переменных - список заголовков и список страниц. Недостаток - максимальная длина строковой переменной слишком мала
...
Рейтинг: 0 / 0
Crystal Reports, содержание
    #34206621
hdp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hdp
Гость
up
в исх.сообщении забыл знак вопроса поставить :)

Как добавить к отчету на CR содержание?
...
Рейтинг: 0 / 0
Crystal Reports, содержание
    #34206703
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все тоже, что описано в статье под 2-м пунктом, только вместо строковой переменной использовать динамический массив...
а можно и два массива (для заголовка и для страницы)
...
Рейтинг: 0 / 0
Crystal Reports, содержание
    #34228389
hdp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hdp
Гость
Спасибо, сделал через массив. Однако вопрос: как вывести массив?

1. Пробовал вывести его в цикле (т.е. вот формула, которая выводит массив):
Код: plaintext
1.
2.
3.
4.
5.
global stringvar array TocNames; // названия
global numbervar TocCount;  // кол-во элементов в массиве
local numbervar i;
for i :=  1  to TocCount do
   TocNames[i] + chr( 10 )
- результат получается типа boolean (т.е., как я понимаю, тело цикла - просто исполняемый код, а не то, что должно выводиться. А как задать, что это надо выводить?)

2. Если вместо цикла написать просто
Код: plaintext
TocNames
- говорит, что "The result of a formula cannot be an array" ("Результат формулы не может быть массивом")

3. Еще можно вместо цикла из кода в 1. написать такое:
Код: plaintext
1.
2.
3.
4.
local stringvar strTemp;
for i :=  1  to TocCount do
   strTemp := strTemp + TocNames[i] + chr( 10 );
strTemp
Но ведь это, насколько я понимаю, полностью аналогично статье (2) ? Т.е. со всеми ограничениями на макс.длину строки strTemp ?
...
Рейтинг: 0 / 0
Crystal Reports, содержание
    #34228684
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне кажется, что через функию join проще будет :)
например :

инициализация переменных
1. _initialize
WhilePrintingRecords;
NumberVar toc_bound;
StringVar array toc_content;
StringVar array toc_content_pages;
toc_bound := 0;
""

расчет в процессе (обычно в заголовке группы)
2. _calculate
WhilePrintingRecords;
NumberVar toc_bound;
StringVar array toc_content;
StringVar array toc_content_pages;
toc_bound := toc_bound + 1;
Redim Preserve toc_content[toc_bound];
Redim Preserve toc_content_pages[toc_bound];
toc_content[toc_bound] := {<your_content>};
toc_content_pages[toc_bound] := ToText(PageNumber,"#");
""

и выводим TOC (эти формулы переносим на репорт и наслаждаемся эффектом)

3. _toc_print_content
WhilePrintingRecords;
StringVar array toc_content;
Join(toc_content,Chr(13))

4. _toc_print_pages
WhilePrintingRecords;
StringVar array toc_content_pages;
Join(toc_content_pages,Chr(13))
...
Рейтинг: 0 / 0
Crystal Reports, содержание
    #34231232
hdp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hdp
Гость
Peter Kirillowмне кажется, что через функию join проще будет :)
точно, я чего-то не нашел ее в прошлый раз :)
благодарю, теперь вроде все работает :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal Reports, содержание
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]