Про Report Preview
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 8073
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
Про Report Preview
Привет всем !
Понимаю, что вопрос частный, но вдруг кто-нибудь уже разбирался ...
Зачем в штатном ABC классе предпросмотра отчётов ABREPORT.CLW 2 (два) раза подряд
вызывается SELF.InitWindowPosition() для установки размера и положения окна ?
Возможно в этом есть какой-то божественный замысел, который я не понимаю.
Заранее спасибо !
Понимаю, что вопрос частный, но вдруг кто-нибудь уже разбирался ...
Зачем в штатном ABC классе предпросмотра отчётов ABREPORT.CLW 2 (два) раза подряд
вызывается SELF.InitWindowPosition() для установки размера и положения окна ?
Возможно в этом есть какой-то божественный замысел, который я не понимаю.
Заранее спасибо !
Make Clarion Great Again ! 
Игорь Столяров
- ingasoftplus
- Ветеран
- Сообщения: 466
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 125 раз
- Поблагодарили: 7 раз
ingasoftplus
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
RaFaeL
- Игорь Столяров
- Ветеран движения
- Сообщения: 8073
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
Про Report Preview
Относясь с глубоким уважением к умению смотреть в книгу - процитирую ABREPORT.CLW С11.0.13630:
и ещё раз то же самое
Во избежание недоразумений, просто установим вот так и создадим любой отчёт:
В принципе, у меня уже есть версия чем и почему это делалось,
но хотелось бы услышать: действительно это вижу только я ?
Код: Выделить всё
PrintPreviewClass.Display PROCEDURE ...
...
OPEN (PreviewWindow)
SELF.PreviewWindow &= PreviewWindow
SELF.InitWindowPosition (PreviewWindow) ! После открытия окна - установить размер и позицию
SETCURSOR (CURSOR:Wait)
Код: Выделить всё
PrintPreviewClass.Open PROCEDURE()
i UNSIGNED,AUTO
CODE
IF NOT SELF.Maximize
SELF.InitWindowPosition (SELF.PreviewWindow) ! Ещё раз, если оконный режим
END
Код: Выделить всё
PrintPreviewClass.InitWindowPosition PROCEDURE (WINDOW PreviewWindow)
CODE
DISPLAY
Message('Всем выйти на свет !')
...
но хотелось бы услышать: действительно это вижу только я ?

Make Clarion Great Again ! 
Игорь Столяров
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
RaFaeL
-
- ✯ Ветеран ✯
- Сообщения: 5172
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Про Report Preview
Я видимо заметил первым - viewtopic.php?f=4&t=4523. В общем, логика непонятна. Идёт хитрый пересчёт в пиксели и с какими-то условиями. Два раза вызов, потому что два разных условия - Maximize и не Maximize. Поскольку у программеров SV не принято писать комменты (принято считать, что программист программиста должен понимать без комментариев), то надо потратить кучу времени и то не факт, что поймёшь. Результат такого программирования - глюк. Правда в этом случае его очень трудно поймать.
We are hard at work… for you. 

kreator
- Игорь Столяров
- Ветеран движения
- Сообщения: 8073
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
Про Report Preview
Нет, конечно. Комменты добавил я для тех, кто не умеет пользоваться поиском.

Супер ! Вот оно ! Да ! Спасибо за ссылку. Абсолютно независимо вчера-сегодня - я пришёл к такому же решению.kreator писал(а): 11 Октябрь 2019, 15:24 Сделал обратное преобразование окна из пикселей при записи ini-файла и запретил второй раз (когда окно пиксельное) читать координаты из ini-файла.

Ископаемая проблема в связке ABREPORT + INIClass есть и закрыта она кривым костылём отцов-основателей.
Просто 98% юзеров и разработчиков не парятся и разворачивают предпросмотр на весь экран.
А как только переключаешь предпросмотр в оконный режим - оттуда начинают лезть тараканы (bugs).

Make Clarion Great Again ! 
Игорь Столяров
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5298
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Про Report Preview
Как ни странно, я сегодня тоже занимался подобным вопросом. Но у меня в ШВС все просто, как капуста.
Размеры фрейма в пикселях сохраняются в глобальных переменных, поэтому отследить улет окна предпросмотра за границы фрейма сложности не представляет, эти переменные доступны в процедуре предпросмотра.

C6/C12, ШВС, tps/btrieve.
finsoftrz
- Игорь Столяров
- Ветеран движения
- Сообщения: 8073
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 98 раз
Про Report Preview
Но есть один момент ...finsoftrz писал(а): 08 Ноябрь 2020, 17:45 Размеры фрейма в пикселях сохраняются в глобальных переменных

всё равно выставляются от рабочей области фрейма, а не собственно окна фрейма.

Make Clarion Great Again ! 
Игорь Столяров
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5298
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Про Report Preview
Для меня это нормально, фича такая. У меня превью только на то, что надо напечатать. Всякие отчеты по другому формируются.
C6/C12, ШВС, tps/btrieve.
finsoftrz
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)