|
|
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
Кристал 2008. В деталях есть поле содержащее строку (string), нужно внизу отчета (например пэйдж футер или репорт футер) вывести сумму этих полей, то есть суммировать строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 11:45 |
|
||
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
parapedКристал 2008. В деталях есть поле содержащее строку (string), нужно внизу отчета (например пэйдж футер или репорт футер) вывести сумму этих полей, то есть суммировать строки. Для строк отсутствует операция суммирования. Есть операция конкатенации. А так - решается через формулы. Первая формула инициализирует переменную, вторая на каждый Detail конкатенирует строки. Чтобы сохранить сортировку отчета, формула должна быть WhilePrintingRecords. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 12:01 |
|
||
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
Я думал, что после того как формула выполнилась в деталях, в следующей записи перемая уже не будет существовать? или нада обявлять что типа global? и получается что типа if (FirstRecord) THEN dim str as string end if тратата...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 17:37 |
|
||
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
Можно сделать проще: -написать формулу конвертации в CR текстового поля в число и суммировать это поле -реализовать конвертацию текста в число в SQL запросе и суммировать это поле. А то что предложил предыдущий автор называется формулы времени исполнения(Evaluation Time) и они описаны в хэлпе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2009, 18:31 |
|
||
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
parapedЯ думал, что после того как формула выполнилась в деталях, в следующей записи перемая уже не будет существовать? или нада обявлять что типа global? Переменные могут быть LOCAL, GLOBAL и SHARED. Видимости, соответственно, - текущий модуль, текущий отчет, отчет и его подотчеты. Если вы не указываете область видимости переменной, она GLOBAL по-умолчанию. Далее. Для инициализации глобальных для отчета переменных, я обычно завожу отдельную формулу, которую помещаю в ReportHeader (или несколько). И далее в отчете у меня нет необходимости заморачиваться, инициализирована ли переменная или нет. И все-таки, вы хотите конкатенировать строки, или у вас в данных типа строка лежат числа, которые вы хотите суммировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 07:04 |
|
||
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
не то, не другое... я хочу суммировать строки. string 1 string 2 string 3 = string1 string 2 string 3 (другими словами этот процесс называется конкатенация строк) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 09:47 |
|
||
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
Kruchinin PahanparapedЯ думал, что после того как формула выполнилась в деталях, в следующей записи перемая уже не будет существовать? или нада обявлять что типа global? Переменные могут быть LOCAL, GLOBAL и SHARED. Видимости, соответственно, - текущий модуль, текущий отчет, отчет и его подотчеты. Если вы не указываете область видимости переменной, она GLOBAL по-умолчанию. Далее. Для инициализации глобальных для отчета переменных, я обычно завожу отдельную формулу, которую помещаю в ReportHeader (или несколько). И далее в отчете у меня нет необходимости заморачиваться, инициализирована ли переменная или нет. И все-таки, вы хотите конкатенировать строки, или у вас в данных типа строка лежат числа, которые вы хотите суммировать? Сорри, не так понял, все правильно, я хочу конкатенировать строки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 10:11 |
|
||
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
Kruchinin Pahan, Еще вопрос, как я понял WhilePrintingRecords нужно использовать в качестве условя для if? И можно по подробнее, что за событие WPR и чем оно отличается от других в Evalution Time? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2009, 10:21 |
|
||
|
Суммировать текстовые поля (CR 2008)
|
|||
|---|---|---|---|
|
#18+
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} Ну и в футере: формулу, которая возвращает эту переменную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2009, 09:09 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=37618332&tid=1534660]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 254ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...