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

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

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

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

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

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

string 1
string 2
string 3

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

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

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

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

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

Еще вопрос, как я понял WhilePrintingRecords нужно использовать в качестве условя для if?
И можно по подробнее, что за событие WPR и чем оно отличается от других в Evalution Time?
...
Рейтинг: 0 / 0
Суммировать текстовые поля (CR 2008)
    #36131546
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Период между сообщениями больше года.
Суммировать текстовые поля (CR 2008)
    #37618332
suomi_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan,

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


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