:: Visual Foxpro, Foxpro for DOS
Windows 10 with Scaling factor and ReportBehavior 90
radin
Автор

Сообщений: 7
Дата регистрации: 02.04.2009
Приветствую.
В виндовс 10 при увеличении маштаба показываемой информации и использования set ReportBehavior 90 предварительные просмотры отчётов обрезаются по ширине и высоте. Часть информации теряется.

Кто нибудь сталкивался с такой проблемой? И если сталкивался то как решил?

Подробней:
Имею Windows 10. Жму правой кнопкой мыши по десктопу, выбираю Display settings. На появившейся форме двигаю бегунок "Change the size of text, apps, and other items" до 125% или более.
Запускаю приложение написанное в VFP 9.0 SP2, запускаю отчёт, жму кнопку предварительного просмотра (происходит выполнение report form). Показываемые данные обрезаются с права и с низу.

Что интересно при set ReportBehavior 80 увеличение происходит и всё отображается адыкватно.
В виндовс 7, 8, 8,1 такой проблемы нету.

Пытался исправить проблему в ReportOutput.app в классе _reportListener (listener сборка). Переопределил методы GetPageWidth и GetPageHeight cледующим образом:

procedure GetPageWidth_assign
return dodefault() * 1.25
endproc

procedure GetPageHeight_assign
return dodefault() * 1.25
endproc

Частично помогло. По ширине данные обрезаться перестали. Но по высоте... Вобщем тоже перестали, но теперь часть строк со второй страницы пытаются разместиться на первой, а поскольку свободного места тут нету, не влезают на неё и отображаются в непоказываемой зоне (ниже страницы).

Может кто нибуть подсказать решение проблемы или указать сторону в которую следует копать?



Исправлено 1 раз(а). Последнее : radin, 26.04.17 15:28
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
Иди против ветра, на месте не стой ... kevinragsdale.net


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/1 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Элементы интерфейса не взаимодействуют с настройкой масштабирования стола, годится только 100%.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
radin
Автор

Сообщений: 7
Дата регистрации: 02.04.2009
В Windows 8.1 вполне себе взаимодействуют. В Windows 10 правильно растягивается всё приложение кроме предварительного просмотра отчётов организованного при помощи ReportListener'a.
В любом случае благодарю за участие в обсуждении проблемы.
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
radin
Автор

Сообщений: 7
Дата регистрации: 02.04.2009
dimuhametov благодарю за предложенные пути решения. Функция SetProcessDpiAwareness была знакома. Она влияет на всё приложение, отменяя увеличение. Что если и сгодится то на самый крайний случай. Клиенты жаждут увеличения.
А вот по поводу прикручиваемых к exe файлу манифестов я ещё буду посмотреть.
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
radin
dimuhametov благодарю за предложенные пути решения. Функция SetProcessDpiAwareness была знакома. Она влияет на всё приложение, отменяя увеличение. Что если и сгодится то на самый крайний случай. Клиенты жаждут увеличения.
А вот по поводу прикручиваемых к exe файлу манифестов я ещё буду посмотреть.
Если прикрутить описанный выше блок к манифесту, то приложение открывается в стандарте 96DPI.


------------------
Незнание делает жизнь такой интересной.




Исправлено 1 раз(а). Последнее : dimuhametov, 27.04.17 08:32
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
radin
Автор

Сообщений: 7
Дата регистрации: 02.04.2009
Сутки потратил разбираясь в манифестах, прикручвая их к исполняемому приложению, к reportOutput.exe, reportPrewiev.exe
Думал если у основного приложения и reportOutput/reportPrewiev будут разные манифесты то и вести они себя будут по разному.
Дудки. Манифест основного приложения подавляет все иные манифесты, по крайней мере в вопросах связанных с маштабированием.
Вобщем придёться отменять маштабирование путём применения SetProcessDpiAwareness. Ну или откатываться до set ReportBehavior 80
Эх. Совсем состарился наш лис.

Спасибо за участие.
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Report* приложения вообще-то штатно app а не exe, и в любом случае запускаются системой через DO - т.е. "живут" внутри основного процесса - так что их манифесты вообще не учитываются.

В принципе можно сделать отдельный exe (запускать через ShellExecute, RUN /N или CreateProcess - лишь бы не чрез DO), который будет только запускать на превью отчёты, и тогда у основного и у этого "отчётного" через разные манифесты или тот же вызов АПИ можно разное поведение в плане масштабирования соорудить.

Ну да, увы, либо такие костыли, либо надеяться что какой-нить Чен в своём VFP10 таки исправит баги...

