for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
   :: Помощь сайту :: 

Печатаются черные полосы вместо текста
ou
Автор

Сообщений: 107
Дата: 07.06.18 19:34:37ОтветитьЦитировать
Здравствуйте, уважаемые коллеги!

Юзер жалуется, что вместо текста в одном репорте печатаются черные прямоугольники. Другие репорты печатаются нормально.
Visual FoxPro 9.0.
Принтер Konica Minolta C558.
С точки зрения фокса единственная разница между проблемным и нормальными репортами в том, что проблемный выводится с reportbehavior 90, а остальные - с reportbehavior 80.
Юзер говорит, что в превью всё видно нормально, черные прямоугольники - только на печати.
Шрифт - самый что ни на есть обыкновенный Arial. Никаких экзотических настроек нет.

Не может ли кто-нибудь подсказать, в какую сторону думать?
Ratings: 0 negative/0 positive


Вложения:
[Stripes.png (42.3KB)]  

Re: Печатаются черные полосы вместо текста
of63

Сообщений: 11805
Откуда: Н.Новгород
Дата: 07.06.18 19:39:41ОтветитьЦитировать
С шрифтами принтера что-то. А на другом принтере если печатать, то все нормально?
() Тексты русские, вероятно. Может, локаль нерусская
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
ou
Автор

Сообщений: 107
Дата: 07.06.18 20:04:16ОтветитьЦитировать
Спасибо.
Язык везде английский.
Шрифт в других репортах, действительно, другой. В основном, Franklin Gothic Medium. Мне всегда казалось, что обыкновеннее и распространённее Arial вряд ли что-нибудь есть...

На каком-то другом принтере получили то же самое, но пока не сказали, что за принтер второй.До сих пор с этой репортовской формой вообще проблем не было.
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
of63

Сообщений: 11805
Откуда: Н.Новгород
Дата: 07.06.18 20:55:52ОтветитьЦитировать
По шрифтам я не в курсе, если честно. Я до сих пор считаю, что если оставить имя шрифта по умолчанию (в дизайнере рипорта, в поле, этот шрифт выглядит нежирным, т.е. не измененным разработчиком, то вроде бы проблем не будет, т.е. на конкретном компе юзера VFP подберет первый попавшийся шрифт (?). А вот если указать явно (хоть тот же Ариал, но явно), то я не понимаю, как ОС подбирает похожий при отсутствии оного на машине конкретного юзера...
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
Igor Korolyov

Сообщений: 31943
Дата: 07.06.18 22:07:31ОтветитьЦитировать
Принтер (его драйвер) может пытаться выводить "широкоизвестный" шрифт своими силами, и обламываться на этом по самым разным причинам. Обычно сие происходит с кириллицей, и замена идёт на "абракадабру" а не на чёрную заливку.
Попробуй пошаманить с TTOPTION в самом отчёте (подробности есть в FAQ, да и поиском несложно найти). Попробуй ещё настройки принтера (драйвера) подёргать - может там собака порылась.


------------------
WBR, Igor
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
akvvohinc

Сообщений: 2791
Откуда: Москва
Дата: 08.06.18 01:52:02ОтветитьЦитировать
ou
Не может ли кто-нибудь подсказать, в какую сторону думать?

Чтобы что-то подсказать, было бы неплохо глянуть на исходники этого отчета - frx- и frt-файлы.

А так я бы экспериментировал с отчетом - для начала убрал бы из него все, кроме какого-то одного проблемного поля, а далее:
1) если результат нормальный, то добавил бы еще одно и т.д.
2) если результат ненормальный, то начал бы играть со значением и свойствами поля.
Здесь можно также попробовать заново (с нуля) создать этот отчет с этим, пока единственным, проблемным полем. При этом не пользоваться копипастом из старого отчета.

Фантастики не бывает (или бывает, но очень редко) - в какой-то момент при этих экспериментах что-нибудь да "сыграет", а ошибка может уйти, даже если вы не поймете почему.



Исправлено: akvvohinc, 08.06.18 01:55
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
Sawradym

Сообщений: 1843
Откуда: Винница
Дата: 08.06.18 11:39:08ОтветитьЦитировать
Если мне память не изменяет, то такой эффект проявляется если в настройках экрана включено масштабировниие.


------------------
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
ry

Сообщений: 1954
Дата: 08.06.18 12:05:18ОтветитьЦитировать
Первое подозрение все-таки на шрифт. Если есть возможность поменять его в отчете, то лучше начать именно с этого. Можно еще поискать в настройках принтера и включить (при наличии) опцию типа "Печатать шрифты как растр" - иногда это помогает при проблемах с неправильной печатью текста.
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
Sawradym

