1) Преобразование строчных букв в прописные с помощью утилиты FC
2) Быстрый переход в любой каталог
3) Сохранение полного образа экрана с помощью Paintbrush
4) Настройка системы оформления счетов для малого офиса с помощью WinWord и Excel
PC Magazine/RE logo
(С) СК Пресс 2S/95
PC Magazine, August 1995, p. 327

Приемы и способы повышения производительности


Преобразование строчных букв в прописные с помощью утилиты FC

Если использовать DOS-программу FC.EXE (сравнение файлов) нетривиальным образом, можно будет решать задачи, о которых создатели этой утилиты и не помышляли. Например, преобразование группы строчных букв в прописные осуществляется весьма просто с использованием причуд обработки ошибочных ситуаций в FC. Подобно многим другим DOS-командам, утилита FC переводит в верхний регистр имена файлов, передаваемые ей в качестве аргументов, и выводит на экран преобразованные значения, когда сообщает об ошибках. Однако, в отличие от большинства других программ, FC допускает перенаправление вывода сообщений об ошибках. Это позволило мне создать командный файл (CAP.BAT) из четырех строк, который осуществляет преобразование букв из строчных в прописные (лист. 1).

Файл CAP.BAT передает второй параметр (%2) командной строки команде FC так, что это гарантированно вызывает ошибку "File(s) not found:..." (файл не найден). Сообщение об ошибке с преобразованной версией исходной строки перенаправляется во временный командный файл FILE($).BAT (Если вы используете адаптированную дл других языков версию DOS, например PC-DOS6.3, это сообщение будет иным. Учтите вид сообщения и соответствующим образом измените текст файла CAP.BAT. - Примеч. пер.) . Когда с помощью оператора CALL происходит вызов этого файла, он запускает на выполнение другой временный файл FILE(S).BAT, - который сохраняет результат преобразования символов в переменной среды, имя который задается в первом параметре (%1) командной строки.

В файле CAP.BAT практически не предусмотрена обработка ошибок и нет команды ECHO OFF, потому что предположил, что эта процедура будет использоватьс исключительно путем вызова (с помощью оператора CALL) из других командных файлов. Если второй параметр командной строки отсутствует, переменная, названная в первом параметре, будет удалена из среды. Данна процедура корректно обращается со строками длиной до 116 символов, содержащими все символы, кроме символов переадресации ввода-вывода (<, > и |) и разделителей (пробела, запятой, точки с запятой, знаков равенства и табуляции).

Вы, вероятно, отметили нетрадиционное расположение символа переадресации вывода (>) в начале строк файла CAP.BAT. Я решил перенести их сюда, поскольку установил, что DOS это "не волнует", и поскольку тогда можно легко выровнять имена файлов и исполняемые части строк, что намного облегчает отладку.

Томас Г. Лаведас
Клифтон, шт. Вирджиния
Лист. 1. Этот крошечный командный файл преобразует строчные символы второго параметра в прописные и присваивает полученное значение переменной среды, заданной в первом параметре. :: CAP.BAT - обобщенная процедура перевода символов в верхний регистр :: :: Синтаксис: :: CALL CAP Имя_переменной=Строка :: > FILE(S).BAT ECHO IF NOT [%1]==[] SET %1=%%5 > FILE($).BAT FC &;%2 NUL CALL FILE($) DEL FILE(?) .BAT

От редакции

Как известно всем консервативным приверженцам DOS, причуды утилит DOS могут предоставить поразительные возможности. В данном случае тот факт, что программа FC.EXE позволяет перенаправить вывод своих сообщений об ошибках, допускает совершенно нетрадиционное использование этой утилиты. Чтобы разобраться в таинствах работы CAP.BAT, мы проследили выполнение команды

CALL CAP.BAT PC magazine

В первой строке командного файла с помощью команды ECHO осуществляется вывод строки IF NOT [PC] == [] SET PC=%5

во временный командный файл FILE(S).BAT. Этот временный файл должен называться именно так по причинам, которые мы изложим чуть позже. В следующей строке происходит вызов команды FC для сравнения файла &;magazine с устройством NUL. Имена файлов в DOS не могут содержать точку с запятой, поэтому файл с таким именем не существует. Программа FC выводит сообщение об ошибке File(s) not found: &;MAGAZINE

