21 октября, воскресенье 06:16
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Как подменить файл или поток при печати по F5

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Как подменить файл или поток при печати по F5

    Подскажите кто знает.
    Сформирован отчет и выведен на просмотр (PreView)
    Нажимаем F5. Можно вывести на печать другой файл? Как это делается при графической печати: там смотрится одно, а печатается совсем другое?

  • #2
    См. процедуру печати (имя узнаете из настроек принтера). Это обычный шеловский скрипт. Меняете на свой (у нас давно так и сделано, поскольку штатный плохо печатает графические документы на слабых каналах и старых принтерах с малым объёмом памяти) и все дела.
    /kiv

    Комментарий


    • #3
      Может оно и верно. Наше принтерное хозяйство может и надо причесать.

      Но у меня сейчас одна маленькая конкретная задачка.
      Озадачили меня платёжным требованием по комиссии за ведение расчетного счёта. Связываться с графическим требованием я не стал. Ну не нравиться мне графическая печать в Бисквите. Решил воспользоваться Хьюлетовскими PCL последовательностями., дабы привести размеры платёжного требования к требуемым. Такой опыт у меня имеется. Но, в который раз наткнулся на придурь Telnet-а. Не нравятся ему эти последовательности: когда отчет появляется во вьюере, как только начинаешь экран скроллить, Telnet тут же сваливается.
      Может кто знает, как с этим бороться?
      Ну да ладно, думаю. Выведу на экран одно, распечатаю другое. Но как это сделать? Менять скрипты печати ради этого вшивого требования не хочется что-то.
      Пошел в обход: решил вообще не выводить его на экран, а пустить прямо на печать:

      TmpStr = 'lp -o nofilebreak -o nobanner -s -d -с ' + unix-printer + ' _spool.tmp'.
      OS-COMMAND VALUE(TmpStr).
      /* unix-printer - UNIX-овое имя выбранного принтера */

      На текущем этапе чешу репу: как узнать UNIX-овое имя принтера?

      Комментарий


      • #4
        На текущем этапе чешу репу: как узнать UNIX-овое имя принтера?

        По бисовому имени, самостоятельно пропарсив строку команды печати. Таблица называется printer. Как узнать бисовое имя:

        - найти процедуру, в которой это имя фигурирует
        - ну и посмотреть где хранится

        На первый вопрос ответы:
        preview.p cho-prin.p globdate.p (ну уже достаточно)

        соответственно глобальная переменная называется usr-printer (определена в globals.i)

        Встречный вопрос: про магические сочетания клавиш Ctrl+T и (в некоторых вьюхах) Ctrl+F2 знаете?
        /kiv

        Комментарий


        • #5
          По бисовому имени, самостоятельно пропарсив строку команды печати. Таблица называется printer

          Длительное чесание затылка не осталось без последствий: накопал я ту табличку.
          Сделал требование и пустил его на принтер, минуя preview.p. Оно так, на мой взгляд и лучше: не провоцирует пользователей на попытку поредактировать файл. При печати, например, графического платёжного поручения, когда оно появляется на экране, пользовательша жмёт Shift+F4, что то там меняет, печатает, а потом удивляется тому обстоятельству, что старалась она зря.
          Ну а все же. Предположим я показал что - то во вьюере, а при нажатии на F5 хочу распечатать совсем не то, что показал. При печати графического ПП это делается скриптом печати. А по другому это можно, например переопределив F5 или используя не
          preview.p, а что то другое?

          И про Telnet. Может кто нибудь все же знает как отучить Telnet так нервно реагировать на хьюлетовские управляющие символами? Telneat, например, относится к этим символам вполне терпимо.

          Комментарий


          • #6
            При печати графического ПП это делается скриптом печати. А по другому это можно, например переопределив F5 или используя не
            preview.p, а что то другое?


            Сравните число строк кода preview.p и bq-lp. Лично я, сравнив, выбрал тот самый путь - процедура печати решает, печатать ей stdin или макрофайл или файл "универсальной процедуры печати" (несмотря на громкое название - используется только при печати извещений в налоговую инспекцию об открытии-закрытии счетов).
            /kiv

            Комментарий

            Пользователи, просматривающие эту тему

            Свернуть

            Присутствует 1. Участников: 0, гостей: 1.

            Обработка...
            X