Печать MS Word документа из командной строки

Developer 6i
Обычно для пользователя при формировании различного рода документов в формате MS Word формировались файлы и просто открывались. Для этого вызывалась процедура host и передавалась строчка запуска. Например, фрагмент кода cmd  := 'cmd /c start winword.exe "'||pi_fname||'"'; host(cmd); Однако возникла задачка массовой печати. Т.е. есть подготовленные файлы, и их надо, например, при нажатии на кнопку распечатать на принтере. Естественно, пользователь не должен открывать, печатать, закрывать каждый документ. В итоге вызов видоизменился до следующего cmd  := 'cmd /c start /wait winword.exe "'||pi_fname||'" /q /n /mFilePrintDefault /mFileSave /mFileExit'; host(cmd); Что добавилось start /wait - дает нам возможность запустить приложение и ждать его завершения. В нашем случае мы должны в определенном порядке получать на принтере документы, т.е. они должны и попадать в очередь последовательно, а без ожидания маленькие документы могут встать в очередь быстрее…
Read More

Oracle Developer 6i: Forms – Questions

Developer 6i
Периодически получаются переходы на мой сайт по запросам по Oracle Forms. Если есть желание - задавайте вопросы :) Могу попробовать ответить практически на все вопросы, но только не FFI, т.к. в проектах избегаю его использования. Да и в трех-уровневой модели он будет проблематичен :)
Read More

Проблема с кодовыми страницами

Developer 6i
Навеяло ;) перестановкой машины у коллеги Имеем Windows XP (возможны варианты) После установки машины с чистого листа поехали шрифты в Oracle Forms, выражается в кракозябрах при выводе сообщений (Alerts) на русском языке. Раньше лечили через Font Substitution (если правильно помню :) ключ в реестре) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes Но как уже упоминал, было это давно. Потом был найден на просторах интернета :) другой способ, т.к. проблемы были не только с Oracle Forms. Это решение - меняем значения для кодовых страниц HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Nls\CodePage Изменяемые строковые параметры Параметр Старое значение Новое значение 1250 c_1250.nls c_1251.nls 1252 c_1252.nls c_1251.nls После чего перегружаем машину и наслаждаемся :P отсутствием проблем с кодировкой.
Read More

Реестр под 64-разрядной Windows

Developer 6i
Реестр 64-разрядных версий Windows подразделяется на 32- и 64-разрядные разделы. Большинство 32-разрядных разделов имеют те же имена, что и их аналоги в 64-разрядном разделе, и наоборот. В 32-разрядной Windows приложения обращаются к ключам реестра HKEY_LOCAL_MACHINE\SOFTWARE\<company>\<product> В 64-разрядной Windows когда 32-разрядные приложения обращаются к реестру HKEY_LOCAL_MACHINE\SOFTWARE\<company>\<product> они на самом деле обращаются к ветке HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\<company>\<product> По умолчанию в 64-разрядных версиях Windows используется отображение ("registry reflector") 32-разрядных разделов в узле WOW6432Node. Процесс отображения прозрачен для 32-разрядных приложений, т.е. они могут получать доступ к разделам реестра так, как будто бы они работали в 32-битном окружении несмотря на то, что данные хранятся в другом месте. Наблюдалась особенность отражения в 64-разрядный ключ: если очищалось значение ключа в 32-разрядной ветке, по какой-то причине не происходил автоматический сброс этого значения в 64-разрядной ветке.
Read More

Создание документов с помощью шаблонов (.dot) в MS Office 2007 и MS Office 2010

Developer 6i
В самых первых проектах формирование MS Word документов было организовано с использованием OLE-технологии (использовался Office XP). Это удобно: создаем шаблон (.dot), а дальше программно создаем документ на основании этого шаблона и подставляем в него необходимые данные. Соответственно, шаблоны хранятся на сети, в определенной папке. При переходе на MS Office 2007 возникла проблема: не формировался документ на основании шаблона. Было выяснено, что виной всему было наличие в вызове полного пути к шаблону. Решилась данная проблема настройкой самого MS Word, для этого в настройках MS Word переопределяем путь к шаблонам (где на сети лежат .dot-файлы) Открываем MS Word Создаем пустой документ Нажимаем кнопку "Office" Выбираем «Параметры Word» Выбираем «Дополнительно» Нажимаем кнопку «Расположение файлов…» Изменяем путь к общим шаблонам Успешно выходим Если будет выводиться ошибка о невозможности прочитать/записать шаблон Normal.dotm, то надо указать/изменить…
Read More

Reports 6i под Windows 7

Developer 6i, Oracle
Последняя версия клиент-серверных приложений Oracle Developer 6i вполне нормально живет под Windows 7. Единственная проблема возникла под 64-разрядной версией Windows 7, при которой из форм невозможно было вызвать отчет. Методика решения ее очень проста, надо заменить всего две dll, а именно: NN60.dll и NNB60.dll, которые можно взять из Oracle Developer 6i Patch 3, или задать в критериях поиска наименования этих двух файлов.
Read More