Сообщений: 1843
Откуда: Винница
Дата: 08.06.18 14:18:45ОтветитьЦитировать
Вспомнил. Была такая проблема с одним принтером, в принципе она и осталась.
При печати через oListener.OnPreviewClose() документ выводится нормально, если же печатать Report Form ... To Printer, то получается то что описывает ТС.


------------------
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
akvvohinc

Сообщений: 2791
Откуда: Москва
Дата: 08.06.18 17:35:51ОтветитьЦитировать
Sawradym
Вспомнил. Была такая проблема с одним принтером, в принципе она и осталась.

Проблема же не в принтере как таковом, а с одним единственным отчетом (остальные-то на этом же принтере печатаются нормально).
Значит, надо понять, что не нравится принтеру в этом отчете.

Последовательным, поэлементным созданием этого отчета с нуля (с проверкой печати на каждом шаге) можно понять, какой объект приводит к проблеме, а далее играть с выводимым значением и свойствами, чтобы понять что именно вызывает подобный глюк принтера.

Конечно, для скорости проверки лучше не по одному объекту добавлять, а по принципу бинарного поиска.



Исправлено: akvvohinc, 08.06.18 17:41
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
Sawradym

Сообщений: 1843
Откуда: Винница
Дата: 08.06.18 17:50:37ОтветитьЦитировать
Цитирую ТС:
ou
С точки зрения фокса единственная разница между проблемным и нормальными репортами в том, что проблемный выводится с reportbehavior 90, а остальные - с reportbehavior 80.
Юзер говорит, что в превью всё видно нормально, черные прямоугольники - только на печати.

Вангую что по oListener.OnPreviewClose() документ напечатается нормально.


------------------
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
akvvohinc

Сообщений: 2791
Откуда: Москва
Дата: 08.06.18 20:37:45ОтветитьЦитировать
Sawradym
Вангую что по oListener.OnPreviewClose() документ напечатается нормально.

ТС пишет, что единственная разница - в настройке Set ReportBehavior.
Ни о каком Report Listener'е речи у него нет.
И если это действительно так, то я бы еще попробовал просто получить этот же отчет при Set ReportBehavior 80.
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
ou
Автор

Сообщений: 107
Дата: 09.06.18 16:52:53ОтветитьЦитировать
Добрый день, уважаемые коллеги!

Спасибо за высказанные предположения.
Пробую варианты с другим шрифтом и TTOPTION = 1. Доступа к принтеру не имею, так что жду ответа от заказчика - что у него там получится.

Report Listener не используется. Разница в reportbehavior и в шрифтах. Тот, который нормально виден, - Franklin Gothic Medium, тот, который зачерняется, - Arial.
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
ssa
[Модератор]

Сообщений: 12043
Откуда: Москва
Дата: 09.06.18 18:36:39ОтветитьЦитировать
ou
Добрый день, уважаемые коллеги!
Спасибо за высказанные предположения.
Пробую варианты с другим шрифтом и TTOPTION = 1. Доступа к принтеру не имею, так что жду ответа от заказчика - что у него там получится.

Report Listener не используется.
При reportbehavior 90? И как вам сие удалось?
То, что вы его не вызываете явно в своем коде, совсем не означает его неиспользование при указанной настройке. Учите матчасть.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
akvvohinc

Сообщений: 2791
Откуда: Москва
Дата: 09.06.18 20:05:14ОтветитьЦитировать
ssa
При reportbehavior 90? И как вам сие удалось?
То, что вы его не вызываете явно в своем коде, совсем не означает его неиспользование при указанной настройке. Учите матчасть.

Скажу, как я понял автора:
Использовать Report Listener можно при любой настройке ReportBehavior, разница лишь в том, что при 80 он может не использоваться.

Когда он пишет, что не использует Report Listener при 90, то это означает лишь то, что он не делает ничего явного с этим объектом.

Одновременно с этим он пишет, что никакой другой существенной разницы в отчетах он не видит (не помнит).
Но для каких-то целей настройка Set ReportBehavior 90 все же делается, ведь иначе зачем она нужна, и почему бы и этот отчет не получать при Set ReportBehavior 80?

Значит, разница в отчетах какая-то все же должна быть и помимо шрифтов, и надо бы выяснить, в чем она.
Может, тогда и возможная причина "глюка" чуть прояснится.



Исправлено: akvvohinc, 09.06.18 20:05
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
Igor Korolyov

