Если нет принтера
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Если нет принтера
Коллеги, я тут решил поковырять старую программу на C5/6 - она рисует wmf и сбрасывает его в pdf. Пришлось это дело вспомнить так как всплыл баг - если у клиента принтер по умолчанию имел размер не A4 а меньше то отчет обрезался (вылечил принудительным заданием размера A4 в свойствах Report). Но если в ситеме нет ни одного принтера (что конечно редкость так как без него не напечатать эти файлы) то всегда лист A4 разворачивается на альбом (обрезая часть отчета) и никакие "танцы" не могут заставить сделать портрет. Вот гадаю глюк-ли это Runtime и бросить это дело, или искать способы поворота в портрет (типа повернуть весь отчет на 90 если Printer{Proprint:Device} =''). Или может пересобрать на C7 и поглядеть там? Какие у кого идеи?
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Если нет принтера
Я бы назвал это особенностью, а не глюком ...
При формировании печатного листа используются настройки текущего принтера, в частности размер и расположение печатного листа и зона печати. Что в общем-то правильно. Отличий в этом вопросе в C7 от С6 нет. Наверно более корректным решением вопроса было бы проверка перед созданием отчета наличия текущего принтера (это не сложно Clip(Left(Printer{PropPrint:Device})) <> '' ) и соответсвенно выдача сообщение пользователю о том, что перед созданием отчета необходимо добавить в систему принтер по умолчанию, а потом уже создавать отчет ...
Т.е. что-то вроде сообщения одной из версий старого BIOS при загрузке компьютера: "Keyboard not present, press F1 to continue ..."
При формировании печатного листа используются настройки текущего принтера, в частности размер и расположение печатного листа и зона печати. Что в общем-то правильно. Отличий в этом вопросе в C7 от С6 нет. Наверно более корректным решением вопроса было бы проверка перед созданием отчета наличия текущего принтера (это не сложно Clip(Left(Printer{PropPrint:Device})) <> '' ) и соответсвенно выдача сообщение пользователю о том, что перед созданием отчета необходимо добавить в систему принтер по умолчанию, а потом уже создавать отчет ...
Т.е. что-то вроде сообщения одной из версий старого BIOS при загрузке компьютера: "Keyboard not present, press F1 to continue ..."
За теми кто отстал - не возвращаться. (С) Кодекс
Re: Если нет принтера
Да, какое-то извращенное представление об умолчательных настройках принтеров. У всех по умолчанию всегда портрет а тут решили изгольнуться. Собщение о наличии принтера придеться ставить в код перед запуском иначе не обойти этот косяк (ну или отчет повернуть на 90 градусов в альбом здесь в принципе задача решаема).