Данное сообщение перенаправляется во временный командный файл FILE($).BAT. Этот файл может называтьс как угодно: имя FILE($).BAT было выбрано, чтобы облегчить удаление обоих временных файлов одной командой.

В третьей строке осуществляется вызов файла FILE($).BAT, первая и единственная строка которого запускает на выполнение командный файл FILE(S).BAT, передавая ему пять параметров: <>, <>, ":", "&" и "MAGAZINE". FILE(S).BAT присваивает переменной среды PC значение пятого параметра - MAGAZINE. Наконец, в четвертой строке файла CAP.BAT производится удаление обоих временных файлов.

Заметьте, что ограничение в 116 знаков складываетс из суммы длин преобразуемой строки и переменной, в которой будет храниться эта строка. Но поскольку в данной строке пробелы недопустимы, маловероятно, что это ограничение затруднит вашу работу.

Нил Дж. Рубенкинг

Быстрый переход в любой каталог

Я использовал командный файл 2.BAT в течение многих лет с тех самых пор, как он был представлен в номере журнала PC Magazine от 21 июня 1991 г. Мне нравится с его помощью переходить от каталога к каталогу и накопителя к накопителю. Но как только я подключил средства 32-разрядного доступа к файлам в Windows for Workgroups 3.11, в сеансах DOS под управлением Windows файл 2.BAT перестал работать. Это связано с тем, что несуществующие каталоги командное предложение "IF NOT EXIST %1\NUL" объявляет существующими. Поэтому я создал свою собственную версию данного командного файла. Она обходит ложный положительный результат предложения IF EXIST путем создания файла нулевой длины и затем использует для проверки этот файл, а не устройство NUL. Однако в моей версии не предусмотрено применение обозначений родительского (..) или корневого каталогов (\) без дальнейшей ее корректировки.

Стив Пеплински,
Пуласки, шт. Вашингтон

От редакции

Исходная версия файла 2.BAT (лист. 2) была создана, чтобы позволить вводить "2" с указанием конкретного каталога без необходимости набирать двоеточие и/или обратную косую черту. Я пользуюсь им десятки раз на дню. Для перехода в каталог С:\WINWORD\CLIPART введите "2 c winword clipart". Если вы уже находитесь на диске C:, с работой справится команда "2 winword clipart". А если текущий каталог C:\WINWORD, все, что требуется от вас, - это команда "2 clipart".

Лист. 2. Используйте командный файл 2.BAT для быстрого перемещения между каталогами без необходимости ввода двоеточия или обратной косой черты. @ECHO OFF FOR %%h IN (a A b B c C d D e E f F) DO IF (%1) == (%%h) %%h: FOR %%k IN (a A b B c C d D e E f F) DO IF (%1) == (%%k) SHIFT IF NOT EXIST %1\NUL CD \ FOR %%f IN (%1 %2 %3 %4 %5 %6 %7 %8 %9) DO CD %%f

Командный файл 2.BAT может обработать ряд имен каталогов в своей командной строке как путь либо из корневого, либо из текущего каталога. Он определяет, какой маршрут выбрать, путем проверки, является ли первое имя каталога именем подкаталога текущего каталога. Эту проверку он проводит, выясняя, существует ли устройство NUL в каталоге с таким именем. В обычной версии DOS проверка IF EXIST каталог\NUL даст ответ "истина" только в том случае, если указанный каталог существует.

К сожалению, этот тест не срабатывает в среде некоторых модифицированных версий DOS. Если вы используете DR-DOS 6.x или одну из сетевых операционных систем, результатом выполнения проверки будет "истина", даже когда каталог не существует. Очевидно, то же самое наблюдается и в окне DOS под управлением Windows for Workgroups, когда включены средства 32-разрядного доступа к файлам.

Версия командного файла 2BAT, показанная на лист. 3, не имеет этого ограничения, поскольку она проверяет существование реального файла. А я немного подкорректировал версию м-ра Пеплински, чтобы избежать встретившихся ему проблем с родительским и корневым каталогами. Теперь, например, можно перейти из каталога C:\ACCT\1994 в C:\ACCT\1995 с помощью команды "2 .. 1995". Если исходный 2.BAT у вас срабатывает, все в порядке. Если нет, попробуйте использовать новую версию!