Сообщений: 31943
Дата: 09.06.18 23:01:25ОтветитьЦитировать
akvvohinc
Использовать Report Listener можно при любой настройке ReportBehavior
Смотря что понимать под "использовать". Создать экземпляр этого класса - да, вполне. Использовать его как средство рендеринга отчёта (для чего он, собственно говоря и предназначен) - нет. Только при REPORTBEHAVIOR 90 экземпляры этого класса используются движком отчётности для того что и называется object-assisted reporting.
akvvohinc
Когда он пишет, что не использует Report Listener при 90, то это означает лишь то, что он не делает ничего явного с этим объектом.
Это вполне очевидно. Но надо понимать что несмотря на "явное неиспользование", на самом деле фокс создаст экземпляр класса reportlistener и будет его использовать незаметно для программиста (раз уж он не парится настройками, дополнительными возможностями и т.п.).


------------------
WBR, Igor
Ratings: 0 negative/1 positive

Re: Печатаются черные полосы вместо текста
ou
Автор

Сообщений: 107
Дата: 09.06.18 23:28:57ОтветитьЦитировать
akvvohinc
Когда он пишет, что не использует Report Listener при 90, то это означает лишь то, что он не делает ничего явного с этим объектом.
Вы абсолютно правы

akvvohinc
Значит, разница в отчетах какая-то все же должна быть и помимо шрифтов, и надо бы выяснить, в чем она.
Может, тогда и возможная причина "глюка" чуть прояснится.
Верно, причина есть, но, подозреваю, что отношения к глюку это не имеет.
При 80 не работает Trim to nearest character, то есть, если фраза не влезает в поле по ширине, то откусываются не только лишние символы, а целое слово. Именно из-за этого для группы репортов используется 90.
Для остального 90 не используется, потому что заказчик любит длинные многостраничные отчеты (не спрашивайте меня почему - я не знаю, и переубедить его мне не удалось), а в 90 они рендерятся очень заметное время.
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
akvvohinc

Сообщений: 2791
Откуда: Москва
Дата: 10.06.18 02:31:33ОтветитьЦитировать
Igor Korolyov
Смотря что понимать под "использовать". Создать экземпляр этого класса - да, вполне. Использовать его как средство рендеринга отчёта (для чего он, собственно говоря и предназначен) - нет. Только при REPORTBEHAVIOR 90 экземпляры этого класса используются движком отчётности для того что и называется object-assisted reporting.

Не могу сказать, что четко знаю, в чем отличие команд при настройке Set ReportBehavior 80:
REPORT FORM ...
REPORT FORM ... OBJECT TYPE 1
но отличия я вижу и в превью и на печати.

В то же время отличий команды
REPORT FORM ... OBJECT TYPE 1
при разных настройках ReportBehavior не наблюдаю.

Вот это (OBJECT TYPE) я, в частности, и имел в виду, когда писал об использовании RL при Set ReportBehavior 80.

Надеюсь, ты прояснишь суть написанного мной в свете твоего уточнения, которое я процитировал.
Ratings: 0 negative/0 positive

Re: Печатаются черные полосы вместо текста
akvvohinc

Сообщений: 2791
Откуда: Москва
Дата: 10.06.18 03:29:14ОтветитьЦитировать
ou
При 80 не работает Trim to nearest character

Не совсем так.
На это влияет не сама по себе настройка SET REPORTBEHAVIOR, а использование/не использование новых возможностей отчетов (другой вариант рендеринга, я так понимаю).

Например, запустите приложенный отчет командой:
REPORT FORM rpt1 OBJECT TYPE 1 PREVIEW
и при 80, и при 90 результат в плане обрезания длинных слов будет одинаков.

А вот при запуске отчета командой:
REPORT FORM rpt1 PREVIEW
результат будет зависеть от настройки REPORTBEHAVIOR.

[attachment 29537 rpt1.rar]



Исправлено: akvvohinc, 10.06.18 03:31
Ratings: 0 negative/0 positive


Вложения:
[rpt1.rar (1.5KB)]  

Re: Печатаются черные полосы вместо текста
Igor Korolyov

Сообщений: 31943
Дата: 10.06.18 14:39:47ОтветитьЦитировать
Да, как-то совсем проглядел фразу из хелпа
akvvohinc
SET REPORTBEHAVIOR has no effect on REPORT FORM and LABEL FORM commands that have a ReportListener instance specified via an OBJECT clause.
Сказывается что фоксовыми отчётами ещё со времён 7-ки не пользуюсь


------------------
WBR, Igor
Ratings: 0 negative/0 positive



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

On-line: 37 Igor Korolyov  and Guests: 36


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