D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Спулер / assignfq

assignfq

Назначает драйверу принтера очередь форм спулера

assignfq formqueue,device.name{(Unix.command)}
 {, formqueue,device.name{(Unix.command)}{,...}} {(option}
assignfq ?

Этот драйвер принтера используется затем процессором вывода (OP) или функцией "@" FlashBASIC для генерации таких специальных команд форматирования, как выделение жирным шрифтом, позиционирование курсора или подчеркивание при выводе в спулер.

При использовании знака "?" в качестве параметра, выводится краткая справка.

В команде могут быть указано множество очередей, но каждая очередь должна ассоциироваться с устройством.

Драйверы принтера расположены в файле "dm,devices,". Текущие установки драйвера могут быть просмотрены командой "listabs".

К принтеру можно подключить более одной очереди (см. команду "startptr").

В реализациях на базе Unix, спулер имеет возможность передавать данные процесса D3 непосредственно в Unix, например, в спулер, в файл, на коммуникационную ссылку, устройству и т.д. Связь между D3 и процессом Unix устанавливается командой "assignfq". Просто укажите команду Unix в кавычках сразу после параметра "device.name". Система интерпритирует строку в кавычках как процесс Unix и правильно установит связь (см. команду "startshp").

Опции:

  • c - "компилирует" запись файла устройств в блок управления курсором (ccb). Блок 'ccb' - это двоичная запись (своего рода динамический массив на системном уровне). Эта запись содержит коды и управляющие строки, касающиеся конкретного терминала. Каждая функция "system" ( @(-(n)) ) имеет в массиве свою собственную позицию, и системная курсорная функция просматривает эту запись в поисках необходимых управляющих строк (как, например, очистка экрана, очистка до конца экрана и т.д.).

Примеры:

assignfq 3,hp-lzrii

Эта команда назначает драйверу "hp-lzrii" очередь форм 3.

assignfq 3,b(cat>/file1)
sp-assign f3?
Line# Status Copies Form# Device
    7  p          1     3  b(cat>/file1)
list only md (p

Эта команда "assignfq" устанавливает связь между очередью 3 спулера D3 и процессом "cat > /file1" ОС Unix. Затем команда "sp-assign" дает указание системе подсоединить очередь 3. Следует отметить, что команда "sp-assign" необходима даже в случае, если линия уже приписана к очереди 3, для информирования процесса о том, что очередь очередь 3 должна теперь осуществлять вывод в команду Unix. И, наконец, команда "list" создает файл "/file1" ОС Unix с образом распечатки.

Следующая программа на языке FlashBASIC создает файл Unix, содержащий текст "line 1".

execute "assignfq 0,ibm3151(cat>/file1)"
execute "sp-assign f0"
execute "!rm /file1"; * Clear old one out
printer on; * Start printer output
print "line 1"
execute "!ls -l /file1"
printer close; * Close output
execute "!ls -l /file1"
execute "!cat /file1"

Выходные данные программы выглядят следующим образом:

Assigned form queue device 0, IBM3151(cat>/file1)
-rw-rw---- 1 pick  pick  0 Apr 23 11:15 /file1
-rw-rw---- 1 pick  pick  7 Apr 23 11:15 /file1
line 1

Особое внимание должно быть обращено на размер файла Unix. Следует отметить размер, напечатанный в команде "ls" Unix (сначала 0, а затем 7). Даже после печати текста "line 1" размер файла Unix все еще равен нулю. Выходные данные в этом файле появляются только после закрытия файла печати (что отражено в новом размере файла - 7). Из-за этого эффекта "буфера" задания на печать дожны закрываться до того, как просматриваются выходные данные в Unix.