Лист. 3. Командный файл 2NEW.BAT восстанавливает функциональные возможности файла 2.BAT в системах, которые допускают ошибку в обычной проверке DOS на существование каталога. @ECHO OFF REM Если последний накопитель на вашем компьютере имеет обозначение REM меньшее F:, удалите буквы, соответствующие несуществующим REM накопителям из двух последующих команд FOR. REM Если его обозначение больше F:, добавьте необходимые буквы REM в две последующие команды FOR. FOR %%h IN (a A b B c C d D e E f F) DO IF (%1) == (%%h) %%h: FOR %%k IN (a A b B c C d D e E f F) DO IF (%1) == (%%k) SHIFT CTTY NUL REM>%1\$$TEST$$.$$$ CTTY CON IF NOT EXIST %1\$$TEST$$.$$$ GOTO No DEL %1 $$TEST$$.$$$ GOTO Change_Dir :No CD \ :Change_Dir FOR %%f IN (%1 %2 %3 %4 %5 %6 %7 %8 %9) DO CD %%f
Нил Дж. Рубенкинг

Сохранение полного образа экрана с помощью Paintbrush

В вашей весьма содержательной статье по справочной системе Windows (PC Magazine, December 20, 1994, p. 249) был предложен метод "захвата" изображения экрана программ с помощью пакета Paintbrush. Вот более простой метод: для сохранения изображений, которые выходят за размеры окна редактирования Paintbrush: просто вставьте изображение (клавишной комбинацией <Ctrl>+V в Paintbrush и затем (не делая более ничего) выберите пункты меню Edit|Copy to (Редактирование|Копировать в...). Вам будет предложено задать имя файла (можно выбрать также другой формат файла), и все изображение целиком сохранится на диске.

Карстен, Танггаард,
Копенгаген, Дания

От редакции

Если достоинства этого метода вам не ясны, попробуйте выполнить следующее упражнение. Нажмите клавишу <PrtSc> для копирования всего экрана в Clipboard (Буфер обмена). Запустите Paintbrush и нажмите <Ctrl>+V, или (что то же самое) выберите пункт Paste (Вставить) из меню Edit (Редактирование). Выберите пункт Save As... (Сохранить как) из меню File (Файл) и сохраните файл под именем GETRID1.BMP. Теперь создайте новый файл и снова вставьте содержимое буфера в Paintbrush. На этот раз выберите пункт Copy To... из меню Edit и скопируйте изображение в файл GETRID2.BMP.

Эти два итоговых файла имеют один размер, но первый содержит только ту часть изображения, которая была видна в окне редактирования Paintbrush. Чтобы убедитьс в этом, разверните окно Paintbrush и загрузите файл GETRID1.BMP. Затем нажмите <Ctrl>+P, чтобы рассматривать картинку на полном экране. Вы увидите, что она обрезана справа и внизу. Проделайте то же самое с изображением файла GETRID2.BMP, и оно целиком заполнит весь экран!

Нил Дж. Рубенкинг

Настройка системы оформления счетов для малого офиса

Оформление счетов может составить реальную проблему для малого бизнеса, ориентированного на обслуживание. Если вы достаточно удачливы, чтобы оставатьс бизнесменом, у вас, вероятно, слишком много счетов и входящих платежных поручений, чтобы за ними было удобно следить вручную, но все-таки не настолько много, чтобы оправдать приобретение полнофункциональной бухгалтерской программы. Недорогие же программы часто означают для малого бизнеса ориентацию на формат счетов, который пригоден скорее для оплаты товаров, чем услуг.

К счастью, решение под рукой. Свою собственную систему оформления счетов для малого офиса можно легко создать путем сочетания электронной таблицы или СУБД, применяемых для слежения за входящими документами, и пакета Word for Windows, версия 6.0, используемого при печати счетов. В настоящей статье я задействовал версию 5.0 пакета Excel, чтобы отслеживать поступления, но можно применять любую программу электронной таблицы или СУБД, хранящую свою информацию в формате, который может распознать функция подготовки стандартных писем (mail-merge) пакета WinWord.

Полная система обработки счетов, описываемая здесь, состоит из рабочей книги пакета Excel 5.0 - OUTSTAND.XLW - и двух шаблонов WinWord - BILLSVC.DOT и BILLEXP.DOT. Все три файла (плюс еще по одному варианту OUTSTAND.XLW и BILLSVC.DOT) можно получить, переписав файл INVOI.ZIP из раздела Programming Forum сети PC MagNet журнала PC Magazine. Используйте первичные версии двух последних файлов, если не прибавляете налог с оборота к выставляемым к оплате суммам. Если добавляется налог с оборота, применяйте варианты OUTSTANT.XLW и BILLSVCT.DOT.

Я буду предполагать, что вы знакомы с основами работы как в Excel, так и в WinWord. Вам следует, например, знать, как форматировать текст при использовании обеих программ, настраивать ширину колонок, изменять имена отдельных рабочих страниц в Excel и т. д. Но я не предполагаю, что вы знаете, как пользоваться функцией mail-merge из WinWord, чтобы настроить шаблоны стандартных писем. Для использовани рабочей книги Excel необходимо знать только основные моменты, касающиеся ввода текста в Excel и перемещени по ее рабочим страницам. Для применения шаблонов WinWord следует знать лишь основы техники ввода и редактирования текста, выбора подходящего шаблона при создании нового файла и использования инструментальной панели mail merge, которую я буду здесь описывать.

Настройка файлов

Настройка файлов для работы со счетами требует тщательного продумывания и подготовки. Как только вы перепишите и распакуете эти файлы, скопируйте OUTSTAND.XLW (или, если вы добавляете налог с оборота, OUTSTANT.XLW) в любой подходящий каталог с данными Excel. Затем скопируйте два шаблона WinWord - BILLEXP.DOT и BILLSVC.DOT (BILLSVCT.DOT, если прибавляется налог с оборота) - в каталог, где содержатся шаблоны WinWord. Если вы не меняли значение установочных параметров, принятых в WinWord по умолчанию, это должен быть каталог WINWORD, хотя многие пользователи заменяют его на WINWORD\TEMPLATE (Это предусмотрено в русифицированной версии WinWord 6.0. Примеч. пер.) .

Именно туда пакет WinWord помещает все свои образцы шаблонов во время его установки.

Если у вас есть сомнения по части установок текущего каталога для хранения шаблонов, можете выбрать пункт меню Tools | Options (Инструментарий | Функции), затем File Locations (Размещение) и отметить для себя (или изменить) значения в полях User Templates (шаблоны пользователя) и Workgroup Templates (шаблоны рабочей группы). Затем скопируйте два указанных шаблона в любой из двух каталогов, а чтобы удостовериться в том, что копирование выполнено верно, выберите пункт File | New (Файл | Новый) и убедитесь, что два варианта выбора Billexp и Billsvc (или Billsvct) появляются в диалоговом окне New в списке шаблонов.

Следующий шаг заключается в настройке рабочей книги Excel. Если вы загрузите Excel и откроете OUTSTAND.XLW или OUTSTANT.XLW, то увидите рабочую книгу с шестью страницами. Первый лист слева - это страница с итоговыми показателями, которая описывается ниже. Следующие три листа - Client 1, Client 2 и Client 3 - предназначены для отдельных клиентов, которым выписывается достаточно много счетов, поэтому вы хотите отслеживать их особо. Пятая страница - Other Clients - идентична рабочим листам клиентов за тем исключением, что она предназначена для тех клиентов, кто слишком редко прибегает к вашим услугам, чтобы выделять им отдельную страницу. Шестой лист - Client Form - это шаблон, который копируется для создания дополнительных страниц.

До начала работы

Семь раз подумай, потом делай. Сначала определите, для каких клиентов следует выделить отдельные страницы, вместо того чтобы обрабатывать их счета на одном листе с другими заказчиками. Обычно, если только вы не выписываете по нескольку счетов для данного клиента в течение одного рабочего сеанса, отслеживание клиентов по отдельности, вероятно, принесет больше хлопот, чем пользы. Если в эту категорию у вас не попадает ни один клиент, удалите лист с итоговыми показателями и страницы Client 1, Client 2 и Client 3. Однако сохраните лист Client Form: позднее он может понадобиться.

Если у вас все-таки есть клиенты, которых вы хотите выделить в отдельные группы, для каждого из них потребуются отдельные страницы. Дополнительные рабочие листы создаются, если тех трех, что уже имеются в рабочей книге, вам не хватает. Не забудьте решить вопрос о необходимости учета налога с оборота.

В рабочих листах OUTSTAND.XLW предусматривается, что ваши услуги не требуют включения налога с оборота. В них размещены следующие колонки: Inv No (Номер счета), Inv Date (Дата счета), To Who (Кому), Project (Предмет счета), Amount (Сумма), Date Mailed (Дата отправки), Outstanding (Неуплаченная сумма) и Date Paid (Дата оплаты). (Да, мы знаем, что грамматически правильно писать to whom, но, в конце концов, это лишь имя поля.) В колонке Outstanding (столбец G) помещена следующа формула:

=IF (Hx= " ", Ex, 0),

где x - номер текущей строки. Эта формула указывает программе Excel, что если текущая запись не содержит элемента в столбце H (Date Paid), то значение Outstanding должно быть равно значению в столбце E (Amount) в данной строке. Но если в колонке Date Paid есть элемент, свидетельствующий, что счет был оплачен, значение в ячейке колонки Outstanding должно быть равно нулю. (Как обрабатывать частичные платежи, я расскажу позднее.)

Рабочие страницы в OUTSTANT.XLW похожи на только что описанные, но они содержат между колонками Amount и Date Mailed колонку для налога с оборота. Формула в колонке Outstanding (теперь это столбец H) становитс следующей: =IF (Ix=" ", Ex+Fx, 0)

По существу это то же самое, что и в OUTSTAND.XLW, за исключением того, что, если текущая запись не содержит элемента в колонке Date Paid (которая сместилась в столбец I), значение для неуплаченной суммы равно Amount (столбец E) плюс Sales Tax (столбец F).

Если вы пользуетесь OUTSTANT.XLW, вам придетс добавить величину реальной ставки налога с оборота. На каждой клиентской странице в ячейку F4 поместите формулу для расчета этого сбора. Если налог с оборота составляет, например, 8%, формула в F4 будет выглядеть так

=E4*0.08

Затем скопируйте формулу в ячейки F5-F55. (Записи на рабочей странице оканчиваются в 55-й строке, чтобы вы могли распечатать ее на одном листе бумаги, но формулу можно распространить на столько строк, сколько вы захотите.)

Добавление новых клиентов

Как только будут учтены все необходимые налоги с оборота, можно применить команду Insert Worksheet (Вставить рабочую страницу) для добавления стольких дополнительных листов, сколько вам требуется, а затем скопировать шаблон Client Form на каждую новую страницу.

Для копирования шаблона Client Form выделите целиком эту рабочую страницу (щелкните мышью на прямоугольнике в позиции пересечения заголовков строк и колонок) и скопируйте ее в буфер. Затем последовательно переходите к каждой из новых страниц, выбирайте ячейку A1 и нажимайте либо <Shift>+<Ins>, либо <Ctrl>+V или выберите пункт меню Edit | Paste (Редактирование | Вставить). (Конечно, можно было бы и скопировать информацию из буфера, просто нажав <Enter>, но в этом случае придется возвращаться к Client Form и снова копировать эту рабочую страницу в буфер.)

Чтобы завершить подготовку каждой новой рабочей страницы для клиентов присвойте ей имя клиента. Затем наберите это имя в ячейке A1 и введите подходящий начальный номер счета в ячейку A4. В рабочих книгах доступных по сети Mag Net файлов используются значени 101001, 201001, 301001 и 401001 для страниц Client 1, Client 2, Client 3 и Other Clients соответственно. Назначение своего собственного ряда номеров каждой странице клиента позволит применять формулы рабочей страницы для автоматической нумерации счетов. Это также обеспечит идентификацию клиента, которому выписан счет, по первой цифре счета.

Для окончательной отделки перейдите к странице с итоговыми показателями, на которой в столбце A показаны имена всех страниц клиентов, а в столбце B - общий размер неуплаченных сумм по соответствующим страницам. Если вы удаляете какие-то страницы, следует удалить строки, которые им соответствуют, и переименовать оставшиеся записи. Если страницы добавляются, необходимо для них добавить записи, а также переименовать исходные записи, чтобы они соответствовали именам страниц.

Ввод имен для каждой новой страницы в столбец A весьма прост. В столбце B размещена следующа формула: = 'Имя рабочей страницы клиента'!$E$1 где "Имя рабочей страницы клиента" совпадает с именем, выводимым на закладке для этого рабочего листа. Ту же самую процедуру следует выполнять при любом добавлении новых клиентов, вставляя новую страницу клиента и занос записи для нее на страницу с итоговыми показателями.

Проверка рабочей книги

В этот момент в листы клиентов следует ввести какие-то реальные или проверочные данные, чтобы убедиться в правильности работы системы. Номера счетов должны присваиваться с автоматическим приращением, а даты оформления счета, отправки и оплаты должны автоматически преобразовываться к формату Д/М/ГГ, даже если вы вводите только день и месяц. В записях в колонках To Who и Project слова, если они слишком велики, чтобы уместиться на одной строке, должны автоматически переноситься на новую строчку. Все значения в колонке Amount - и в колонке Sales Tax, если используется OUTSTANT.XLW, - необходимо автоматически форматировать как денежные величины с двумя знаками после десятичной точки.

Более важно то, что любые записи в колонке Amount выводились также в колонку Outstanding. Но если вы введете что-нибудь в колонку Date Paid, значению в колонке Outstanding требуется присваивать нулевое значение. Если применяется книга OUTSTANT.XLW, величину налога с оборота при вводе величины Amount необходимо автоматически уточнять, а значению в колонке Outstanding следует присваивать значение суммы величин в полях Amount и Sales Tax.

Замечу также, что Current Total Outstanding (Текуща сумма задолженности) в ячейке E1 должна изменяться, отражая как увеличение суммы задолженности при вводе каждого заказа, так и снижение данного показателя при вводе даты в колонку Date Paid. Это предоставляет собой удобный способ слежения за тем, как много должны вам конкретные клиенты.

Как только вы ввели данные в один или несколько листов клиентов, взгляните на страницу с итоговыми показателями. На ней будет показана текущая сумма задолженности для каждого клиента в колонке B и текуща общая сумма задолженности по всем клиентам в ячейке C1, которая помечена как Current Total Outstanding. Однако, прежде чем можно будет применять эту модель дл создания реальных счетов, необходимо настроить шаблоны WinWord.

Настройка шаблонов WinWord

Начните с запуска WinWord и открытия шаблона BILLSVC.DOT. (Если необходимо прибавлять налог с оборота, используйте BILLSVCT.DOT; в оставшейся части нашего обсуждения все сведения о BILLSVC.DOT также применимы и к BILLSVCT.DOT, если иное не оговорено особо.) Если структура ваших каталогов и места размещения файлов не соответствуют в точности системе, в которой был создан BILLSVC.DOT, вы увидите окно с сообщением, гласящим, что BILLSCV.DOT представляет собой основной документ слияния и что Word не может найти файл источника его данных. Нажмите кнопку Find Data Source (Найти источник данных), и WinWord откроет диалоговое окно Open Data Source (Открыть источник данных). Оно выглядит и работает точно так же, как знакомое вам диалоговое окно File Open (Открыть файл). Окна Drives (Диски) и Directories (Каталоги) применяйте для перехода к тому каталогу, где вы сохранили книгу OUTSTAND.XLW (или OUTSTANT.XLW), определите ее как используемый файл и нажмите OK.

После этого WinWord выведет на экран диалоговое окно, приглашая указать, какой документ (т. е. какой из рабочих листов) следует открыть. Выберите любую из страниц клиентов и нажмите Open (Открыть). WinWord отреагирует на это выводом диалогового окна, и попросит задать имя или диапазон ячеек в поле Name or Cell Range. Из ниспадающего списка выберите ToBill и нажмите OK. Заметьте, что не следует включать метку выбора Format as Mail Merge (Форматировать как документ с заполнениями). Далее WinWord загрузит файл.

Если посмотреть на файл шаблона, то можно увидеть, что он состоит из двух разделов. Раздел 1 - это конверт, а раздел 2 - непосредственно счет. Каждый раздел содержит текст "Put Your Name and Address Here" (Место для имени и адреса), который нужно заменить вашим собственным именем и адресом. В разделе 2 есть также текст "Put Phone Number Here" (Место для номера телефона), который следует заменить на номер вашего телефона. Естественное можно настроить шрифт, расположение текста и т. д. Но будьте осторожны, чтобы не стереть ни поля заполнения, ни два участка текста с маркерами, на которых отображается красным цветом текст "Address Here" (Место для адреса).

Если WinWord настроена на отображение кодов полей, поля заполнения будут показаны в фигурных скобках, причем каждое поле начинается со слова MERGEFIELD. Однако при работе с основным документом есть удобна возможность видеть результаты подстановки значений, а не коды полей. Для такой настройки пакета WinWord выберите пункт меню Tools | Options, затем View (Просмотр) и убедитесь, что метка выбора Field Codes (Коды полей) выключена. Теперь вы увидите либо пол заполнения в двойных угловых скобках (типа <<To_Who>> или <<Inv_No>>), либо реальные данные для выбранной в настоящее время записи в рабочем листе Excel.

Для переключения между режимами отображения имен полей и данных, щелкните на кнопке View Merge Data (Просмотр результата заполнения) - третьей слева кнопке инструментальной панели Mail Merge, которую WinWord автоматически выводит на экран при открытии любого основного документа с полями заполнения. Как правило, вы, когда печатаете счета, захотите видеть реальные данные. Но если вы форматируете или иным образом настраиваете шаблон, то захотите видеть имена полей слияния, поскольку поле исчезает из вида, если в текущей записи оно не заполнено данными.

После того как вы введете свое имя и адрес и будете удовлетворены форматом счета, сохраните шаблон BILLSVC.DOT и повторите те же самые действия с шаблоном BILLEXP.DOT, который предназначен для оформления счета с конкретизацией расходов. BILLEXP.DOT отличается от BILLSVC.DOT только тем, что предоставляет возможность перечислить конкретные статьи расходов. В этом случае нет необходимости в версии с учетом налога с оборота, поскольку к развернутым счетам налог с оборота не добавляется. Когда вы занесете свой адрес в файл BILLEXP.DOT и настроите формат по своему вкусу, вы готовы к использованию системы работы со счетами.

Формирование счетов

Чтобы создать счета для одного или нескольких клиентов перейдите к каждому из соответствующих листов в книге и введите дату счета, имя физического или юридического лица, которому вы выставляете счет, предмет счета (наряду с любым описанием, которое вы захотите добавить, длиной вплоть до максимально допустимых 255 символов на одну ячейку в программе Excel), сумму и дату, когда вы рассчитываете отправить счет (обычно она соответствует дате его оформления). Для счетов с конкретизацией издержек введите общие суммы по всем видам расходов в колонку Amount, а дл обычных счетов, если вы прибавляете налог с оборота, очистите поле в колонке Tax данной строки.

После того как вы введете информацию для всех счетов, которые планируете напечатать в данном сеансе, сохраните и закройте файл. Затем переключитесь на WinWord или запустите его. Выберите пункт меню File|New и - предположим, что вы выписываете счет за услуги, а не за издержки, - выберите BILLSVC как используемый шаблон и нажмите OK. WinWord начнет открывать файл и выведет диалоговое окно Open Workbook, чтобы позволить вам выбрать рабочую страницу. Укажите рабочую страницу, содержащую данные, которые нужны вам для оформлени счетов, и нажмите Open. Затем выберите пункт ToBill в окне списка Name or Cell Range и нажмите OK.

Теперь вы будете работать с документом, который представляет собой копию шаблона BILLSCV.DOT. Как отмечено выше, можно нажать кнопку View Merge Data, чтобы видеть реальные данные для каждой записи в процессе перемещения по записям и распечатки счетов. У вас есть два способа перехода от записи к записи.

Пользователи, имеющие мышь, найдут необходимые средства управления на инструментальной панели Mail Merge. Справа рядом с кнопкой View Merge Data расположены две кнопки, окошко для ввода текста и еще две кнопки. Перечислим их слева направо: First Record переводит указатель на первую запись рабочей страницы; Previous Record - на предыдущую запись; текстовое окно Go To Record позволяет указать номер нужной записи непосредственно; Next Record - перемещает указатель на одну запись вниз по рабочему листу; Last Record - на последнюю запись в диапазоне ToBill.

Если вы предпочитаете пользоваться клавиатурой, этот шаблон содержит меню с теми же самыми командами и еще одной дополнительной. Меню содержит дополнительный пункт Records (Записи) справа от меню Help. "Горячая" комбинация клавиш для его вызова - <Alt>+<R>. Это меню имеет следующие пункты: First Record (<Alt>+<R>, <F>), Last Record (<Alt>+<R>, <L>), Next Record (<Alt>+<R>, <N>), Previous Record (<Alt>+<R>, <P>), Go To Record (<Alt>+<R>, <G>) и Find Record (<Alt>+<R>, <R>). Первые четыре совпадают по своему назначению с одноименными кнопками на инструментальной панели. Go To Record позволяет редактировать содержимое соответствующего текстового окна, не прибегая к использованию мыши. Find Record выводит диалоговое окно, позволяющее найти конкретную запись в любом поле базы данных.

Вывод на печать

Для распечатки ваших счетов просмотрите свои записи, чтобы найти первую, которую хотите распечатать. Самый простой способ выделить только что введенные записи, состоит в поиске текущей даты. Затем введите адреса дл счета на конверте и для самого счета. Шаблон позволяет вводить эти адреса порознь, потому что зачастую они отличаются.

Не стоит забывать, что есть возможность сохранени нового адреса в форме элемента автотекста при первом его введении. Таким образом в будущем вы сможете вставлять его в счета путем ввода сокращения дл автотекста и нажатия клавиши <F3>. (Если вы не знакомы с функцией автотекста WinWord, подробности о ней можно узнать в пункте меню справки Help | Search, найд строку "Creating AutoText" (Создание элементов автотекста.)

После ввода адреса для текущего счета, распечатайте его с помощью команды File|Print, при необходимости сохранив копию файла на диске. Затем перейдите к следующей записи. Когда вы распечатаете все счета из текущей рабочей страницы, закройте файл. Если необходимо напечатать дополнительные счета с другого рабочего листа, откройте еще один новый файл и выберите другой рабочий лист.

Процедура по формированию счета с конкретизацией расходов похожа на описанную выше, за исключением того, что шаблон BILLEXP.DOT содержит таблицу. Для ввода отдельных статей расходов сначала занесите соответствующую дату в конец строки "Out-of-pocket Expenses through" ("Оплатите следующие издержки") непосредственно над таблицей. Затем перечислите каждую позицию счета, размещая ее наименование в третьей, а сумму в четвертой колонке слева. Для подсчета общей суммы выделите поле формулы в последней строке таблицы и нажмите <F9> для обновления значения поля. Обратите внимание на строку под таблицей, набранную красным цветом, в которой содержатся слова "Total in Worksheet" (Всего на рабочей странице) и имеется поле <<amount>>. Используйте ее для проверки, что итог, рассчитанный здесь, совпадает с суммарным показателем по листу, и не забудьте удалить эту строку до печати счета.

Когда вы получите документ об оплате, откройте OUTSTAND.XLW (или OUTSTANT.XLW) и введите дату платежа как для того, чтобы вы знали о его приходе, так и чтобы вычесть его размер из общей суммы неоплаченных счетов. Если ваш счет оплачен частично, просто повторно введите сумму для этой записи, равную исходной величине за вычетом суммы частичного платежа, и поместите дату и сумму в колонку, расположенную справа от колонки Date Paid. Это позволит вам следить за недоплатами, в то же время сохраняя точные значения сумм выставленных к оплате счетов. Когда вы получите остальное, вновь перенесите правильную общую сумму в колонку Amount и дату последнего платежа в колонку Date Paid.

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

М. Дэвид Стоун, внештатный редактор PC Magazine