Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Суммировать текстовые поля (CR 2008) / 10 сообщений из 10, страница 1 из 1
05.08.2009, 11:45
    #36127224
paraped
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
Кристал 2008.
В деталях есть поле содержащее строку (string), нужно внизу отчета (например пэйдж футер или репорт футер) вывести сумму этих полей, то есть суммировать строки.
...
Рейтинг: 0 / 0
05.08.2009, 12:01
    #36127276
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
parapedКристал 2008.
В деталях есть поле содержащее строку (string), нужно внизу отчета (например пэйдж футер или репорт футер) вывести сумму этих полей, то есть суммировать строки.
Для строк отсутствует операция суммирования. Есть операция конкатенации. А так - решается через формулы. Первая формула инициализирует переменную, вторая на каждый Detail конкатенирует строки. Чтобы сохранить сортировку отчета, формула должна быть WhilePrintingRecords.
...
Рейтинг: 0 / 0
05.08.2009, 17:37
    #36128492
paraped
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
Я думал, что после того как формула выполнилась в деталях, в следующей записи перемая уже не будет существовать? или нада обявлять что типа global?

и получается что типа

if (FirstRecord) THEN
dim str as string
end if
тратата...?
...
Рейтинг: 0 / 0
05.08.2009, 18:31
    #36128645
ustass
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
Можно сделать проще:
-написать формулу конвертации в CR текстового поля в число и суммировать это поле
-реализовать конвертацию текста в число в SQL запросе и суммировать это поле.
А то что предложил предыдущий автор называется формулы времени исполнения(Evaluation Time) и они описаны в хэлпе.
...
Рейтинг: 0 / 0
06.08.2009, 07:04
    #36129004
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
parapedЯ думал, что после того как формула выполнилась в деталях, в следующей записи перемая уже не будет существовать? или нада обявлять что типа global?

Переменные могут быть LOCAL, GLOBAL и SHARED. Видимости, соответственно, - текущий модуль, текущий отчет, отчет и его подотчеты.
Если вы не указываете область видимости переменной, она GLOBAL по-умолчанию.

Далее. Для инициализации глобальных для отчета переменных, я обычно завожу отдельную формулу, которую помещаю в ReportHeader (или несколько). И далее в отчете у меня нет необходимости заморачиваться, инициализирована ли переменная или нет.

И все-таки, вы хотите конкатенировать строки, или у вас в данных типа строка лежат числа, которые вы хотите суммировать?
...
Рейтинг: 0 / 0
06.08.2009, 09:47
    #36129144
paraped
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
не то, не другое... я хочу суммировать строки.

string 1
string 2
string 3

= string1 string 2 string 3 (другими словами этот процесс называется конкатенация строк)
...
Рейтинг: 0 / 0
06.08.2009, 10:11
    #36129193
paraped
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
Kruchinin PahanparapedЯ думал, что после того как формула выполнилась в деталях, в следующей записи перемая уже не будет существовать? или нада обявлять что типа global?

Переменные могут быть LOCAL, GLOBAL и SHARED. Видимости, соответственно, - текущий модуль, текущий отчет, отчет и его подотчеты.
Если вы не указываете область видимости переменной, она GLOBAL по-умолчанию.

Далее. Для инициализации глобальных для отчета переменных, я обычно завожу отдельную формулу, которую помещаю в ReportHeader (или несколько). И далее в отчете у меня нет необходимости заморачиваться, инициализирована ли переменная или нет.

И все-таки, вы хотите конкатенировать строки, или у вас в данных типа строка лежат числа, которые вы хотите суммировать?

Сорри, не так понял, все правильно, я хочу конкатенировать строки...
...
Рейтинг: 0 / 0
06.08.2009, 10:21
    #36129221
paraped
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
Kruchinin Pahan,

Еще вопрос, как я понял WhilePrintingRecords нужно использовать в качестве условя для if?
И можно по подробнее, что за событие WPR и чем оно отличается от других в Evalution Time?
...
Рейтинг: 0 / 0
07.08.2009, 09:09
    #36131546
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
parapedKruchinin Pahan,

Еще вопрос, как я понял WhilePrintingRecords нужно использовать в качестве условя для if?
И можно по подробнее, что за событие WPR и чем оно отличается от других в Evalution Time?
Почитайте про время исполнения формулы. Дело в том, что формула старается быть выполненной как можно раньше. Формула, которая работает с данными будет стараться выполнится в момент получения данных.
А вот после получения данных, может пройти сортировка на клиенте и в результате, у вас получится "string3 string 1 string 2".

Вот чтобы такого не случалось, можно задать конкретное время исполнения формулы. Первой инструкцией задается время исполнения: "WhilePrintingRecords;" - в момент вывода записей.

Ну и последнее: формул надо всего 3.
ReportHeader (инициализация переменной):
BeforeReadingRecords ;
stringVar lcConcatString := "" ;

Detail (конкатенация строк):
WhilePrintingRecords ;
stringVar lcConcatString ;
lcConcatString := lcConcatString + {mycursor.myfield}

Ну и в футере: формулу, которая возвращает эту переменную.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
17.01.2012, 16:04
    #37618332
suomi_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммировать текстовые поля (CR 2008)
Kruchinin Pahan,

Не подскажите, что надо изменить, если для аналогичного случая lcConcatString надо в Pageheader поместить?
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Суммировать текстовые поля (CR 2008) / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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