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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

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

Сообщение optron »

Здравствуйте все.
clar 5.5 EE Есть стандартный ABС report.
Настроен постраничный break.
Есть поле, в которое выводится постраничная сумма.(SUM Reset on page)
Это поле выводится в PageFooter.
Так вот дальше нужно еще прописать значение этой суммы прописью.
То бишь применить функцию суммы прописью(SumP) в конце страницы.
Как это сделать? Эмбедзов для конца страницы нет...
Как его вообще выловить конец страницы - в какой процедуре ловить?
Заранее спасибо.
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

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

Сообщение lsgsoftware »

Эта тема уже обуждалась на форуме.Смотри историю
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

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

Сообщение optron »

Ясно. Посмотрел. Если короче, задача сводится практически к отказу от стандартного репорта и написанию своего ручками.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8033
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

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

Сообщение Игорь Столяров »

В общем случае - да ...
А в Вашем вопросе - можно попробовать расчитывать сумму прописью для
итогового значения по листу ПЕРЕД печатью каждой записи - Print(Rpt:Detail).
А печатать ее только в "подвале" по листу. По идее - должно получится, ведь
структура Report только создает завершение листа по команде Print(Rpt:Detail),
а значение суммы прописью к этому моменту уже будет определено.
Вот и все. Должно получится, хотя сам - не пробовал ...
Make Clarion Great Again ! 😎
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

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

Сообщение 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)
(Но так все равно - сумма по всему файлу)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8033
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

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

Сообщение Игорь Столяров »

Вообще в Clarion'e есть места - где лучше не пытаться ничего делать против ветра ...
Т.е. лучше принять все как оно есть ... ;)

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

Т.е. что-то вроде SumP(Report$?Summa:2{Prop:Text}) или SumP(Report$?Summa:2{Prop:Value})
Хотя последний вариант мне кажется подозрительным ... ;)
Make Clarion Great Again ! 😎
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

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

Сообщение optron »

Ошибки ни в одном случае не дает, но проблема та же - выводит сумму по всему файлу.
Обидно, но похоже, что ничего не получится.
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

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

Сообщение lsgsoftware »

Вы не пишете,что у вас за отчет.Из известных - это накладная по форме торг12(та еще штучка).В свое время я все это сделал и потратил на это дней 10.Для хорошего клариониста это очень много.Тем паче,что в гранд тотале нужно еще и общую сумму залудить.Прошло время и мне понадобилось перенести этот отчет в другой проект - не получилось-сбой при экспорте-импорте.Видимо,модуль оказался слишком большим.Переписывать все заново лень.Я взял проект, в котором все работало ,удалил все,кроме отчета и импортировал все остальное из нового проекта - на это ушли минуты.
Вот так мы и работаем.Успехов!
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

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

Сообщение optron »

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