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 |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
dimuhametov Сообщений: 1562 Откуда: Костанай Дата регистрации: 01.11.2008 |
Иди против ветра, на месте не стой ... kevinragsdale.net
------------------ Незнание делает жизнь такой интересной. |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Элементы интерфейса не взаимодействуют с настройкой масштабирования стола, годится только 100%.
------------------ Совершенство - это не тогда, когда нельзя ничего прибавить, а тогда, когда нечего убавить. |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
radin Сообщений: 7 Дата регистрации: 02.04.2009 |
В Windows 8.1 вполне себе взаимодействуют. В Windows 10 правильно растягивается всё приложение кроме предварительного просмотра отчётов организованного при помощи ReportListener'a.
В любом случае благодарю за участие в обсуждении проблемы. |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
radin Сообщений: 7 Дата регистрации: 02.04.2009 |
dimuhametov благодарю за предложенные пути решения. Функция SetProcessDpiAwareness была знакома. Она влияет на всё приложение, отменяя увеличение. Что если и сгодится то на самый крайний случай. Клиенты жаждут увеличения.
А вот по поводу прикручиваемых к exe файлу манифестов я ещё буду посмотреть. |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
dimuhametov Сообщений: 1562 Откуда: Костанай Дата регистрации: 01.11.2008 |
Если прикрутить описанный выше блок к манифесту, то приложение открывается в стандарте 96DPI. ------------------ Незнание делает жизнь такой интересной. Исправлено 1 раз(а). Последнее : dimuhametov, 27.04.17 08:32 |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
radin Сообщений: 7 Дата регистрации: 02.04.2009 |
Сутки потратил разбираясь в манифестах, прикручвая их к исполняемому приложению, к reportOutput.exe, reportPrewiev.exe
Думал если у основного приложения и reportOutput/reportPrewiev будут разные манифесты то и вести они себя будут по разному. Дудки. Манифест основного приложения подавляет все иные манифесты, по крайней мере в вопросах связанных с маштабированием. Вобщем придёться отменять маштабирование путём применения SetProcessDpiAwareness. Ну или откатываться до set ReportBehavior 80 Эх. Совсем состарился наш лис. Спасибо за участие. |
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 |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() я живу в шрифте 125% в 7ке давно. Шрифты VFP-приложения не меняются (меняются только шрифты на рабочем столе помоему). В репортах глюков не замечал. В заголовках POPUP-меню русскоязычность пропадает, а появляется евроязычность ([Font]CharSet=0, или 1 фокс использует, но не 204)
|
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 |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
В Фоксе 960 DPI зашито в коде, это видно, например, в справке топик GetPageHeight Method.
------------------ Совершенство - это не тогда, когда нельзя ничего прибавить, а тогда, когда нечего убавить. |
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 и запустить его? |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
------------------ WBR, Igor |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
Burn Сообщений: 5644 Откуда: Днепр Дата регистрации: 02.01.2002 |
Подыму тему...
Кому то удалось решить проблему? ------------------ В борьбе бобра с козлом побеждает бобро |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
А в чем именно проблема? Автор менял разрешение экрана, видимо для лучшего просмотра. Хотя, на мой взгляд, вероятно можно было обойтись и без этого. В Windows всех версий есть для подобного отличный инструмент Лупа". Начиная с семерки ее возможности стали даже еще удобнее. Вызывается сочетанием клавиш, либо своим, либо стандартным по умолчанию для лупы: support.microsoft.com Или есть проблема в чем-то еще? ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
Burn Сообщений: 5644 Откуда: Днепр Дата регистрации: 02.01.2002 |
Да не хотят люди пользоватся лупою. Они и очками не хотят пользоватся
|
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
А если посмотреть в сторону подгрузки оной лупы из самого фокса? Там в принципе есть например "режим экрана". Когда все увеличивается. В любом случае, бороться с чем-то глубинным (если как пишут выше, дело в этом) думаю не проще. Либо может стоит вообще отказаться от фоксовского рипорта. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
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" |
Re: Windows 10 with Scaling factor and ReportBehavior 90 | |
---|---|
lemenev Сообщений: 113 Дата регистрации: 23.06.2022 |
А есть ли функция обратная SetProcessDpiAwareness? Чтобы поставить разрешение 100%, посмотреть отчёт, а затем вернуть старое разрешение?
|
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 Цитата:Правда, эта функция установкой значения разрешения не занимается. Исправлено 1 раз(а). Последнее : akvvohinc, 24.07.22 16:57 |
© 2000-2024 Fox Club  |