P.S. Возможно, конечно, что проблема таки решается какими-то правками в report* приложениях - но это надо очень хорошо знать/понимать и принцип их работы, и принцип работы фоксового движка в "новом режиме", и, заодно, особенности АПИ функций (что там, gdiplus, может "контексты устройств" используются...) при работе из DPIUnaware приложений... Так с наскоку, методом тыка, вряд ли можно починить.


------------------
WBR, Igor




Исправлено 1 раз(а). Последнее : Igor Korolyov, 27.04.17 22:42
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
() я живу в шрифте 125% в 7ке давно. Шрифты VFP-приложения не меняются (меняются только шрифты на рабочем столе помоему). В репортах глюков не замечал. В заголовках POPUP-меню русскоязычность пропадает, а появляется евроязычность ([Font]CharSet=0, или 1 фокс использует, но не 204)
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В Windows 8.1 поменяли систему масштабирования. До того была "волшебная" галочка "Use Windows XP style DPI scaling" - она стояла по умолчанию если настраивать именно "масштабирование шрифтов", и с ней проблем не возникало (т.к. "альтернативный режим масштабирования" тупо апскейлил "картинку" - размывая её до вида привычного на дешёвых ЭЛТ мониторах 90-го года выпуска).
Но в 8.1 всё поменяли, и этого "режима совместимости" больше нет... Так что то что оно на Win7 работает - совершенно не показатель.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
В Фоксе 960 DPI зашито в коде, это видно, например, в справке топик GetPageHeight Method.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
radin
Автор

Сообщений: 7
Дата регистрации: 02.04.2009
Вы пишите
запускать через ShellExecute, RUN /N или CreateProcess - лишь бы не чрез DO

Создать объект через do и использовать его я могу

local ox
ox = .Null.
do ('c:\temp\ReportOutput.exe') With 1, ox, 2
ox.Quietmode = .T.
report Form (m.lcFRXFile) Object ox TO PRINTER NOCONSOLE
ox.Quietmode = .F.
ox = .Null.

Но как создать объект через ShellExecute, RUN /N или CreateProcess и запустить его?
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
RUN /N MyReportApp Report1
В этом приложении в главном/стартовом файле принять через LPARAMETERS параметры командной строки, и запускать всю последовательность команд для предпросмотра отчёта. Удобнее, наверное, будет делать это через свой превью-контейнер. Чтобы при закрытии этой формы и само вспомогательное приложение корректно завершить.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Burn

Сообщений: 5644
Откуда: Днепр
Дата регистрации: 02.01.2002
Подыму тему...
Кому то удалось решить проблему?


------------------
В борьбе бобра с козлом побеждает бобро
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Burn
Подыму тему...
Кому то удалось решить проблему?

А в чем именно проблема?
Автор менял разрешение экрана, видимо для лучшего просмотра.
Хотя, на мой взгляд, вероятно можно было обойтись и без этого. В Windows всех версий есть для подобного отличный инструмент Лупа". Начиная с семерки ее возможности стали даже еще удобнее. Вызывается сочетанием клавиш, либо своим, либо стандартным по умолчанию для лупы: support.microsoft.com
Или есть проблема в чем-то еще?


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Burn

Сообщений: 5644
Откуда: Днепр
Дата регистрации: 02.01.2002
Да не хотят люди пользоватся лупою. Они и очками не хотят пользоватся
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Burn
Да не хотят люди пользоватся лупою. Они и очками не хотят пользоватся

А если посмотреть в сторону подгрузки оной лупы из самого фокса?
Там в принципе есть например "режим экрана". Когда все увеличивается.
В любом случае, бороться с чем-то глубинным (если как пишут выше, дело в этом) думаю не проще.
Либо может стоит вообще отказаться от фоксовского рипорта.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
gsaul

Сообщений: 53
Дата регистрации: 28.01.2006
"В виндовс 10 при увеличении маштаба показываемой информации и использования set ReportBehavior 90 предварительные просмотры отчётов обрезаются по ширине и высоте."

shortcut - properties - compatibility "Disable display scaling on high DPI settings"
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
lemenev

Сообщений: 113
Дата регистрации: 23.06.2022
А есть ли функция обратная SetProcessDpiAwareness? Чтобы поставить разрешение 100%, посмотреть отчёт, а затем вернуть старое разрешение?
Ratings: 0 negative/0 positive
Re: Windows 10 with Scaling factor and ReportBehavior 90
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Она же является и обратной (параметр рулит):
0 - DPI unaware
1 - System DPI aware
2 - Per monitor DPI aware

Цитата:
Чтобы поставить разрешение 100%
Правда, эта функция установкой значения разрешения не занимается.



Исправлено 1 раз(а). Последнее : akvvohinc, 24.07.22 16:57
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 28 akvvohinc  (Гостей: 27)

© 2000-2024 Fox Club 
Яндекс.Метрика