Страница 1 из 1

Как выловить переход на след. страницу?

Добавлено: 02 Март 2009, 12:26
optron
Здравствуйте все.
clar 5.5 EE Есть стандартный ABС report.
Настроен постраничный break.
Есть поле, в которое выводится постраничная сумма.(SUM Reset on page)
Это поле выводится в PageFooter.
Так вот дальше нужно еще прописать значение этой суммы прописью.
То бишь применить функцию суммы прописью(SumP) в конце страницы.
Как это сделать? Эмбедзов для конца страницы нет...
Как его вообще выловить конец страницы - в какой процедуре ловить?
Заранее спасибо.

Re: Как выловить переход на след. страницу?

Добавлено: 02 Март 2009, 21:43
lsgsoftware
Эта тема уже обуждалась на форуме.Смотри историю

Re: Как выловить переход на след. страницу?

Добавлено: 03 Март 2009, 9:35
optron
Ясно. Посмотрел. Если короче, задача сводится практически к отказу от стандартного репорта и написанию своего ручками.

Re: Как выловить переход на след. страницу?

Добавлено: 03 Март 2009, 17:03
Игорь Столяров
В общем случае - да ...
А в Вашем вопросе - можно попробовать расчитывать сумму прописью для
итогового значения по листу ПЕРЕД печатью каждой записи - Print(Rpt:Detail).
А печатать ее только в "подвале" по листу. По идее - должно получится, ведь
структура Report только создает завершение листа по команде Print(Rpt:Detail),
а значение суммы прописью к этому моменту уже будет определено.
Вот и все. Должно получится, хотя сам - не пробовал ...

Re: Как выловить переход на след. страницу?

Добавлено: 04 Март 2009, 9:25
optron
Игорь Столяров писал(а):В общем случае - да ...
А в Вашем вопросе - можно попробовать расчитывать сумму прописью для
итогового значения по листу ПЕРЕД печатью каждой записи - Print(Rpt:Detail).
А печатать ее только в "подвале" по листу. По идее - должно получится, ведь
структура Report только создает завершение листа по команде Print(Rpt:Detail),
а значение суммы прописью к этому моменту уже будет определено.
Вот и все. Должно получится, хотя сам - не пробовал ...
Теоретически - да. Двигаюсь примерно в том же направлении.
Проблема вот в чем:
Рассчитывая сумму прописью просто от поля базы LOC:Str=SumP(RAM:Summ), в переменную LOC:Str попадает общая сумма прописью по всему файлу, а не по отдельной странице.

А можно как то брать функцию не от поля, а от явного указания настройки поля RAM:SumOst,,?RAM:SumOst:5 (сумбурно, но как точнее выразиться не соображу)
Примерно как то так:

Код: Выделить всё

LOC:Str=SumP(RAM:SumOst,,?RAM:SumOst:5) 
(Это естественно дает синтаксическую ошибку)
или так:

Код: Выделить всё

LOC:Str=SumP(?RAM:SumOst:5)
(Но так все равно - сумма по всему файлу)

Re: Как выловить переход на след. страницу?

Добавлено: 04 Март 2009, 11:29
Игорь Столяров
Вообще в Clarion'e есть места - где лучше не пытаться ничего делать против ветра ...
Т.е. лучше принять все как оно есть ... ;)

И конечно уж точно не стоит передавать адрес поля отчета в качестве его значения.
Да и полную адресацию внутри структуры отчета тоже будет добавить не лишним.

Т.е. что-то вроде SumP(Report$?Summa:2{Prop:Text}) или SumP(Report$?Summa:2{Prop:Value})
Хотя последний вариант мне кажется подозрительным ... ;)

Re: Как выловить переход на след. страницу?

Добавлено: 04 Март 2009, 12:54
optron
Ошибки ни в одном случае не дает, но проблема та же - выводит сумму по всему файлу.
Обидно, но похоже, что ничего не получится.

Re: Как выловить переход на след. страницу?

Добавлено: 05 Март 2009, 19:39
lsgsoftware
Вы не пишете,что у вас за отчет.Из известных - это накладная по форме торг12(та еще штучка).В свое время я все это сделал и потратил на это дней 10.Для хорошего клариониста это очень много.Тем паче,что в гранд тотале нужно еще и общую сумму залудить.Прошло время и мне понадобилось перенести этот отчет в другой проект - не получилось-сбой при экспорте-импорте.Видимо,модуль оказался слишком большим.Переписывать все заново лень.Я взял проект, в котором все работало ,удалил все,кроме отчета и импортировал все остальное из нового проекта - на это ушли минуты.
Вот так мы и работаем.Успехов!

Re: Как выловить переход на след. страницу?

Добавлено: 06 Март 2009, 8:41
optron
Да отчет то достаточно стандартный - инвентарная опись основных средств.
Есть постраничный брейк и тотальный.
Несколько лет обходились вписанием сумм прописью по страницам вручную, но захотелось вот автоматизировать ...
А с той схемой, что Вы описали - это точно... Я вообще стараюсь писать новые проекты перемонтируя старые - убеждался несколько раз, что меньше времени уходит.