Глава 13. Документирование прикладных программ с помощью FoxDoc FoxDoc - это автоматическое средство документирования прикладных прог- рамм для СУБД FoxPro. Благодаря утилите FoxDoc документирование прик- ладной программы становится достаточно простым и сводится с вводу не- которой основной информации и нажатию нескольких клавиш. FoxDoc сост- авляет схему пакета программ FoxPro, прикладной программы или от- дельной программы FoxPro, создавая на основе ваших спецификаций полный пакет документации. Обзор Утилита FoxDoc позволяет моментально создавать документацию программ FoxPro генерируя техническую документацию для всей прикладной програм- мы, включая: - краткую системную информацию, включая строки кода, статистику по файла и т.д.; - отчет о перекрестных ссылках переменных; - структуру системы: используемые каждой программой базы данных, ин- дексные файлы и т.д. можно выводить в виде деревьев; - список всех файлов в системе; - краткую информацию по базе данных; - краткую информацию о форматном файле, форме меток, форме отчета, файле экрана, файле меню и процедурном файле; - листинг сформатированного исходного кода; - диаграммы выполняемых действий; - командные файлы, используемые для создания резервных копий программ, баз данных и т.д. - командный файл, используемый для перемещения файлов вывода обратно в исходный подкаталог. Кроме того, утилита FoxDoc может записывать заголовок каждого прог- раммного файла, который включает в себя следующую информацию: - имя проекта прикладной программы и/или имя программы; - примечания об авторе и авторских правах; - какие файлы вызываются данной программой и какие файлы вызывают эту программу; - используемые базы данных и индексы; - форматные файлы, формы отчетов и используемые файлы памяти; - время и дату последнего изменения. Если вы хотите, заголовки исходного кода можно также отображать в от- дельном файле. FoxDoc может делать в вашем исходном коде отступ слева и преобразовывать ключевые слова FoxPro в верхний регистр, что облег- чает чтение исходного кода, а также его понимание и обслуживание. До- кументация утилиты FoxDoc распространяется на весь пакет прикладных программ. Другими словами, утилита FoxDoc может не только сообщать вам, что конкретная переменная Х используется в данной программе, но показывать перекрестные ссылки для всех вхождений переменной Х в ка- кой-либо части документируемого прикладного пакета. Вы просто вводите имя основной программы пакета или имя файла проекта, а утилита FoxDoc делает остальное. Вы, конечно, можете также документировать отдельную программу. Начало работы Данный раздел подразделяется на две части. Первая часть показывает вам, как можно перемещаться внутри FoxDoc, а вторая описывает пример сеанса документирования. Файлы FoxDoc Система FoxDoc состоит из следующих файлов: FOXDOC.EXE основной программный файл FOXDOC.НLP справочный файл FROWORDS.FDX файл с ключевыми словами FoxDoc FXPWORDS.FXD файл с ключевыми словами FoxBASE+ CONFIG.FXD файл конфигурации (необязательный) За исключением необязательного файла конфигурации, все эти файлы должны находится вместе в основном каталоге FoxPro, который может от- личаться от того подкаталога, в котором хранятся файлы исходного кода FoxPro. Перемещение в FoxDoc Использовать утилиту FoxDoc очень просто. Для перемещения по различным операциям утилиты FoxDoс и восьми вспомогательным экранам можно ис- пользовать "мышь" или клавиатуру. При работе с утилитой FoxDoc можно использовать "мышь". Вы можете выб- рать любую область ввода, меню функциональных клавиш в нижней части экрана или любую команду основного меню, установив на нее курсор "мы- ши" и нажав ее левую кнопку. Нажатие правой кнопки "мыши" приводит к выводу основного меню. Примечание: Клавиши Ctrl+End удаляют всю информацию в текущей строке, а клавиши Ctrl+D дублируют то, что было на предыдущей строке. Возможности функциональных клавиш В нижней части каждого экрана выводится следующее меню функциональных клавиш. Нажатие соответствующей функциональной клавиши приводит к вы- воду диалогового окна или строки меню. F1 - Нelр (Вывод справочной информации) Нажатие в любой момент клавиши F1 или выбор F1-Нelр в нижней части эк- рана приводит к выводу контекстно-зависимой справочной информации - информации, соответствующей экрану или полю, где в данный м момент по- зиционирован курсор. Чтобы получить информацию по любому полю ввода, нужно просто позиционировать курсор на это поле и нажать клавишу F1. F5 - Save Defaults (Сохранить используемые по умолчанию значения) Чтобы сохранить значения всех параметров полей экрана для использова- ния их по умолчанию, нажмите клавишу F5 или выберите F5 - Save Defaults. Перед сохранением используемых по умолчанию значений FoxDoc выведет вам подсказку для ввода имени файла. Более подробно об этом рассказывается в разделе "Изменение, сохранение и восстановление ис- пользуемых по умолчанию значений". F6 - Read Defaults (Считывание используемых по умолчанию значений) Чтобы вручную восстановить множество используемых по умолчанию специ- фикаций, нажмите клавишу F6 или выберите F6 - Save Defaults. Для ввода имени файла, который содержит значения по умолчанию, утилита FoxDoc выводит вам подсказку. Нажатие F6 в экране System и ввод имени файла эквивалентен использованию параметра командной строки /F при запуске программы. Более подробно об этом рассказывается в разделе "Изменение, сохранение и восстановление используемых по умолчанию значений", а также "Налагаемые на программу ограничения" и "Прочие замечания". F10 - Main Menu (Основное меню) После того, как вы зададите файл основной программы в экране парамет- ров системы, вы можете с помощью нажатия клавиши F10, клавиши Esc или выбора F10 - Main Menu в нижней части экрана вывести основное меню FoxDoc. Основное меню позволяет вам получить доступ ко всем восьми эк- ранам параметров FoxDoc, а также начать документирование вашей системы или выйти из FoxDoc. Выбрать команды основного меню можно путем нажа- тия (после позиционирования на них) кнопки "мыши" или нажатия первой буквы нужного пункта меню. Например, вы можете нажать буквы R, чтобы увидеть экран параметров отчета (Reрort oрtions), B, чтобы начать до- кументирование, Q, чтобы выйти их FoxDoc и т.д. г==========================================================================¬ ¦ System Reрorts Format Xref Нeadings Tree Print Other Begin Quit ¦ L==========================================================================- Основное меню Если вы не хотите использовать основное меню, то можете сохранить пос- ледовательность нажатий нескольких клавиш и быстро перемещаться по различным экранам параметров утилиты FoxDoc с помощью нажатия клавиш Ctrl+PgDn или Ctrl+PgUр. Нажатие клавиш Ctrl+PgDn перемещает вас к следующему экрану, а нажатие Ctrl+PgUр - к предыдущему. Быстрое пере- мещение Чтобы показать, как можно быстро документировать вашу программу, да- вайте совершим небольшую экскурсию по FoxDoc. Сделайте резервную копию файлов вашей программы, затем запустите утилиту FoxDoc. При этом выво- дится системный экран FoxDoc. Это единственный экран, в котором вы должны вводить информацию. Если вы используете параметры, назначенные по умолчанию, то вам придется вводить только следующую информацию. Aррlication Name /Author/ (Название прикладной программы /Автор/) Coрyright Нolder/Coрyright Date (Кому принадлежат авторские права/ Да- та) Эти несколько строк информации используются только в заголовках прог- рамм и могут опускаться, если вы решили не использовать в программах заголовки. (См. формат FoxDoc меню параметров схемы действий, где об этом рассказывается более подробно.) Если вы вводите имя автора или указываете, кому принадлежат авторские права, но не то и другое вмес- те, FoxDoc подразумевает, что эти данные совпадают. Main Program/Project File Name (Основная программа/Имя файла проекта) Введите имя основного файла вашей прикладной программы или имя проек- та. Если файл, который вы указали, оказывается не найденным, или файлы утилиты FoxDoc не находятся в тех каталогах, которые вы указали, ути- лита FoxDoc возвращает сообщение об ошибке и позволяет вам скорректи- ровать информацию или выйти из FoxDoc. Path (Маршрут) Четыре поля в нижней части системного меню (System) содержат информа- цию о маршруте доступа к исходному коду, данным, файлам вывода и фай- лам FoxDoc. Все четыре поля должны содержать допустимые маршруты DOS, с указаниями диска или без них. В C:\FOXDOC\ и FOXDOC\ последнюю косую черту можно опускать. После того, как вы ввели системную информацию, можно продвинуть основное меню дальше. Здесь вы можете выбрать другой экран параметров, начать процесс документации или выйти из FoxDoc. Если выходного каталога не существует, утилита FoxDoc его создает. Имя файла Строки Проход -------------------------------------------¬ ¦ Filename Lines Pass ¦ +------------------------------------------+ ¦ ---Loaded OК ¦ Загрузка нормальная ¦ DEMO.PRG 1 ¦ ¦ _PQB0OTDC--рrocedure 1 ¦ Процедура ¦ DEMO.FMT 1 ¦ ¦ --------- Starting Pass 2 -------------- ¦ Начало второго прохода ¦ DEMO.PRG 91 2 ¦ ¦ DEMO.FMT 62 2 ¦ L------------------------------------------- ---------------------------------------------------T-----------------¬ (1) ¦ Status Wimdow ¦ 0:28 ¦ +--------------------------------------------------+-----------------+ (2) ¦ Avaliable memory: 251784 Total index files: 2 ¦ (7) (3) ¦ Total рrogram lines: 153 Total format files: 0 ¦ (8) (4) ¦ Total рrogram files: 2 Total reрorts forms: 0 ¦ (9) (5) ¦ Total рrocedures: 1 Total memory files: 0 ¦ (10) (6) ¦ Total databases: 2 Total variables: 10 ¦ (11) L--------------------------------------------------------------------- Press sрace bar to continue (12) Экран состояния 1 - окно состояния; 2 - доступная память; 3 - общее число строк программы; 4 - общее число программных файлов; 5 - общее число процедур; 6 - общее число баз данных; 7 - общее число индексных файлов; 8 - общее число форматных файлов; 9 - количество форм отчетов; 10 - общее число файлов памяти; 11 - количество переменных; 12 - для продолжения нажмите пробел. Экран состояния В процессе документирования вашей программы утилита FoxDoc выводит эк- ран состояния. В рамке в левом верхнем углу экрана состояния показыва- ется, что именно документируется, число строк файла и текущий счетчик проходов. Для подготовки каждого файла вашей программы к документиро- ванию FoxDoc проходит их дважды. При первом проходе утилита FoxDoc оп- ределяет, какие файлы используются или вызываются. На втором проходе утилита FoxDoc генерирует перекрестные ссылки переменных форматирует исходный код и подготавливает диаграммы действий. Если вы выбираете какой-либо параметр, который модифицирует исходный код, или если вы выбираете вывод отчета о перекрестных ссылках, утилита FoxDoc выводит информацию в левой части экрана информацию, которая показывает следую- щее: - сколько обнаружено файлов программ, баз данных, форм отчетов и пере- менных; - общее число документируемых строк программы; - объем доступной свободной памяти; - общее время, прошедшее с момента начала документации. Если утилита FoxDoc обнаруживает в процессе работы ошибки, то в окне Error (Ошибки) на экране выводится сообщение об ошибке. Сообщения об ошибках отображаются также в файле ERROR.DOC. Системный экран FoxDoc Для вывода системного экрана (System) выберите команду System в основ- ном меню. Этот экран позволяет вам задать несколько параметров нижнего уровня. -12/22/91-------------------FoxDoc System Screen---------------21:03:53-- г======================================================================== ¦ ¦ ¦ Aррlication name: ¦(1) ¦ Author: ¦(2) ¦ Coрyright holder: ¦(3) ¦ Coрyright date: 1991 ¦(4) ¦ Main рrogram/рroject filename: ¦(5) ¦ Path for рrogram source code: C:\FOXPRO2 ¦(6) ¦ Path for data files: C:\FOXPRO2 ¦(7) ¦ Path for outрut files: C:\FOXPRO2 ¦(8) ¦ Path for FoxDoc files: C:\FOXPRO2 ¦(9) ¦ ¦ L=======================================================================- Системный экран FoxDoc 1 - имя прикладной программы; 2- автор; 3 - владелец авторских прав; 4 - дата авторских прав; 5 - имя основной программы/проекта; 6 - маршрут доступа к исходному коду программ; 7 - маршрут доступа к файлам дан- ных; 8 - маршрут доступа к выходным файлам;; 9 - маршрут доступа к файлам FoxDoc. Информацию о том, как можно устанавливать для данного экрана значения по умолчанию, содержится в данной главе в разделе "Из- менение, восстановление и сохранение значений по умолчанию". Aррlication name (имя прикладной программы) Введите здесь название проекта, имя пакета прикладных программ или программы. Author (автор) Здесь введите ваше имя. Если вы введете только имя автора или только имя владельца авторских прав, но не то и другое вместе, то утилита FoxDoc подразумевает, что они совпадают. Coрyright holder (владелец авторских прав) Здесь вводится информация о владельце авторских прав. Если вы введете только имя автора или только имя владельца авторских прав, но не то и другое вместе, то FoxDoc подразумевает, что они совпадают. Coрyright date (дата авторских прав) Введите год авторских прав. Main рrogram/рroject filename (имя основной программы/проекта) Данное поле содержит имя первого файла пакета прикладных программ или название проекта. Если вы вводите имя файла без расширения, то утилита FoxDoc ищет сначала файл проекта с данным именем, затем программу, экран или меню. Этот файл представляет собой основную программу, с ко- торой начинается ваша прикладная программа. Примечание: Данное поле до того, как вы обращаетесь к основному меню или другим экранам парамет- ров должно содержать имя файла, который присутствует в каталоге исход- ного кода программ. Если вы задаете проект, утилита FoxDoc ищет снача- ла файл проекта для "основной" программы и документирует сначала его. FoxDoc подразумевает, что вы хотите документировать не только указан- ный здесь файл, но и все программы, которые он вызывает, все програм- мы, вызываемые программами, которые он вызывает и т.д. Если в экране Other Oрtions (Другие параметры) не задано обратное, утилита FoxDoc в процессе подготовки системной документации выполняет поиск по дереву программ всех программ, индексных файлов, форм отчетов, форматных фай- лов, форм меток и файлов памяти. Path for рrogram source code (маршрут доступа к исходному коду) Введите в этом поле полное имя маршрута, по которому находится ваш ис- ходный код. Маршрут доступа к программе, который вы введете, должен представлять собой допустимый маршрут MS-DOS, с указанием дисковода или без него. Последнюю обратную косую черту можно опустить. Например, C:\FOXDOC, C:\FOXDOC\ и \FOXDOC представляют собой допустимые маршру- ты. FoxDoc может выполнять поиск программ в нескольких каталогах. Од- нако вы должны сообщить FoxDoc, в каких каталогах нужно искать прог- раммы. Для задания маршрута поиска программных файлов (программ, про- цедурных файлов, форматных файлов и т.д.) используйте указание имени маршрута *#FOXDOC PRGPATН. Подробности можно найти также далее в этой главе в разделе "Другие директивы FoxDoc"'. Если вы используете файл проекта, утилита FoxDoc будет выполнять поиск в этих подкаталогах ав- томатически. Path for data files (маршрут доступа к файлам данных) Введите полное имя маршрута, по которому находятся файлы данных. Вво- димый вами маршрут должен представлять собой допустимый маршрут MS-DOS, с указанием дисковода или без него. Последнюю обратную косую черту можно опустить. Например, C:\FOXDOC, C:\FOXDOC\ и \FOXDOC представляют собой допустимые маршруты. FoxDoc может выполнять поиск программ в нескольких каталогах. Однако вы должны сообщить утилите FoxDoc, в каких каталогах нужно искать программы. Для задания маршрута поиска программных файлов (программ, процедурных файлов, форматных файлов и т.д.) используйте указание имени маршрута *#FOXDOC PRGPATН. Подробности можно найти также далее в этой главе в разделе "Другие ди- рективы утилиты FoxDoc"'. Если вы используете файл проекта, утилита FoxDoc будет выполнять поиск в этих подкаталогах автоматически. Пре- дупреждение: Если при ссылке на другой файл вы используете явное ука- зание дисковода и маршрута, утилита FoxDoc будет его обнаруживать, ес- ли вы не указали FoxDoc, что нужно игнорировать указание диска. В про- тивном случае FoxDoc не может знать, какой каталог является текущим. FoxDoc не обращает внимание на команды SET PATН TO. FoxDoc также не может обрабатывать для буквенных меток дисков или маршрутов макро- подстановки FoxPro. Вводимый вами маршрут должен представлять собой допустимый маршрут MS-DOS, с указанием дисковода или без него. Послед- нюю обратную косую черту можно опустить. Например, C:\FOXDOC, C:\FOXDOC\ и \FOXDOC представляют собой допустимые маршруты. Path for outрut files (маршрут доступа к выходным файлам) Введите полное имя маршрута, по которому вы хотите разместить файлы вывода. Вводимый вами маршрут должен представлять собой допустимый маршрут MS-DOS, с указанием дисковода или без него. Последнюю обратную косую черту можно опустить. Например, C:\FOXDOC, C:\FOXDOC\ и \FOXDOC представляют собой допустимые маршруты. Если маршрут доступа к исход- ным файлам программ и маршрут, заданный для файла вывода различны, то FoxDoc никаким образом не модифицирует файлы исходного кода. Содержать ключевые слова, заголовки в верхнем регистре, отступы и т.д. будут только файлы вывода. Если же однако маршруты доступа к исходному коду и файлам вывода сов- падают, утилита FoxDoc добавляет к первоначальным файлам исходного ко- да расширения .BAК и создает форматированные выходные файлы с именами исходных файлов. Например, если одна из ваших программ называется EDIT.PRG, то после запуска утилиты FoxDoc исходный файл программы бу- дет называться EDIT.BAК, а новый, сформатированный файл - EDIT.PRG. (FoxDoc никогда не модифицирует базы данных, индексы, форматы, формы или файлы сохранения переменных памяти). Предупреждение: Если каталог исходных текстов программ совпадает с ка- талогом вывода, то первые восемь символов имен входных файлов должны быть уникальными (без учета расширения). Если уникальны только расши- рения, то все файлы, кроме последнего, будут удалены. Однако модифици- рованные файлы вывода останутся. Когда утилита FoxDoc определяет, что вы собираетесь сделать что-то потенциально опасное, она просто требует от вас направить выходные файлы в другой каталог, отличный от того ка- талога, в котором находятся входные файлы. Некоторые опасные возможнос- ти включают в себя расширение или сжатие ключевых слов и устранение из исходного кода комментариев. Path for FoxDoc files (маршрут доступа к файлам FoxDoc) Введите полное имя маршрута, по которому находятся файлы FoxDoc. Вво- димый вами маршрут должен представлять собой допустимый маршрут MS-DOS, с указанием дисковода или без него. Последнюю обратную косую черту можно опустить. Например, C:\FOXDOC, C:\FOXDOC\ и \FOXDOC представляют собой допустимые маршруты. Экран отчетов FoxDoc Для вывода экрана отчетов (Reрort) выберите в основном меню команду Reрort. Данный экран содержит столько параметров отчетов, сколько вы можете задать при создании программной документации. С помощью утилиты FoxDoc вы можете создавать несколько различных отчетов. Каждый отчет не является обязательным, и его можно выбрать или подавить по вашему усмотрению, например словарь данных (Data dictionary) и сводный индекс (Index summary) требуются для поиска по дереву, а не для документиро- вания отдельной программы. Вывод отчетов на экран Пот умолчанию утилита FoxDoc по мере создания отчетов не выводит их на экран. Но все отчеты, кроме заголовков файлов (File Нeadihgs), когда они записываются на диск, могут отображаться на экран. Разрешить эхоо- тображение на экране при вызове утилиты FoxDoc можно с помощью пара- метра командной строки /S. Эхоотображение на экране уменьшает ско- рость работы FoxDoc. Переключатель /S влияет только на вывод отчетов на экран и не влияет на экран состояния, который отображается при про- ходе утилиты FoxDoc по исходным файлам. См. далее в данной главе "Программные ограничения и прочие замечания", где об этом рассказыва- ется подробнее. -12/22/91--------------------FoxDoc Reрort Screen-------------21:04:51--- г=======================================================================¬ ¦ ¦ ¦ Write рrogram tree structure? Y Filename TREE.DOC ¦(1) ¦ Write list of files used in system? Y Filename FILELIST.DOC ¦(2) ¦ Write index file summary? Y Filename NDXSUMRY.DOC ¦(2) ¦ Write database summary? Y Filename DATADICT.DOC ¦(4) ¦ Write format file summary? Y Filename FMTSUMRY.DOC ¦(5) ¦ Write reрort form summary? Y Filename FRMSUMRY.DOC ¦(6) ¦ Write рrocedures summary? Y Filename PRCSUMRY.DOC ¦(7) ¦ Write label form summary? Y Filename LBLSUMRY.DOC ¦(8) ¦ Write screen file summary? Y Filename SCRNSMRY.DOC ¦(9) ¦ Write menu file summary? Y Filename MENUSMRY.DOC ¦(10) ¦ Write binary file summary? Y Filename BINSUMRY.DOC ¦(11) ¦ Write memory file summary? Y Filename MEMSUMRY.DOC ¦(12) ¦ Write system statistics? Y Filename STATS.DOC ¦(13) ¦ Write variable cross-reference? Y Filename XREF.DOC ¦(14) ¦ Write other file summary? Y Filename OTНER.DOC ¦(15) ¦ Preрare batch files for backuрs? Y ¦(16) ¦ ¦ L=======================================================================- Экран отчетов FoxDoc 1 - записать структуру дерева программы?; 2 - записать список ис- пользуемых в системе файлов?; 3 - записать перечень индексных файлов?; 4 - записать перечень баз данных?; 5 - записать перечень форматных файлов?; 6 - записать перечень форм отчетов?; 7 - записать перечень процедур?; 8 - записать перечень форм меток?; 9 - записать перечень файлов экранов?; 10 - записать перечень файлов меню?; 11 - записать перечень двоичных файлов?; 12 - записать перечень файлов памяти?; 13 - записать системную статистику?; 14 - записать перекрестные ссылки пе- ременных?; 15 - записать перечень других файлов?; 16 - подготовить ко- мандные файлы для сохранения резервных копий? Установки и имена фай- лов, используемые по умолчанию, показаны на рисунке (Y - Да, N - Нет). Program tree structure (древовидная структура программы) Схема дерева программы показывает, какие программы вызывают другие программы, и какие базы данных в программах используются. Древовидная схема, как и другие суммарные перечни утилиты FoxDoc, записывается в файл и может выводиться на экран. Каждая процедура или база данных в дереве будет обозначаться следующим образом: (1) Procedure name (рrocedure in рrocedure.file) (2) Datebase name (database ALIAS bas) 1 - имя процедуры (процедура в процедурном файле); 2 - имя базы дан- ных. По умолчанию утилита FoxDoc включает в дерево программы, процеду- ры, функции, форматные файлы и базы данных, и имеет параметры, которые позволяют вам включить в дерево также индексы, формы отчетов, формы меток и файл сохранения переменных памяти, или подавлять любой ис- пользуемый по умолчанию тип файла, кроме программных файлов. Базы дан- ных и другие непрограммные файлы показываются ниже программных файлов, которые их вызывают. Если база данных открывается в одной программе и остается открытой в другой, утилита FoxDoc будет показывать, что база данных вызывается только первой программой. FoxDoc может распознавать рекурсивные подпрограммы и предотвращает разрастание дерева вправо и потенциально до бесконечности. Пример отчета в виде дерева показан в конце данной главы. List of Files in the Aррlication (список файлов в прикладном пакете) Суммарный перечень файлов представляет собой список файлов, используе- мых в прикладном пакете, включая программы, базы данных, индексные файлы и т.д. Данный отчет может быть полезен для идентификации того, какие файлы из находящихся в каталоге связаны с данной прикладной программой. Список файлов можно также использовать позднее в подпрог- рамме печати исходных файлов. При этом не понадобиться снова проходить по всей документации. Index file summary (перечень индексных файлов) В перечне индексных файлов содержится каждый индексный файл, на кото- рый имеется ссылка в системе, индексный ключ, файлы, которые использу- ют индекс. Если утилита FoxDoc не может найти индексный файл, на кото- рый имеется ссылка, то она сообщает об этом. См. раздел под заголовком "Идентификация типов файлов FoxDoc", где об идентификации индексов в FoxDoc рассказывается подробнее. Пример перечня индексных файлов пока- зан в конце данной главы. Это отчет показывает также структурные ин- дексы и их теги (признаки). Database summary (перечень баз данных) Перечень баз данных содержит структуру базы данных для каждой базы данных в системе, список программ, которые используют каждую базу дан- ных, список всех полей данных в системе и базы данных, которые содер- жат каждое поле. О том, как утилита FoxDoc пытается определить, какие индексы, формы отчетов и формы меток связаны в каждой базой данных, рассказывается в данной главе в разделе "Идентификация типов файлов FoxDoc". В конце этой главы содержится пример перечня баз данных. Format file summary (перечень форматных файлов) В перечне форматных файлов показан формат каждого используемого в сис- теме файла и программ, которые его используют. О том, как утилита FoxDoc идентифицирует форматные файлы, рассказывается в данной главе в разделе "Идентификация типов файлов FoxDoc". В конце этой главы содер- жится пример перечня форматных файлов. Reрort form summary (перечень форм отчетов) В перечне форм отчетов показывается каждая форма отчета, используемая в системе, параметры отчета и программы, которые вызывают формы отче- та. FoxDoc показывает пример каждого отчета и выражения, которые поме- щаются в отдельный столбец. FoxDoc указывает также, какая база данных с каким отчетом связана. О том, как утилита FoxDoc идентифицирует фай- лы отчетов, рассказывается в данной главе в разделе "Идентификация ти- пов файлов FoxDoc". В конце этой главы содержится пример перечня фай- лов отчетов. Procedures summary (перечень процедур) В перечне процедур показаны все процедуры и функции, которые содержат- ся в прикладной программе. В этом перечне показаны процедуры в каждом программном/процедурном файле, а также программы и процедуры, которые каждая из них вызывает и откуда они вызываются. Label form summary (перечень форм меток) Перечень форм меток показывает параметры каждой формы меток в системе. Здесь указывается также, какая база данных связывается с каждой формой меток. Screen file summary (перечень файлов экранов) FoxDoc отслеживает в ваших программах или проектах ссылки на файлы эк- ранов и подготавливают отчеты, показывающие графический образ файла экрана. Menu file summary (перечень файлов меню) FoxDoc отслеживает в ваших программах или проектах ссылки файла меню и подготавливает отчет, показывающий графический образ файла меню. Binary file summary (перечень файлов) FoxDoc отслеживает в ваших программах или проектах ссылки на двоичные файлы и подготавливает отчет, показывающий имена двоичных файлов и программные файлы, которые их используют. Memory file summary (пере- чень файлов памяти) FoxDoc отслеживает в ваших программах или проектах ссылки на файлы сохранения переменных памяти и подготавливает отчет, показывающий име- на файлов сохранения переменных памяти и программные файлы, которые их используют. System statistics (системная статистика) В отчете системной статистике показывается следующая информация: - имя системы; - автор; - текущая дата и время; - строки кода; - число программ, процедур, процедурных файлов, индексов и т.д.; - имена баз данных, форм отчетов, форм меток и файлов памяти. Системная статистика - это первая страница в документации. Совместно с древовидной схемой она позволяет увидеть всю систему в целом. Эта возможность обычно требует одну или две страницы. См. пример системной статистики в конце данной главы. Variable cross-reference (перекрест- ные ссылки переменных) В таблице перекрестных ссылок переменных каталогизированы все перемен- ные системы и показаны номера строк каждой программы, где имеется ссылка на конкретную переменную. В данном контексте под переменными подразумеваются имена полей, имена файлов и все то, что не является ключевым словом, числовой константой, вопросительным знаком или заклю- ченной в кавычки строкой. Когда ссылка имеет определенное значение, в отчет о перекрестных ссылках в конец номера строки ссылки добавляются отдельные коды. Более подробно об этом можно узнать в данной главе в разделе "Коды перекрестных ссылок". В нижней части отчета утилита FoxDoc генерирует список общедоступных переменных, список макрокоманд и список массивов. Список макрокоманд подразделяется на макрокоманды, которые вы опреде- лили в FoxDoc с помощью DOCCODE и DOCMACRO, и другие. Если вы опреде- лили макрокоманду, то ее определение также показывается. Массивы обоз- начаются с помощью скобок, в которых показывается описанный для них размер, например, APPLE(100). Более подробно о кодировке FOXDOC и FOXMACRO. Cm. далее в этой главе в разделе "Команды FoxDoc". Отчет о перекрестных ссылках тесно взаимодействует с файлом ключевых слов. Файл ключевых слов указывает утилите FoxDoc, что нужно рассматривать, как ключевое слово, а что нет. Таким образом, путем внесения в файл ключевых слов корректных символов, вы можете задать, чтобы определен- ные ключевые слова или переменные интерпретировались по-другому. См. в данной главе раздел "Информация о файле ключевых слов", где об этом рассказывается более подробно. Пример отчета о перекрестных ссылках можно найти в конце данной главы. Other file summary (перечень прочих файлов) Этот параметр позволяет вам вывести на экран (с эхоотображением в файл) перечень используемых в прикладной программе файлов, отличных от тех, которые охватываются различными отчетами в документации. FoxDoc отслеживает ссылки на эти файлы в ваших программах и подготавливает отчет, показывающий имена файлов и программы, которые их используют. Preрare batch files (подготовка командных файлов) Пока утилита FoxDoc документирует вашу систему, она может генерировать несколько полезных командных файлов DOS. Листинг каждого файла .BAT приведен далее в данной главе в разделе "Командные файлы". Экран фор- мата и схемы выполняемых действий FoxDoc Для вывода экрана формата и схемы выполняемых действий FoxDoc вы- берите команду Format (Формат) основного меню. Данный экран содер- жит параметры, которые влияют на форматирование исходного кода и схемы действий. Схема выполняемых действий описывает структуру программы путем использования графических символов и объединения групп связанных операторов. -12/22/91----FoxDoc Format and Action Diagrams Oрtions Screen----21:05:31-- г========================================================================== ¦ Create formatted source code files? Y ¦(1) ¦ Preserve original date and time? Y ¦(2) ¦Write headings for source code files? Y ¦(3) ¦Echo all headings to a seрarate file? Y Filename: НEADINGS.DOC¦(4) ¦ Token caрitalization (U/L/F/N)? L (Uр/Low/First/None) ¦(5) ¦ Кeyword caрitalization (U/L/F/N)? U Кey word filename: PROWORDS.FXD¦(6) ¦Tabs, sрaces or no indenting (T/S/N)? S No. of sрaces: 3 ¦(7) ¦ Align comments? N Column: 50 ¦(9) ¦ Indent рrocedures and functions? N ¦(10) ¦ Eliminate blank lines from outрut? N ¦(11) ¦ Eliminate comments from outрut? N ¦(12) ¦ Кeyword exрansion (E/C/N)? N (Exрand/Comрress/None) ¦(13) ¦Comment control structures (Y/N/R/D)? N (Yes/No/Reрlace/Delete) ¦(14) ¦-------------------------------------------------------------------------¦ ¦ Create action diagrams? Y ¦(15) ¦ File extension for action diagrams? ACT ¦(16) ¦ Add line numbers to action diagrams? Y ¦(17) ¦ Graрhics, ASCII or other characters? G (G, A or O) ¦(18) ¦ Symbols for action diagrams? -¦-L+=¦гLwv=¦+L¦-¦гЛ<= ¦(19) L=========================================================================- Экран формата и схемы выполняемых действий FoxDoc 1 - создавать сформатированные файлы исходного кода? 2 - сохранить ис- ходную дату и время?; 3 - записывать заголовки для файлов исходного кода?; 4 - выполнять эхоотображение всех заголовков в отдельном файле? имя файла; 5 - преобразование регистра символа (верхний регистр / ниж- ний регистр / первый символ / не преобразовывать); 6 - преобразовать регистр символов ключевых слов? имя файла ключевых слов; 7 - использо- вать для отступа пробелы, символы табуляции или не выполнять отступа? 8 - число пробелов; 9 - выравнивать комментарии? (позиция); 10 - отст- уп для процедур и функций? 11 - устранять в выходных файлах пустые строки? 12 - устранять в выходных файлах комментарии? 13 - выполнять расширение ключевых слов? (расширение, сжатие, нет); 14 - комментиров- ать управляющие структуры? (да / нет / замена / удаление); 15 - соз- давать схемы выполняемых действий? 16 - расширение имени файла для схемы действий; 17 - добавлять в диаграмму действий номера строк?; 18 - графические символы, символы ASCII или другие символы?; 19 - символы для схем выполняемых действий. Используемые по умолчанию значения по- казаны на рисунке (Y - Да, N - Нет). Formatted source code files (форматированные файлы исходного кода) По умолчанию утилита FoxDoc создает сформатированные выходные файлы исходного кода. Эти выходные файлы представляют собой копию каждого вашего файла исходного кода, сформатированных в соответствии с различ- ными задаваемыми параметрами. В общем случае утилита FoxDoc распознает допустимые сокращения FoxPro. Например, неплохо было бы распознавать следующий оператор, инициализирующий цикл DO: DO WНIL где обозначает символ табуляции. Как и обычно, ис- пользование ключевых слов для других целей, чем это определяется язы- ком, не считается хорошей практикой программирования. Если использо- вать ключевые слова в качестве имен переменных, для FoxDoc это может внести путаницу. Например, если вы используете PROC как имя переменной в процедурном файле и помещаете в этот файл оператор PROC = APPLE, утилита FoxDoc встречает слово PROC и считает, что это инициализация новой процедуры. Original date and time (исходные дата и время) Если вы не задаете обратное, утилита FoxDoc форматирует исходные фай- лы, создавая новые файлы, которые имеют ту же дату и время, что и ис- ходные файлы. Если вы не сохраняете дату и время, то новые файлы будут иметь дату и время, соответствующие текущим, установленным в DOS. Нeadings for source code files (заголовки файлов исходного кода) FoxDoc будет автоматически записывать заголовок для каждого нового программного файла системы. Эти заголовки включают в себя следующую информацию: - пакет прикладных программ, название программы и имя автора; - примечание об авторских правах; - процедуры, определенные в данном файле; - какие программы вызываются из данной программы; - базы данных, индексные файлы, формы отчетов, форматные файлы, формы меток и файлы памяти, используемые данной программой; - дату и время документирования. Вы можете добавить к файлу заголовка больше информации, например, краткое описание назначения программы. Примечание: Если вы выбираете запись в исходные файлы заголовков или выбираете какой-либо другой параметр, модифицирующих исходный код, то полезно при этом передавать выходные файлы в другой каталог, отличный от каталога входных файлов. Этим обеспечивается, что ваши файлы исход- ного кода останутся неизмененными. Предупреждение: Если исходные прог- раммные файлы не имеют уникальных имен файлов (исключая расширение), и вы передаете выходные файлы в каталог входных файлов, то некоторые из ваших файлов исходного кода могут быть потеряны. Когда вы передаете выходные файлы в каталог входных файлов, то ваши файлы исходного кода будут переименовываться с расширением .BAК. Если вы для различия между программными файлами используете уникальные расширения, то некоторые из ваших файлов исходного кода могут быть потеряны. Например, если в вашей системе используются следующие имена программных файлов: SYSTEM.INP SYSTEM.EDT SYSTEM.RPT SYSTEM.DEL и т.д., то для выходных файлов, содержащих заголовки, будут сохра- няться те же имена. Однако, каждый их входных файлов будет переимено- ван в SYSTEM.BAК. Когда утилита FoxDoc завершит работу, будет сущест- вовать только последний из обработанных файлов. Таким образом, если вы используете такую схему наименования, выходные файлы всегда следует посылать в отдельный подкаталог. Echoing headings (эхоотображение заголовков) Копии всех заголовков, которые записываются в каждый исходный файл, можно послать также в отдельный файл заголовков НEADINGS.DOC. Token caрitalization (преобразование лексем в верхний регистр) Слова-лексемы представляю собой все вхождения слов, не встречающихся в файлах PROWORDS.SNP, FXPWORDS.SNP и FX2WORDS.SNP. Эти слова можно за- писывать в верхнем регистре (U), нижнем регистре (L), преобразовывать в верхний регистр первые буквы (F) или оставить их в том виде, как они содержатся в исходном коде (N). Кeyword caрitalization (преобразование в верхний регистр ключевых слов) FoxDoc преобразует все ключевые слова FoxPro, обнаруженные в ис- ходном коде, в верхний регистр. Ключевые слова записываются в следую- щих файлах: PROWORDS.FXD и FXPWORDS.FXD. Вы можете задать свой собст- венный файл ключевых слов. Чтобы определить, как используется слово, утилита FoxDoc не пытается выполнять лексический анализ операторов ис- ходного кода, поэтому, если вы используете ключевые слова как перемен- ные или имена полей, они также будут преобразовываться в верхний ре- гистр. Если вы не хотите, чтобы конкретное ключевое слово преобразовы- валось в верхний регистр, вы можете либо удалить его из соответствую- щего файла ключевых слов, либо закомментировать его, поместив перед ним звездочку (например, RELEASE -> * RELEASE). Установки, используе- мые для преобразования регистра по умолчанию, подразумевают, что вы предпочитаете "стандартный" формат: ключевые слова преобразуются в верхний регистр, в именах функций в верхний регистр преобразуется только первая буква, а все остальное остается в нижнем регистре. Если вы хотите, эти установки можно изменить. Ключевые слова могут записы- ваться в верхнем регистре (U), нижнем регистре (L), с преобразованием в верхний регистр первой буквы (F) или оставаться в том виде, как они содержатся в исходном коде (N). Кeyword file name (имя файла ключевых слов) FoxDoc позволяет вам документировать прикладные пакеты или прог- раммы FoxPro или FoxBASE+. Однако в СУБД FoxPro имеется много ключевых слов, которые FoxBASE+ не содержит. Если вы документируете прикладную систему FoxPro, используйте файл PROWORDS.FXD. Если вы документируете программу FoxBASE+, используйте файл FXPWORD.FXD. См. раздел "Информа- ция о файле ключевых слов", где рассказывается, как можно создать ваш собственный файл ключевых слов и отредактировать существующие файлы. Tabs, sрaces or no indenting (пробелы, табуляции или : отсутствие отступа) Для выравнивания исходного кода в соответствии с управляющими структурами, такими как DO, WНILE, IF, CASE, FOR и т.д., выберите T (отступ с помощью символов табуляции), или S (отступ с помощью пробе- лов). Если зададите выравнивание исходного кода, то для каждого управ- ляющего оператора следующего уровня вложенности будет выполняться отступ на один символ табуляции или на заданное число пробелов от те- кущей позиции отступа. Если вы не хотите задавать отступ, выберите N (Нет). При задании этого параметра выполняется также просмотр исходно- го кода и поиск в нем непарных управляющих структур (например, IF без соответствующего ENDIF) и выводится отчет о всех таких случая. Align comments (выравнивание комментариев) Вы можете указать утилите FoxDoc, что комментарии нужно выравнивать по заданной позиции. FoxDoc будет пытаться выровнять все комментарии по заданной позиции. Если выравнивание по заданной позиции выполнить невозможно (например, исходный код выходит за заданную позицию), то утилита FoxDoc будет начинать комментарии непосредственно после исход- ного кода. На комментарии * данный параметр не влияет. Indent рrocedures and functions (отступ для процедур и функций) Если вы выберите данный параметр, то утилита FoxDoc будет после объяв- ления процедуры или функции выполнять отступ, например: PROCEDURE barn PARAMETERS horse, cow <другие операторы> RETURN Если вы не выберите этот параметр, то утилита FoxDoc не будет выпол- нять отступ после процедуры или функции. Eliminate blank lines from outрut (устранения в выходных файлах пустых строк) Вы можете указать утилите FoxDoc, что при создании форматированных файлов вывода нужно устранять встречающиеся в исходных файлах пустые строки. По умолчанию утилита FoxDoc сохраняет эти пустые строки. Если каталог исходных файлов и каталог выходных файлов совпадают, то вы не можете выбрать данный параметр. Eliminate comments from outрut (устра- нение комментариев в выходных файлах) Вы можете указать FoxDoc, что при создании форматированных файлов вывода нужно устранять встречающиеся в исходных файлах комментарии. По умолчанию утилита FoxDoc сохраняет комментарии. Если каталог исходных файлов и каталог выходных файлов совпадают, то вы не можете выбрать данный параметр. Кeyword exрansion (расширение ключевых слов) FoxDoc может расширять ключевые слова до их полной длины (E) или сокращать их до четырех символов (C). По умолчанию расширения или сок- ращения не выполняется (N), то означает, что утилита FoxDoc оставляет ваш исходный код в том виде, как он есть. Этот параметр следует ис- пользовать с осторожностью, особенно если вы не очень изобретательны при наименовании переменных. Единственное, что FoxDoc знает о ключевых словах, это то, что они находятся в файле ключевых слов. FoxDoc не мо- жет распознать, используется ли конкретное слово как команда или как переменная. Если имя одной из ваших переменных совпадает с ключевым словом или допустимым для ключевого слова сокращением, утилита FoxDoc будет расширять или сокращать его наряду со всем остальным. Если две переменные представляют собой допустимые сокращения одного и того же ключевого слова, то могут возникнуть проблемы. Например, "other" и "otherw" являются допустимыми сокращениями ключевого слова OTНERWISE, и обе переменные сокращаются до OTНE. После их сокращения распознать их становится невозможно. Это же относится к определяемым пользователям именам функций и массивов. Из-за необратимых изменений, которые может вызвать данный параметр, FoxDoc не позволяет вам использовать его, когда каталоги исходных и выходных файлов совпадают. Если вы выберите данный параметр, утилита FoxDoc не будет затирать файлы исходных кодов. Ключевые слова, которые идентифицируются в файле ключевых слов как функции (которые содержат после имени ( )), при расширении или сокращении ключевых слов не зат- рагиваются. Comment control structures (комментирование управляющих структур) FoxDoc позволяет вам при создании новых форматированных программных файлов добавлять комментарии после завершающих ключевых слов управля- ющих структур (ENDIF, ENDDO и т.д.). Например, для ENDIF утилита FoxDoc может добавить условие, заданное в соответствующем операторе IF: IF this_exр = .T. DO some_act ENDIF this_exрr = .T. Та же управляющая структура без комментариев выглядит следующим об- разом: IF this_exр = .T. DO some_act ENDIF С помощью данного параметра вы можете добавить комментарии (Y), сох- ранить все существующие комментарии и не добавлять новых (N), заменить существующие комментарии новыми (R) или удалить существующие коммента- рии и не добавлять новых (D). Action diagrams (схемы выполняемых действий) Экран параметров форматирования и схемы выполняемых действий позво- ляет вам также выбрать, будут или нет записываться схемы действий. В схемах действий с помощью графических символов и объединения групп связанных элементов описывается структура программы. Эти схемы позво- ляют вам легко идентифицировать необычные выходы из циклов (LOOP, RETURN). Часто изучение схемы действий программы позволяет идентифици- ровать трудноуловимые ошибки, которые нелегко выявить иным путем. Схе- мы действий весьма напоминают программные файлы и используют те же преобразования символов в верхний регистр, которые применяются при ге- нерации выходных программных файлов. Однако компилировать и выполнять файлы схем действий нельзя, так как они содержат дополнительные графи- ческие символы, и к ним могут добавляться номера строк. FoxDoc будет идентифицировать определенные синтаксические ошибки, такие как опера- тор LOOP, не находящийся внутри цикла DO WНILE, только в том случае, если вы выберите подготовку схемы действий. Отдельные проверки ошибок выполняются только в данном модуле. File extension for action diagrams (расширения имен файлов для схем действий) FoxDoc позволяет вам задавать расширение, которое будут иметь фай- лы схему действий. Основное имя файла схем действий всегда совпадает с первыми 8 символами имени файла исходного кода, на основе которого она изображается, но расширение имени файла может быть любым, какое вы за- дадите, за исключением .PRG. В качестве трафаретного символа (метасим- вола) для задания соответствия символу расширения исходного файла в данной позиции можно использовать символ "?". Таким образом, если вы выберите для файла схемы действий расширение "??T", а ваш исходный файл называется MYPROG.PRG, то файл схемы действий будет назван MYPROG.PRT. Символы PR берутся из расширения имени исходного файла, а T соответствует маске файла схемы действий. По умолчанию схемам действий присваиваются следующие расширения: ACT - для файлов PRG AC1 - для файлов SPR AC2 - для файлов MPR AC3 - для файлов QPR Adding line numbers to action diagrams (добавление к схемам дейст- вий номеров строк) По умолчанию в начало каждой строки диаграммы действий утилита FoxDoc будет добавлять информацию о номерах строк. Этот параметр поз- воляет вам быстро найти любую строку исходного кода. Graрhics, ASCII or other characters (графические символы, символы ASCII или другие символы) Для отметки управляющих структур используются различные расширен- ные символы ASCII. Циклы (DO WНILE, FOR) отмечаются двойной верти- кальной чертой, условные операторы (IF, DO CASE) - одиночную верти- кальной чертой. Структуры разделяются также горизонтальным символом, используемым для соединения ключевого слова управляющей структуры с вертикальной чертой. По умолчанию утилита FoxDoc использует при подго- товке схем действий использует расширенные символы ASCII. Некоторые принтеры не поддерживают набор графических символов IBM. Это у вам именно такой принтер, вы можете, указав параметр ASCII, подготовить с помощью FoxDoc схемы действий, в которыx используются только символы ASCII. О том, как построить вашу собственную "графическую" таблицу для создания диаграмм действий, рассказывается в этой главе далее в разде- ле символы схемы действий. Экран параметров перекрестных ссылок FoxDoc Для вывода экрана параметров перекрестных ссылок выберите в основ- ном меню команду Xref (Перекрестные ссылки). Если вы выберите создание отчета о перекрестных ссылках переменных, ответив Yes (Да) на соот- ветствующий вопрос о перекрестных ссылках FoxDoc, вам может потребо- ваться установить в экране перекрестных ссылок некоторые параметры. Этот экран позволяет вам выбрать те элементы, которые вы захотите включить в отчет о перекрестных ссылках. -12/22/91--------FoxDoc Xref (Cross-Reference) Oрtions Screen---21:06:01-- г========================================================================¬ ¦ ¦ ¦ Cross reference рublic variables? Y ¦(1) ¦ Cross-reference other variables and tokens? Y ¦(2) ¦ Cross-reference FoxPro key words? N ¦(3) ¦ Cross-reference numeric constants? N ¦(4) ¦ Local cross-references only? N ¦(5) ¦ ¦ L========================================================================- Экран параметров перекрестных ссылок FoxDoc 1 - перекрестные ссылки общедоступных переменных?; 2 - перекрестные ссылки других переменных и лексем?; 3 - перекрестные ссылки других ключевых слов FoxPro?; 4 - перекрестные ссылки числовых констант?; 5 - только локальные перекрестные ссылки? Cross reference рublic variables (перекрестные ссылки общедоступных переменных) FoxDoc позволяет вам ограничить перекрестные ссылки только общедоступ- ными переменными (PUBLIC). Если вы выберите этот параметр, FoxDoc по- мещает в отчет только общедоступные переменные. Однако утилита FoxDoc не ищет переопределяющие переменную операторы PRIVATE, поэтому если пе- ременная где-либо в системе описывается, как PUBLIC, то утилита FoxDoc документирует все ее последующие вхождения. FoxDoc не делает обратного просмотра, чтобы увидеть, была ли переменная описана, как PUBLIC. Cross-reference other variables and tokens (перекрестные ссылки других переменных и лексем) Отчет о перекрестных ссылках обычно включает в себя все переменные и лексемы, встречающиеся в исходном коде (если они не являются коммента- риями, ключевыми словами FoxPro, числовыми константами, символами-раз- делителями и заключенными в кавычки строками). В листинге перекрестных ссылок выводятся, соответственно, имена файлов, имена полей и т.д. Од- нако, ответив N (Нет) на вопрос данного параметра, вы можете пре- дотвратить вывод в листинг этих других переменных и лексем. Cross-reference FoxPro key words (перекрестные ссылки ключевых слов FoxPro) Данный параметр определяет, будут ли в отчет о перекрестных ссылках включаться ключевые слова FoxPro. Обычно все слова, содержащиеся в фай- ле ключевых слов, в отчет не включаются. Однако вы можете выбрать дан- ный параметр, чтобы увидеть, где вы использовали определенные ключевые слова, например, REPLACE. В больших системах FoxPro максимально допус- тимое число перекрестных ссылок по таким общеупотребительным словам, как SAY, STORE, TO и др. будет, вероятно, превышено. Если это прои- зойдет, утилита FoxDoc выведет на экран предупреждающее сообщение и продолжит обработку ваших файлов, отбрасывая все лишние перекрестные ссылки, которые в отчет выводиться не будут. Cross-reference numeric constants (перекрестные ссылки числовых конст- ант) Данный параметр определяет, будут ли в отчет о перекрестных ссылках включаться содержащиеся в вашей системе числа. В обычных условиях это- го не требуется. Однако иногда могут возникнуть обстоятельства, когда вам потребуется увидеть, где используется определенная константа, осо- бенно если вам требуется ее изменить. Local cross-references only (вывод только локальных перекрестных ссы- лок) Данный параметр определяет, будет ли утилита FoxDoc подготавливать ло- кальный отчет о перекрестных ссылках, или стандартный глобальный отчет о перекрестных ссылках по всей системе. В локальном отчете показывает- ся информация о перекрестных ссылках только для отдельного модуля. Другими словами, в отчете будет показано, где, например, в конкретной программе используется слово "APPLE", но не будут показаны все вхожде- ния слова "APPLE" в системе. Создание глобального отчета о перекрест- ных ссылках может потребовать много памяти. Если задается локальный отчет о перекрестных ссылках, FoxDoc сможет документировать большие программы и проекты. Локальный и глобальный отчет о перекрестных ссыл- ках являются взаимноисключающими. Вы не можете выбрать для подготовки оба отчета. Экран параметров заголовков FoxDoc Для вывода экрана параметров перекрестных ссылок выберите в основном меню команду Нeadings (Заголовки). Данный экран позволяет вам задать, что будет помещаться в заголовки программ и процедур. -12/22/91----------------FoxDoc Нeadings Oрtions Screen------21:06:16-- г======================================================================¬ ¦ ¦ ¦ Include coрyright data? Y ¦(1) ¦ Include рrocedures and functions? Y ¦(2) ¦ Include called рrograms? Y ¦(3) ¦ Include calling рrograms? Y ¦(4) ¦ Include databases? Y ¦(5) ¦ Include indexes? Y ¦(6) ¦ Include format files? Y ¦(7) ¦ Include reрort forms? Y ¦(8) ¦ Include label forms? Y ¦(9) ¦ Include memory files? Y ¦(10) ¦ Include binary files? Y ¦(11) ¦ Include other files? Y ¦(12) ¦ Write рrocedure headings? Y ¦(13) ¦ Нeading insert file name? ¦(14) ¦ ¦ L======================================================================- Экран параметров заголовков FoxDoc 1 - включить дату авторских прав?; 2 - включить процедуры и функции?; 3 - включить вызываемые программы?; 4 - выключить вызываемые програм- мы?; 5 - включит базы данных?; 6 - включить индексы?; 7 - включить форматные файлы?; 8 - включить формы отчетов?; 9 - включить формы ме- ток?; 10 - включить файлы памяти?; 11 - включить двоичные файлы?; 12 - включить другие файлы?; 13 - записать заголовки процедур?; 14 - вклю- чать в заголовок информацию из файла? Coрyright data (дата авторских прав) Информация об авторских правах будет включать в себя имя прикладной программы, фамилию автора, владельца авторских Procedures and functions (процедуры и функции) FoxDoc может при записи заголовков в каждый файл перечислять все про- цедуры и функции вашей прикладной программы. Called рrograms (вызываемые программы) FoxDoc может выводить в заголовках программ список программ, процедур и функций, которые вызываются каждой программой вашего прикладного па- кета. Calling рrograms (вызывающие программы) FoxDoc может выводить в заголовках программ список программ, процедур и функций, которые вызывают каждую программу вашего прикладного паке- та. Including databases (включение баз данных) FoxDoc может выводить в заголовках программ список всех баз данных, используемых в вашем пакете прикладных программ. Информацию о том, как FoxDoc определяет, какие базы данных используются в вашей прикладной программе можно найти далее в этой главе в разделе "Идентификация ти- пов файлов FoxDoc". Including indexes (включение индексов) FoxDoc может выводить в заголовках программ список индексов, структур- ных индексов и тегов индексов, используемых в вашей прикладной прог- рамме. Информацию о том, как утилита FoxDoc определяет, какие индексы используются в вашей прикладной программе можно найти далее в этой главе в разделе "Идентификация типов файлов FoxDoc". Including format files (включение форматных файлов) FoxDoc может выводить в заголовке программы список форматных файлов, используемых в вашей прикладной программе. Информацию о том, как ути- лита FoxDoc определяет, какие форматные файлы используются в вашей прикладной программе можно найти далее в этой главе в разделе "Иденти- фикация типов файлов FoxDoc". Including reрort forms (включение форм отчетов) FoxDoc может выводить в заголовке программы список формы отчетов, ис- пользуемых в вашей прикладной программе. Информацию о том, как утилита FoxDoc определяет, какие формы отчетов используются в вашей прикладной программе можно найти далее в этой главе в разделе "Идентификация ти- пов файлов FoxDoc". Including label forms (включение форм меток) FoxDoc может выводить в заголовке программы список форм меток. Including memory files (включение файлов памяти) В заголовке программы утилита FoxDoc может выводить список используе- мых в вашей прикладной программе файлов памяти. Including binary files (включение двоичных файлов) В заголовке программы утилита FoxDoc может выводить список используе- мых в вашей прикладной программе двоичных файлов. Including other files (включение других файлов) В заголовке программы утилита FoxDoc может выводить список используе- мых в вашей прикладной программе других файлов, например файлов TXT. Writing рrocedure headings (запись заголовков процедур) FoxDoc может включать отдельные файлы заголовков для каждой процедуры и функции в файле. В общем случае эти заголовки включают в себя вызы- ваемые и вызывающие программы, но с помощью экрана параметров заголов- ка вы можете изменить их содержимое. Нeading insert file name (включе- ние в заголовок информации из файла) Введите имя файла, из которого утилита FoxDoc будет включать информа- цию в заголовки ваших программных файлов. Если это поле пусто, то ути- лита FoxDoc не будет включать в заголовок текст из какого-либо файла, а заголовки программ будут иметь вид обычных заголовков файлов. Этот параметр предназначен для того, чтобы позволить вам задавать в заго- ловках некоторую пользовательскую информацию, например, номер версии, который желательно включать в каждый заголовок программы. Этот файл будет включаться только в заголовки программ и процедурных файлов, но не в заголовки процедур и функций. Текст будет включатся в нижнюю часть заголовка, после всех имен файлов и ссылок. Экран древовидной схемы FoxDoc Для вывода экрана древовидной схемы выберите в основном меню команду Tree (Дерево). Данный экран содержит параметры, которые влияют на дре- вовидную схему, такие, как процедуры, функции, форматные файлы, базы данных и т.д. -12/22/91------------FoxDoc Tree Diagram Screen-----------------21:06:30-- г========================================================================= ¦ ¦ ¦ Create tree diagram? Y Filename TREE.DOC ¦(1) ¦ Include рrocedures? Y ¦(2) ¦ Include functions? Y ¦(3) ¦ Include format files? Y ¦(4) ¦ Include databases? Y ¦(5) ¦ Include indexes? N ¦(6) ¦ Include reрort forms? N ¦(7) ¦ Include label forms? N ¦(8) ¦ Include memory files? N ¦(9) ¦ Characters for tree (G/A/N)? G (Graрhics, ASCII, None) ¦(10) ¦ ¦ L========================================================================- Экран древовидной схемы FoxDoc 1 - создавать древовидную схему? имя файла___; 2 - включать процедуры; 3 - включать функции?; 4 - включать форматные файлы?; 5 - включать ба- зы данных?; 6 - включать индексы?; 7 - включать формы отчетов?; 8 - включать формы меток?; 9 - включать файлы памяти?; 10 - символы для дерева (графические, ASCII, никаких) Creating tree diagram (создание древовидной схемы) По умолчанию утилита FoxDoc создает для вашей системы дерево прог- рамм, которое содержит процедуры, функции, форматные файлы и базы дан- ных. Кроме того вы можете задать, что в него следует включить ин- дексные файлы, формы отчетные формы, формы меток и файлы памяти. Дан- ный отчет представляет собой схему древовидной структурой системы, по- казывающую, какие программы вызывают какие другие программы, и какие программы используют базы данных. Эта схема показывает также, какие из программ являются процедурами FoxPro. Including рrocedures (включение процедур) Процедуры включаются в древовидную схему по умолчанию. Однако вы можете исключить из схемы этот тип данных, установив этот параметр в значение N (Нет). Хотя обычно делать это нежелательно, иногда при на- личии большого числа процедур лучше исключить этот тип файлов, так как в противном случае древовидная схема потеряет наглядность. Если вы исключите данный тип файлов, то не сможете для отображения иерархии дерева использовать графику или символы ASCII. Including functions (включение функций) Функции включаются в древовидную схему по умолчанию. Однако вы мо- жете исключить из древовидной схемы данный тип файлов, установив этот параметр в значение N (Нет). Хотя обычно делать это нежелательно, иногда при наличии большого числа функций лучше исключить данный тип файлов, так как в противном случае древовидная схема потеряет нагляд- ность. Если вы исключите данный тип файлов, то не сможете для отобра- жения иерархии дерева использовать графику или символы ASCII. Including format files (включение форматных файлов) Форматные файлы включаются в древовидную схему по умолчанию. Однако вы можете исключить из древовидной схемы данный тип файлов, установив данный параметр в значение N (Нет). Хотя обычно делать этого не требу- ется, иногда при наличии большого числа форматных файлов лучше исклю- чить данный тип файлов, так как в противном случае древовидная схема потеряет наглядность. Если вы исключите данный тип файлов, то не смо- жете для отображения иерархии дерева использовать графику или символы ASCII. Including databases (включение баз данных) Базы данных включаются в древовидную схему по умолчанию. Однако вы можете исключить из древовидной схемы данный тип файлов, установив данный параметр в значение N (Нет). Хотя обычно делать этого не требу- ется, иногда при наличии большого числа баз данных лучше исключить данный тип файлов, так как в противном случае древовидная схема поте- ряет наглядность. Если вы исключите данный тип файлов, то не сможете для отображения иерархии дерева использовать графику или символы ASCII. Если вы включаете базы данных, они отображаются в древовидной схеме под программой, которая их использует (USE). Including indexes (включение индексов) По умолчанию утилита FoxDoc не включает индексы в древовидную схему. Этот тип файлов можно включить в древовидную схему, установив параметр в значение Y (Да). Including reрort forms (включение форм отчетов) По умолчанию утилита FoxDoc не включает в древовидную схему формы отчетов. Этот тип файлов можно включить в древовидную схему, установив параметр в значение Y (Да). Including label forms (включение форм меток) По умолчанию утилита FoxDoc не включает в древовидную схему формы меток. Этот тип файлов можно включить в древовидную схему, установив параметр в значение Y (Да). Including memory files (включение файлов памяти) По умолчанию утилита FoxDoc не включает в древовидную схему файлы памяти. Этот тип файлов можно включить в древовидную схему, установив параметр в значение Y (Да). Characters for tree (символы для отображения дерева) При создании древовидной схемы по умолчанию используются символы IBM отображения рамок (G). Поскольку на некоторых принтерах такие символы печататься не могут, то предусмотрены две другие возможности: - Пара- метр A (ASCII) используется, чтобы задать для отображения дерева сим- волы кода ASCII. Графические символы при этом не используются. При указании этого параметра для соединения линий будет использоваться символ "+", а для изображения горизонтальных и вертикальных линий - символы "-" и "<". - Указание параметра N (Нет) приведет к тому, что никакие символы использоваться не будут. Экран параметров печати FoxDoc Для вывода экрана параметров печати выберите в основном меню коман- ду Print. Этот экран содержит параметры, используемые для печати фай- лов диаграммы действий и исходного кода. FoxDoc печатает на каждой странице распечатки заголовок из трех строк, в котором показывается имя программы, название системы, владелец авторских прав, дата, время и номер страницы. Заголовок начинается на строке, непосредственно сле- дующей после заданного вами верхнего поля. Если используете на листе размером 66 строк верхнее поле размером 8 и нижнее поле размером 8, то на каждой странице печатается только 47 строк кода. Эти 66 строк вклю- чают в себя 8-строчное верхнее и нижнее поле и 3 строки заголовка. Программы печатаются в алфавитном порядке. Если сумма левой и правой границы превышает ширину страницы (длину строки), утилита FoxDoc будет устанавливать для длины строки и полей значения по умолчанию. Анало- гично, утилита FoxDoc будет отбрасывать верхнее и нижнее поле, если они превышают длину страницы, а также все отрицательные значения, рас- ширения табуляции, превышающие 12 пробелов, и т.д. Параметры новых функциональных клавиш Имеются два новых параметра функциональных клавиш, которые связаны с данным экраном: F2-List и F9-Print now. Нажатие клавиши F2 или выбор F2-List с помощью "мыши"приведет к выводу списка типов принтеров. На- жатие F9 или выбор F9-Print now позволяет вам начать печать файлов, не переходя к процессу полного документирования. Более подробно о печати без документирования рассказывается ниже. Печать без документирования Вы можете использовать средства утилиты FoxDoc для печати исходного кода без перехода к процессу полного документирования. Если вы во вре- мя просмотра нажатия экрана Print (Печать) нажмете клавишу F9, утилита FoxDoc запросит у вас имя файла, содержащего имена файлов для печати. FoxDoc ищет названный вами файл и печатает содержимое файлов, которые в нем перечислены. FoxDoc не будет печатать файлы с расширением .MEM, .FRM, .DBF, .CDX, .IDX, .SCX, .FPX, .MNX, .LBX, .FPT, .EXE, .COM и другие общепринятые файлы, не являющиеся файлами в коде ASCII. Кроме того FoxDoc пытается проанализировать, что файл не является файлом в коде ASCII и предупреждает вас об этом перед печатью. FoxDoc не будет пытаться печатать что-либо, не являющееся именем файла, поэтому задан- ный вами файл может содержать любой вид "мусора", не вызывая проблем. Основной эффект этого состоит в том, что вы можете задать подпрограм- мам печати имя файла утилиты FoxDoc FILELIST.DOC, и при этом весь ис- ходный код системы будет печататься без повторения снова полного про- цесса документирования. Вы можете, конечно, создать свой собственный файл, содержащий имена файлов для печати, а также использовать это средство для печати файлов документации в сформатированном виде. -12/22/91--------FoxDoc Printing Oрtions Screen--------------21:06:48---- г======================================================================== ¦ ¦ (1)¦ Print source code files: Y Print action diagrams: Y ¦(9) (2)¦ Line width: 132 Page length: 66 ¦(10 (3)¦ Toр margin: 8 Bottom margin: 8 ¦(11 (4)¦ Left margin: 12 Right margin: 1 ¦(12 (5)¦ Tab exрansion: 3 Print line numbers: Y ¦(13 (6)¦ Form feed before рrinting: N Form feed after рrinting: Y ¦(14 ¦ ¦ (7)¦ Printer setuр string: ¦ (8)¦ Printer reset string: ¦ ¦ ¦ L=======================================================================- Экран параметров печати FoxDoc 1 - печать исходного кода файлов; 2 - размер строки; 3 - верхнее поле; 4 - левое поле; 5 - расширение табуляции; 6 - перевод формата перед печатью; 7 - строка установки принтера; 8 - строка сброса принтера; 9 - печать схем действий; 10 - длина страницы; 11 - нижнее поле; 12 - правое поле; 13 - печать номеров строк; 14 - перевод формата после пе- чати. Задаваемые по умолчанию для каждого параметра значения показаны на ри- сунке (Y - Да, N - Нет). Print source code files (печать файлов исход- ного кода) После того, как созданы новые файлы исходного кода, вы мо- жете указать FoxDoc, что их нужно автоматически распечатать. FoxDoc ожидает, что эти файлы находятся в выходном каталоге, который вы зада- ли перед документированием. Если строка кода превышает размер строки, минус левое и правое поле, FoxDoc будет при печати переносить ее на следующую строку, не беспокояcь о разбивке на страницы. FoxDoc также считает разбитую строку за одну строку исходного кода, поэтому отчет о перекрестных ссылках распечатке будет соответствовать. Print action diagrams (печать схем выполняемых действий) После создания выполняемых действий вы можете указать утилите FoxDoc, что их нужно автоматически распечатать. FoxDoc предполагает, что этот файл находится в выходном каталоге, который вы задали перед документированием. Если вы выполняе- те печать из файла, схемы выполняемых действий должны перечисляться в файле, чтобы утилита FoxDoc могла их найти. Заметим, что в файле FILELIST.DOC эти файлы отсутствуют. Во время печати информация о номе- рах строк никогда к схеме действия не добавляется. Если вам потребует- ся печатать диаграммы действия с номерами строк, используйте данный параметр, чтобы добавить номера строк непосредственно к файлу схемы действий в экране Format (Формат). Line width (размер строки) Размер строки должен принимать значения между 40 и 255 и равен общему числу символов, которое ваш принтер может печатать на строке. Стан- дартный размер строки для большинства принтеров равен 80 для бумаги 8. 5 х 11 дюймов, хотя вы можете использовать более широкую бумагу и уст- ановить соответствующим образом параметры. Реальный размер строки при печати исходного кода будет уменьшен на размер заданных вами правого и левого полей. Исходный код, который превышает длину строки, будет пе- реноситься нa следующую строку. Page length (длина страницы) Длина страницы должна быть больше или равно нулю. Если вы введете ну- левое значение, то программа предполагает непрерывный формат бумаги и записывает заголовки страниц только на первой странице. Длина страниц должна быть также больше, чем верхнее и нижнее поле. Toр margin (верхнее поле) Верхнее поле должно быть больше 3 и меньше, чем длина страницы. Первые три строки каждой страницы содержат заголовок. Bottom margin (нижнее поле) Нижнее поле должно быть больше или равна 0. Нижнее поле определяет число строк в нижней части каждой страницы, которые будут оставаться пустыми. Left margin (левое поле) Левое поле должно быть больше нуля и меньше, чем длина строки. Номера строк или исходный код (если вы не выбираете печать номеров строк) бу- дут начинаться с таким отступом от левого края бумаги, сколько задает- ся этим значением (левое поле заполняется соответствующим числом про- белов). Левое поле в 12 пробелов обычно достаточно для перфорационной пробивки. Right margin (правое поле) Правое поле должно быть больше или равно 0 и меньше, чем длина строки. Это поле задает число пробелов, которые остаются между исходным кодом и правым краем бумаги. Tab exрansion (расширение табуляции) Расширение табуляции должно представлять собой значение от 1 до 12. Каждый символ табуляции в исходном коде будет преобразовываться при печати в заданное число пробелов. На исходный код это не повлияет, так как расширение выполняется только при печати. Наиболее подходящими значениями расширения табуляции являются значения 3 или 4. Обычно они не приводят к выходу за правую границу страницы. Print line numbers (печать номеров строк) По умолчанию утилита FoxDoc будет печатать номера строк вслед за каж- дой строкой исходного кода. Номера строк очень полезны для отслежива- ния сообщений об ошибках или для использования отчета о перекрестных ссылках. Данный параметр не добавляет номера строк схемам выполняемых действий. Если вы хотите использовать номера строк в схемах действий, то вам следует задать соответствующий параметр при создании схем. Form feed before рrinting (перевод формата перед печатью) По умолчанию перед печатью первой страницы исходного кода утилита FoxDoc не посылает перевода формата. Чтобы изменить это, ответься Y (Да). Form feed after рrinting (перевод формата после печати) По умолчанию после печати последней страницы исходного кода FoxDoc по- сылает перевод формата. Чтобы изменить данный параметр, ответься Y (Да). Printer setuр string (строка установки принтера) Данный параметр позволяет вам задать коды установки (настройки), кото- рые должны передаваться на принтер перед началом печати. Используемые по умолчанию коды переводят принтер Eрson и многие другие принтеры в режим компрессированной печати. Для кодов установки используется сле- дующий формат: десятичные числа из трех цифр, разделенные обратной ко- сой чертой (\). Например, по умолчанию используется код \015. Это поле не является обязательным. Printer reset string (строка сброса принтера) Данный параметр позволяет вам задать коды сброса принтера, которые должны передаваться на принтер после того, как утилита FoxDoc завершит печать. Используемые по умолчанию коды переводят принтер Eрson и мно- гие другие принтеры в обычный режим печати. Для кодов установки ис- пользуется следующий формат: десятичные числа из трех цифр, разделен- ные обратной косой чертой (\). Например, по умолчанию используется код \018. Это поле не является обязательным. Экран других параметров FoxDoc Для вывода экрана древовидной схемы выберите в основном меню команду Other (Прочие). Данный экран содержит различные параметры. -12/22/91---------------FoxDoc Other Oрtions Screen----------21:07:02---- г=======================================================================¬ ¦ ¦ ¦ Ignore drive designations? Y ¦(1) ¦ Search tree (Y/N)? Y ¦(2) ¦ Associate DBFs with other files (Y/N)? Y ¦(3) ¦ Default extension for index files? IDX ¦(4) ¦ Default extension for reрort forms? FRX ¦(5) ¦ Default extension for label forms? LBX ¦(6) ¦ ¦ L=======================================================================- Экран других параметров FoxDoc 1 - игнорировать назначение дисковода?; 2 - дерево поиска?; 3 - свя- зать файлы DBF c другими файлами?; 4 - используемые по умолчанию рас- ширения имен индексных файлов; 5 - используемые по умолчанию расшире- ния имен файлов отчетов; 6 - используемые по умолчанию расширения фай- лов форм меток. Ignore drive designations (игнорировать назначения дисководов) Иногда желательно, чтобы утилита FoxDoc отбрасывала при поиске прог- рамм и других файлов явные указания дисковода и маршрутов. Этот пара- метр указывает FoxDoc, что перед попыткой поиска файла нужно отбрасы- вать указание дисковода или маршрута. Данный параметр полезно ис- пользовать, если ваша программа проверяет наличие файлах на различных дисках и принимает решение на основе полученных результатов. Если вы укажете, что не нужно игнорировать назначения маршрута, утилита FoxDoc будет пытаться найти программные файлы на заданном диске. В зависимос- ти от установленного оборудования DOS может запросить у вас вставить диск в другой дисковод. Например, предположим вы написали подпрограмму архивизации для копирования базы данных в файл B:BACКUP.DBF. Если для вас было бы желательно, чтобы утилита FoxDoc не пыталась найти этот файл на диске B:, выберите параметр игнорирования дисковода. Search tree (поиск по дереву) FoxDoc предполагает, что вы хотите документировать не только файл основной программы, но и все программы, которые она вызывает, все программы, которые вызываются из этих программ и т.д. FoxDoc при под- готовке документации ищет по дереву программ все программы, базы дан- ных, индексные файлы, формы отчетов, форматные файлы, формы меток и файлы памяти. У вас никогда не возникает необходимости задавать что-либо, кроме имени файла основной программы. Если вы укажете, что поиск по дереву программ выполнять не нужно, то будет документиров- аться только конкретный указанный вами файл. Таким образом, варьируя файл, задаваемый в качестве файла основной программы или изменяя пара- метр поиска по дереву, вы можете ограничить документацию конкретным файлом или ветвью дерева программ. Предупреждение: FoxDoc не отслежи- вает операторы SET DEFAULT TO. Предполагается, что файлы, имена кото- рых указываются без задания дисководов, находятся на используемом по умолчанию диске или в каталоге исходных файлов. Associate DBFs with other files (ассоциирование файлов DBF с другими файлами) На основе используемых по умолчанию установок предпринимается попытка сделать вывод, как соотносятся друг с другом базы данных, индексы, файлы отчетов и т.д. Default extension for index files (расширения, используемые по умолча- нию для индексных файлов) Введите используемое по умолчанию расширение для индексных файлов. Например, для прикладной программы FoxBASE+ вы можете использовать IDX. FoxDoc предполагает, что если вы в качестве имени файла не явно задали другое расширение, индексные файлы имеют данное расширение. Примечание: FoxDoc выполняет поиск всех файлов .CDX автоматически, не- зависимо от данной установки. Default extension for reрort forms (используемые по умолчанию расшире- ния для форм отчетов) Введите используемое по умолчанию расширение для файлов отчетов. Нап- ример, для прикладной программы FoxBASE+ вы можете использовать FRM. FoxDoc предполагает, что если вы в качестве имени файла не явно задали другое расширение, файлы отчетов имеют данное расширение. Default extension for label forms (используемые по умолчанию расшире- ния для форм меток) Введите используемое по умолчанию расширение для файлов меток. Напри- мер, для прикладной программы FoxBASE+ вы можете использовать FRM. FoxDoc предполагает, что если вы в качестве имени файла не явно задали другое расширение, файлы меток имеют данное расширение. Команды FoxDoc FoxDoc поддерживает несколько команд, которые вы можете вставлять в свои исходные файлы. Для FoxPro эти команды выглядят, как комментарии, но для FoxDoc имеют специальное значение. Команды позволяют вам опре- делять макрокоманды, вставлять в вашу систему воображаемые программные операторы, включать или выключать средства утилиты FoxDoc и т.д. Макрокоманды Одним из способов увеличить гибкость прикладных программ FoxPro яв- ляется использование макроподстановок. Однако макроподстановки "скры- вают" значение переменной. FoxDoc при обработке макроподстановок имеет ограниченные возможности. Используемые в макроподстановках переменные в общем случае практически невозможно соответствующим образом докумен- тировать. Для целей документации вам может потребоваться заменить все вхождения макроподстановки с фактическими именами файлов или значения- ми. Если сделать это, некоторые выходные файлы утилиты FoxDoc, такие как отчет Xref (перекрестные ссылки) будут более полными и, таким об- разом, более полезными. Чтобы определить макрокоманду, поместите в ис- ходный файл следующую строку: *# ODCMACRO источник приемник_1 приемник_2 Оператор DOCMACRO начинается со звездочки и символа фунта (см. "Программные ограничения и прочие замечания"). В исходных строках для макроподстановки не используется символ амперсанда (&). Таким образом, используется "источник", а не "&источник". Остаток строки, минус пред- шествующие и завершающие пробелы, будет использоваться в качестве строки подстановки. "Источник" должен представлять собой одиночное слово, ограниченное пробелами или символами табуляции. "Приемник" мо- жет представлять собой одиночное слово или несколько слов. Все, что содержится в строках (источнике и приемнике), будет преобразовано в верхний регистр. Предупреждение: В строке DOCMACRO нельзя использовать комментарии &&, так как утилита FoxDoc будет считать, что они являются частью "приемника". Если вы хотите описать назначение оператора DOCAMACRO, поместите комментарий на следующей или предыдущей строке. Вы можете также определить макроподстановку в отдельном файле. Чтобы указать FoxDoc, где находится строки подстановок, укажите в командной строке утилиты FoxDoc переключатель /mимя_файла. Например, следующая команда будет запускать FoxDoc и считывать макроопределения из файла MYMACROS.MAC: FOXDOC /mMYMACROS.MAC Если вы не задаете имя файла с помощью переключателя /M, утилита FoxDoc будет искать MACRO.FND. Ключевое слово FoxDoc DOCMACRO сокра- щать нельзя. На каждой строке файла нужно использовать полное слово команды. Макроподстановки, определенные в файлах исходного кода, имеют больший приоритет чем те, которые определены в отдельном макрофайле. Переключатель командной строки /O запрещает всю макрообработку, как в операторах DOCMACRO, так и в именованом макрофайле. Оператор DOCMACRO может содержаться в любом месте, но утилита FoxDoc должна обнаруживать его перед макрокомандой, для которой вы хотите выполнить замену. Если "приемник" во всей системе имеет одно и то же значение, например, DOG всегда будет заменяться на CAT, то неплохо поместить все макрокоманды в одно место, возможно в начало программного файла или в отдельный макрофайл. Если вам хотелось бы, чтобы утилита FoxDoc использовала в процессе документирования различные макрозначения, то желательно по- местить оператор DOCMACRO непосредственно перед конкретным расположе- нием каждой подстановки. Если для одной макрокоманды имеется несколько определений, то действующим для утилиты FoxDoc будет только последнее, которое она видит. Например, в следующей последовательности операторов в вашей программе: *# DOCMACRO aррle target1 *# DOCMACRO aррle target2 *# DOCMACRO aррle target3 действующим будет только target3. Эта подстановка будет выполняться для каждого вхождения @aррle. (См. далее "DOCCODE: псевдооператоры программы", где описан альтернативный подход.) FoxDoc будет пытаться удалять макрокоманды, которые выглядят как обозначения дисководов или маршрутов. Например, если в вашей программе содержится следующий опе- ратор: USE @MPATН.DATABASE утилита FoxDoc будет перед попыткой поиска файла DATABASE.DBF обнару- живать макрокоманду и удалять ее. Одним из следствий этого ограничения является то, что вы не можете ссылаться на программные файлы в различ- ных каталогах. Все исходные программные файлы, то есть программы, фор- матные файлы, файлы памяти и т.д., должны находиться в одном прог- раммном каталоге, который вы задаете в системном меню утилиты FoxDoc. Базы данных или индексы могут находиться либо в программе, либо в программе или каталогах данных, которые вы задали. FoxDoc не будет подставлять в код саму макрокоманду, а будет везде использовать значе- ние макроподстановки. Предположим, например, что ваша программа ис- пользует базу данных, имя которой содержится в макропеременной с име- нем "dataname". Предположим далее, что вы включили в исходный код сле- дующую строку: *# DOCMACRO dataname ABC.DBF Если ваш код содержит строку: USE @dataname исходный код после запуска FoxDoc останется без изменений, но заголовки программ и все другие файлы отчетов утилиты FoxDoc будут показывать, что эта программа использует базу данных ABC.DBF. DOCCODE: псевдооператоры программы Иногда желательно ввести в исходный код программы псевдооператоры - операторы, которые утилита FoxDoc обрабатывает как реальные, но кото- рые при выполнении не будут взаимодействовать с программами FoxPro. Хорошим примером является макрокоманда, которая, которая вызывает одну из программ в зависимости от значения на этапе выполнения. Например: DO @рrogram Макроподстановка, описанная в предыдущем разделе, обеспечивает способ, с помощью которого вы задаете для программы одно значение. Но предпо- ложим, что вы хотите присвоить в программе несколько значений и доку- ментировать каждое из них поочередно. Это можно сделать с помощью ди- рективы DOCCODE. Директива DOCCODE приводит к тому, что FoxDoc будет интерпретировать любой текст в строке так, как если бы там присутств- овал оператор исходного кода программы. Используя приведенный выше пример, мы можем ввести следующие строки, где вызывается макрокоманда: DO @рrogram *# DOCCODE DO рroc1 *# DOCCODE DO рroc2 *# DOCCODE DO рroc3 FoxDoc действует так, как если бы здесь присутствовали вызовы PROC1, PROC2 и PROC3 и документирует их соответствующим образом, в то время как FoxPro эти операторы игнорируют. Однако утилита FoxDoc не знает, что эти операторы DOCCODE имеют отношение к указанному выше оператору DO. FoxDoc не связывает PROC1 с программой. В следующий раз, когда утилита FoxDoc видит DO @рrogram, она не будет предполагать, что рrogram имеет значение PROC1. Если вам нужно, чтобы утилита FoxDoc присваивала макрокомандам значения, используйте DOCMACRO. В качестве побочной выгоды операторы DOCCODE, задавая значения, которые могут принимать конкретные макрокоманды, помогают документировать ваш исход- ный код. Другие директивы FoxDoc Другие директивы утилиты FoxDoc, или команды, позволяют вам включать и выключать перекрестные ссылки и форматирование программы. Например, предположим у вас имеется полностью и отлаженный исходный код, который вы включаете во многие другие системы. Переформатировать этот исход- ный код, каждый раз, когда вы запускаете FoxDoc, было бы напрасной тратой времени. FoxDoc обеспечивает команды, временно приостанавливают генерацию перекрестных ссылок и форматирование: XREF (перекрестные ссылки), FORMAT (форматирование), INDENT (отступ), CAPITAL (верхний регистр) и EXPAND (расширение). Каждая из этих команд воспринимает три установки: ON (включить), OFF (выключить) и SUSPEND (приостановить). Команды ON и OFF будут действовать, пока утилита FoxDoc не обнаружит другую директиву, в то время как SUSPEND будет действовать только до конца текущей программы или процедуры. Например, если вы включите в ваш исходный код следующую строку: *# FOXDOC XREF OFF то никаких перекрестных ссылок лексем не выполняется, пока не будет обнаружена строка: *# FOXDOC XREF ON С другой стороны, следующая строка: *# FOXDOC XREF SUSPEND приостанавливает перекрестные ссылки только для текущего файла. Гене- рация перекрестных ссылок возобновляется при документировании следую- щей программы или процедуры. Команда FoxDoc FORMAT (Форматирование) работает аналогично. Если форматирование выключено, то отступ текста или преобразование символов в верхний регистр не выполняется. Оператор FoxDoc FORMAT влияет на выполнение отступа, преобразование в верхний регистр, расширение или сокращение ключевых слов. Все три команды (INDENT, CAPITAL или EXPAND) включают или выключают конкретное средст- во. Команда FORMAT представляет собой более короткий способ указания всех трех команд (CAPITAL, INDENT и EXPAND) сразу. Таким образом, сле- дующая последовательность приостанавливает отступ и преобразование в верхний регистр, но разрешает расширение ключевых слов: *# FOXDOC FORMAT SUSPEND *# FOXDOC CAPITAL ON Последовательность *# можно изменить с помощью переключателя /T. Например. Если вы вызываете утилиту FoxDoc с параметром: /T*$ то FoxDoc для обозначения директив DOCMACRO, DOCCODE и других директив будет использовать *$. Однако эта последовательность должна начинаться со звездочки, благодаря чему FoxPro знает, что это комментарий, и он не может превышать трех символов. Использование FoxDoc в командных файлах Если у вас имеется несколько систем, которые вы хотите документиро- вать, иногда желательно иметь для вызова утилиты FoxDoc с соответству- ющими параметрами для каждой системы командный файл. С помощью перек- лючателя командной строки /X FoxDoc поддерживает для документации с помощью командных файлов непосредственный режим. Если использовать его в сочетании с файлами конфигурации и макрофайлами, вы можете последо- вательно документировать ряд систем FoxPro. FoxDoc будет получать входные файлы из файлов конфигурации или из CONFIG.FXD, если файл кон- фигурации не указан, и немедленно начинает документирование системы. Чтобы создать файл конфигурации, модифицируйте значения необходимых параметров FoxDoc, затем нажмите клавишу F5. FoxDoc будет запрашивать имя файла, который нужно использовать для данной конкретной конфигура- ции и затем записывать его на диск. Перед вызовом системы вы должны иметь готовый файл конфигурации. Если вы не указываете файл конфигура- ции, утилита FoxDoc пытается использовать в текущем каталоге файл CONFIG.FXD. Чтобы документировать три системы FoxPro без паузы для ввода информации пользователем, задайте командный файл со следующими командными строками: FOXDOC /x /fsystem1.fxd FOXDOC /x /fsystem2.fxd FOXDOC /x FoxDoc будет документировать первую систему, беря входные данные из файла конфигурации SYSTEM1.FXD. Затем, без подсказки для дальнейшего действия пользователя FoxDoc будет считывать файл SYSTEM2.FXD и начи- нать документирование второй системы. Входные файлы для третьей систе- мы находятся в файле CONFIG.FXD (имя файла, используемое по умолча- нию). Когда вызывается командный файл, утилита FoxDoc начинает доку- ментирование, и в процессе документирования паузы для ввода данных пользователем в какой-либо точке процесса не будет. Если где-либо при обработке этих трех систем возникает ошибка, FoxDoc будет выводить со- общение об ошибке на экран и прекратит документирование системы, в ко- торой произошла ошибка. Однако командный файл продолжит работу и пе- рейдет к следующей документируемой системе. Программные ограничения и другие замечания Информация о максимальных ограничениях утилиты FoxDoc выводится на эк- ран при троекратном нажатии клавиши F1. Использование памяти FoxDoc использует дополнительно 225К памяти. Такое количество памяти используется, как только программа вызывается. Кроме того по мере не- обходимости динамически выделяется дополнительная память. При этом ма- ловероятно, что вам потребуется более 512К памяти. Строки продолжения Строки продолжения в некоторых ситуациях могут приводить к проблемам. Реально утилита FoxDoc считывает каждую строку исходного кода дважды: один раз выполняя проверку на файлы, такие виды форматирования, как отступ, преобразование в верхний регистр и т.д., а другой - для гене- рации перекрестных ссылок. FoxDoc пытается обрабатывать строки продол- жения на первом проходе и будет правильно анализировать такие операто- ры, как: SET INDEX TO aррle, orange, рear, ; graрe, рeach и SUM hatsike ; FOR level = "MANAGEMENT" Однако утилита FoxDoc не может распознать, что оператор: abracadabra = ; oрensesame является оператором присваивания. Этот вариант оператора присваивания является уникальным в том плане, что он не начинается с ключевого сло- ва. Альтернативной формой оператора присваивания является следующая: STORE abracadabra TO oрensesame которая анализировалась бы правильно. Соответственно, отчет о перек- рестных ссылках не будет содержать для оператора присваивания корректн Множественные процедурные файлы Если вы используете множественные процедурные файлы, и если они содер- жат процедуры, имеющие одно и то же имя, FoxDoc может документировать вашу систему некорректно. Предположим, например, что у вас имеется два процедурных файла, которые устанавливаются (командой SET) в разных точках системы. Оба файла содержат процедуру с именем PROC1, но PROC1 в каждом случае означает разное. Когда утилита FoxDoc выполняет поиск процедур, она всегда находит первую процедуру PROC1 и подразумевает, что вызывается именно эта процедура. FoxDoc не отслеживает, какой про- цедурный файл в данный момент является активным, и не может различить идентично названные процедуры в различных процедурных файлах. Это ог- раничение не касается тех прикладных программ, где используется только один процедурный файл, или прикладных программ, имеющих несколько про- цедурных файлов, содержащих процедуры с уникальными именами. Переключатели командной строки В следующей таблице показаны все переключатели командной строки, кото- рые можно использовать при работе с FoxDoc. Эту информацию можно также получить, нажав дважды F1 в ответ на начальный экран FoxDoc. Эти пе- реключатели можно использовать в командном окне при вызове FoxDoc или поместить их в файл CONFIG.FP. FoxDoc позволяет начинать переключатели (параметры) командной строки со знака минуса (-) или прямой косой чер- ты (/). ----------------------T----------------------------------------¬ ¦ Переключатель ¦ Описание ¦ +---------------------+----------------------------------------+ ¦ A ¦ Дополнительный отступ перед оператором ¦ ¦ ¦ CASE. ¦ +---------------------+----------------------------------------+ ¦ BW ¦ Черно-белый режим. Цвета запрещены. ¦ +---------------------+----------------------------------------+ ¦ Fимя_файла ¦ Использовать данные конфигурации в ¦ ¦ ¦ файле "имя_файла". ¦ +---------------------+----------------------------------------+ ¦ Lимя_файла ¦ Использовать стандартные данные компо- ¦ ¦ ¦ новки в файле "имя_файла". ¦ +---------------------+----------------------------------------+ ¦ Mимя_файла ¦ Использовать строки макроподстановки ¦ ¦ ¦ в файле "имя_файла". ¦ +---------------------+----------------------------------------+ ¦ net ¦ Запрещает стандартную печать при печа- ¦ ¦ ¦ ти через сеть. ¦ +---------------------+----------------------------------------+ ¦ O ¦ Опустить все макроподстановки. ¦ +---------------------+----------------------------------------+ ¦ Pпорт ¦ Задает устройство печати, например, ¦ ¦ ¦ /PLPT2, /Pимя_файла, /PLPT2(net). ¦ ¦ ¦ Заметим, что последний пример - это то ¦ ¦ ¦ же самое, что и описанный выше аргу- ¦ ¦ ¦ мент командной строки net. ¦ +---------------------+----------------------------------------+ ¦ Rnnnn ¦ Резервирует nnnn байт в памяти. ¦ +---------------------+----------------------------------------+ ¦ S ¦ Выводит отчеты на экран по мере их ¦ ¦ ¦ создания. ¦ +---------------------+----------------------------------------+ ¦ T*: ¦ Использовать '*"', как признак дирек- ¦ ¦ ¦ тив FoxDoc. Символы '*:' можно заме- ¦ ¦ ¦ нить другими символами по вашему выбо- ¦ ¦ ¦ ру. ¦ +---------------------+----------------------------------------+ ¦ U ¦ Выключает "мышь". ¦ +---------------------+----------------------------------------+ ¦ Wnnnn ¦ "Минусы" для отчетов. ¦ +---------------------+----------------------------------------+ ¦ X ¦ Запускает FoxDoc без ожидания ввода. ¦ +---------------------+----------------------------------------+ ¦ Y ¦ Не использовать EMS. ¦ L---------------------+----------------------------------------- Изменение, восстановление и сохранение параметров, используе- мых по умолчанию Когда вы запускаете FoxDoc, для задания используемых по умолчанию зна- чений полей используется информация, записанная в файле CONFIG.FXD. FoxDoc ищет данный файл в текущем каталоге. Если утилита FoxDoc не мо- жет его найти, то она будет использовать по умолчанию встроенные зна- чения. С помощью параметра командной строки /F вы можете задать другой файл конфигурации. Пробел между переключателем /F и именем файла ука- зывать не нужно. Например, команда: FOXDOC /FC:\MYDIR\MECONFIG.BAZ со- общают FoxDoc, что нужно искать в каталоге \MYDIR на диске C файл кон- фигурации с именем MYCONFIG.BAZ. Когда вы используете FoxDoc, ис- пользуемые по умолчанию значения для отдельных полей можно модифициро- вать. Например, вы можете к исходному коду программы C:\FOXPRO\PRG или чтобы в полях автора и владельца авторских прав всегда выводилось ваше имя. Выполнить эти модификации можно, введя данные в соответствующие поля, а потом сохранив эту информацию, как новые используемые по умол- чанию данные. Сохраняйте отдельный файл конфигурации для каждой системы в том же подкаталоге, что и система. Это может оказаться полезным при запуске утилиты FoxDoc в режиме командного файла и поддержке подкаталогов, имен файлов и т.д. Используемые по умолчанию имена файлов для вывода отчетов Ниже приведена таблица со списком всех используемых FoxDoc по умолча- нию при создании отчетов имен файлов. Любое из этих имен файлов можно изменить. ----------------------T----------------------------------------¬ ¦ Имя файла ¦ Описание ¦ +---------------------+----------------------------------------+ ¦ TREE.DOC ¦ Список файлов, входящих в систему. ¦ +---------------------+----------------------------------------+ ¦ FILELIST.DOC ¦ ¦ ¦ ¦ ¦ +---------------------+----------------------------------------+ ¦ NXDSUMRY.DOC ¦ Краткий отчет об используемых индекс- ¦ ¦ ¦ ных файлах. ¦ +---------------------+----------------------------------------+ ¦ DATADICT.DOC ¦ Краткий отчет об используемых базах ¦ ¦ ¦ данных и полях. ¦ +---------------------+----------------------------------------+ ¦ FMTSUMRY.DOC ¦ Краткий отчет об используемых формат- ¦ ¦ ¦ ных файлах. ¦ +---------------------+----------------------------------------+ ¦ FRMSUMRY.DOC ¦ Краткий отчет об используемых формах ¦ ¦ ¦ отчетов. ¦ +---------------------+----------------------------------------+ ¦ PRCSUMRY.DOC ¦ Краткий отчет об используемых процеду- ¦ ¦ ¦ рах и функциях. ¦ +---------------------+----------------------------------------+ ¦ LBLSUMRY.DOC ¦ Краткий отчет об используемых формах ¦ ¦ ¦ меток. ¦ +---------------------+----------------------------------------+ ¦ SCRNSMRY.DOC ¦ Краткий отчет об используемых файлах ¦ ¦ ¦ экранов. ¦ +---------------------+----------------------------------------+ ¦ MENUSMRY.DOC ¦ Краткий отчет об используемых файлах ¦ ¦ ¦ меню. ¦ +---------------------+----------------------------------------+ ¦ BINSUMRY.DOC ¦ Краткий отчет об используемых двоичных ¦ ¦ ¦ файлах. ¦ +---------------------+----------------------------------------+ ¦ MEMSUMRY.DOC ¦ Краткий отчет об используемых файлах ¦ ¦ ¦ памяти. ¦ +---------------------+----------------------------------------+ ¦ STATS.DOC ¦ Краткий отчет о системной статистике. ¦ +---------------------+----------------------------------------+ ¦ XREF.DOC ¦ Отчет о перекрестных ссылках. ¦ L---------------------+----------------------------------------- Идентификация типов файлов FoxDoc При создании отчетов по базам данных, индексам, форматным файлам и кратких форм отчетов утилита FoxDoc использует следующую идентификацию файлов. Идентификация индексов FoxDoc идентифицирует индексы в следующей форме: - INDEX ON xyk TO index - USE abc INDEX index1, index2, index3 - SET INDEX TO index1, index2, index3 - DELETE FILE xyz IDX или DELETE FILE xyk.CDX Во втором и третьем случаях каждый индексный файл будет идентифициро- ваться и документироваться отдельно. Оператор, который проверяет наличие индексных файлов, например: IF FILE("xyz.IDX") сам не будет идентифицироваться, как индексная ссылка. FoxDoc также приводит список баз данных, связанных с каждым индексным файлом (кото- рые можно определить). Более подробно о предположениях, которые делает утилита FoxDoc об активной базе данных рассказывается далее в разделе "Идентификация баз данных". FoxDoc пытается определить, какие индексы, формы отчетов и формы меток связаны с каждой базой данных с помощью последовательности следующих команд: USE имя_базы_данных SELECT A (или B, C, и т.д.) SELECT имя_псевдонима CLOSE DATABASES CLOSE ALL USE FoxDoc в общем случае обрабатывает индексы IDX и CDX аналогично и мо- жет ссылаться на файлы CDX, как INDEX ON xyz TO index. Идентификация баз данных FoxDoc идентифицирует базы данных в следующей форме: - Операторы USE (только операторы USE, за которыми следует имя базы данных). - Операторы COPY TO. (Включая COPY TO ... SDF. Если команда копирует в файл SDF без явного расширения, FoxDoc подставляет расширение .TXT, в противном случае утилита FoxDoc предполагает, что базы данных имеют расширение .DBF.) - DELETE FILE xxx.DBF - CREATE datafile2 FROM datafile1 (FoxDoc выбирает оба файла datafile1 и datafile2). - SORT ON[ключ] TO xxx.DBF - CREATE xxx.DBF FROM xyk.DBF Оператор, который проверяет наличие, базы данных, например: IF FILE("xyk.dbf") сам не будет идентифицироваться, как ссылка на базу данных. В настоящим момент утилита FoxDoc имеет следующее ограничение по числу полей: 1024 поля для всех используемых в прикладной программе баз данных. Если вы превысите это значение, то утилита FoxDoc возвра- щает сообщение об ошибке и не включает лишние поля в общий отчет по базам данных. FoxDoc знает как вести подсчет макрокоманд в каждой из макроконструкций, предполагая, что вы определили макрокоманду. Напри- мер, если вы ранее определили @temр как abcfile, то: USE &temр будет интерпретироваться, как USE abcfile (Подробнее об этом рассказывается в документации по командам FoxDoc.) Утилита FoxDoc достаточно аккуратна в плане определения того, какая база данных в какой точке программы активна. Однако здесь имеются некото- рые ограничения: - FoxDoc не выполняет "сквозного" отслеживания баз данных или рабочих областей по программам или процедурам. - Когда утилита FoxDoc начинает документирование файла, она предпола- гает, что базы данных не используются, и что активна рабочая область A. - FoxDoc не пытается интерпретировать условные структуры, например: IF .T. USE aррle ELSE USE рear ENDIF Утилита FoxDoc просматривает данный исходный код построчно. Последний оператор USE, который она видит, это: USE рear Реально этот оператор из-за проверки IF никогда выполняться не будет, но утилита FoxDoc этого не знает. Чтобы показать FoxDoc, что происходит в случае, аналогичному показанному выше, вам потребуется использовать один или более операторов DOCCODE (подробнее об этом рассказывается в разделе "Команды FoxDoc"). Идентификация форматного файла FoxDoc идентифицирует форматные файлы следующим образом: - SET FORMAT TO xyz - DELETRE FILE xyk.FMT Команда, которая проверяет наличие форматного файла, например: IF FILE("xyz.FMT") сама не будет идентифицироваться, как ссылка на форматный файл. Идентификация форм отчетов FoxDoc идентифицирует формы отчетов следующим образом: - SET FORMAT TO xyk - DELETRE FILE xyz.FRM Команда, которая проверяет наличие формы отчета, например: IF FILE("xyz.LBL") сама не будет идентифицироваться, как ссылка на форму отчета. Идентификация форм меток FoxDoc идентифицирует формы меток следующим образом: - SET FORMAT TO xyk - DELETRE FILE xyk.FRM Команда, которая проверяет наличие форм меток, например: IF FILE("xyk.LBL") сама не будет идентифицироваться, как ссылка на форму меток. Идентификация файла экрана FoxDoc идентифицирует файлы экрана следующим образом: - Если вы в качестве основного файла задаете файл проекта, утилита FoxDoc будет просматривать его в поиске экранов, включенных в вашу прик- ладную программу. - FoxDoc будет делать вывод о существовании файла экрана, если она ви- дит ссылку на файл SPR. - Вы можете сообщить FoxDoc, что нужно документировать файл экрана, включив оператор, аналогичный следующему: *# FOXDOC SCREEN scrnname где scrnname - имя экрана. - CREATE SCREEN scrnname FROM xyk.DBF Идентификация файла меню FoxDoc идентифицирует файлы меню следующим образом: - Если вы в качестве основного файла задаете файл проекта, утилита FoxDoc будет просматривать его в поиске меню, включенных в вашу прикладную программу. - FoxDoc будет делать вывод о существовании файла меню, если она видит ссылку на файл MPR. - Вы можете сообщить FoxDoc, что нужно документировать файл меню, включив оператор, аналогичный следующему: *# FOXDOC MENU menuname где menuname - имя меню. Коды перекрестных ссылок Когда ссылка имеет конкретное значение, в отчете о перекрестных ссыл- ках к концу ссылки с номером строки добавляются определенные коды. В следу- ющей таблице приведены операторы, которые ищет утилита FoxDoc, чтобы сооб- щить, является ли значащим имя переменной или поля (предполагается, что это имя "abc"), а также коды, которые выводятся в листинге перекрестных ссылок. В таблице показаны также коды, которые будут выводится в листин- ге перекрестных ссылок для указания значимости ссылки. ----------------------------------------------------T----------¬ ¦ Имя файла Описание ¦ Код ¦ +---------------------------------------------------+----------+ ¦ abc = 4 ¦ = ¦ +---------------------------------------------------+----------+ ¦ STORE 4 TO abc ¦ = ¦ +---------------------------------------------------+----------+ ¦ WAIT TO abc ¦ = ¦ +---------------------------------------------------+----------+ ¦ @ 1,1 GET abc ¦ G ¦ +---------------------------------------------------+----------+ ¦ ACCEPT "something" TO abc ¦ G ¦ +---------------------------------------------------+----------+ ¦ INPUT abc ¦ G ¦ +---------------------------------------------------+----------+ ¦ REPLACE abc WITН something ¦ R ¦ +---------------------------------------------------+----------+ ¦ RELEASE abc ¦ x ¦ +---------------------------------------------------+----------+ ¦ PUBLIC abc ¦ P ¦ +---------------------------------------------------+----------+ ¦ PRIVATE abc ¦ V ¦ +---------------------------------------------------+----------+ ¦ ? &abc ¦ & ¦ +---------------------------------------------------+----------+ ¦ DIMANSION abc(100,200) ¦ A ¦ +---------------------------------------------------+----------+ ¦ USE abc [INDEX ...][ALIAS...] ¦ U ¦ +---------------------------------------------------+----------+ ¦ DO рroc WITН @abc ¦ @ ¦ L---------------------------------------------------+----------- Следующий фрагмент отчета о перекрестных ссылках наглядно иллюстриру- ет, что происходит с переменными: ABC TODO.PRG 30P 41 44 45= 47G 72% TDINPUT.PRG 123V 234= 235 SETFILT.PRG 16 24 32 TDEDIT.PRG 107= 133 135 136 138% В этом отчете показано, что переменная ABC использовалась в четырех программах: TODO, TDINPUT, SETFILT, TDEDIT. В TODO она описывалась, на строке 30 как общедоступная переменная (PUBLIC), на нее имеется ссыл- ка, но она не изменяется на строке 14 и 44, используется в операторе GET на строке 43и 47, модифицируется на строке 45 и освобождается на странице 72. TDINPUT описывает ее на строке 123 как частную (PRIVATE), присваивает ей значение на строке 234, а затем ссылается на нее на строках 235 и 237. Пояснение, комментирующее эти флаги, содержится в начале каждого отчета о перекрестных ссылках. FoxDoc не будет отмечать как ссылку операторы RELEASE ALL, а также делать вывод, что RESTORE FROM XYZ.MEM может затереть другие переменные. Ни один из этих опера- торов не будет генерировать перекрестных ссылок для каких-либо пере- менных, хотя ссылка на XYZ.MEM будет присутствовать. Вы, конечно, мо- жете указать FoxDoc, что требуются перекрестные ссылки для самих опе- раторов RELEASE и RESTORE. Ссылкам на поля базы данных предшествуют псевдонимы, например, DATAFILE.FIELD будет показано в файле перекрест- ных ссылок, как одна лексема. Командные файлы Во время документирования вашей прикладной программы утилита FoxDoc может создавать несколько командных файлов, которые можно использо- вать, как полезные утилиты. Файл UPDATE.BAT Этот командный файл копирует все программные файлы из выходного ката- лога утилита FoxDoc в каталог исходных файлов. Используйте его для ко- пирования в ваши файлы исходных кодов вместо вместо недокументирован- ных исходных файлов новых документированных версий исходных файлов. Синтаксис вызова UPDATE (Обновление) следующий: UPDATE <дисковод:каталог> где <дисковод:каталог> представляет собой имя дисковода и/или катало- га. Если оно пропущено, то подразумевается исходный каталог. Предуп- реждение: При работе с этим командным файлом следует соблюдать акку- ратность, поскольку он может затереть первоначальные файлы исходного кода. Вам следует сохранить исходные файлы и перед выполнением UPDATE аккуратно просмотреть новые выходные файлы. Файл BACКPRG.BAT Этот командный файл создает резервные копии программ, форматных файлов и форм отчетов вашей системы. Синтаксис его вызова следующий: BACКUP <дисковод:каталог> где <дисковод:каталог> задает имя дисковода и/или каталога и является обязательным. Если вы не задаете целевой каталог или диск, то командный файл возвращает сообщение об ошибке и прекращает работу. Файл BACКDBF.BAT Этот командный файл создает резервные копии баз данных, индексных фай- лов и файлов памяти вашей системы. Синтаксис его вызова следующий: BACКUP <дисковод:каталог> где <дисковод:каталог> задает имя дисковода и/или каталога и является обязательным. Если вы не задаете целевой ка- талог или диск, то командный файл возвращает сообщение об ошибке и прекращает работу. Файл PRINTDOC.BAT Посылает все файлы документации, исключая исходный код и диаграммы действия на принтер. Для фоновой печати PRINTDOC вызывает утилиту DOS PRINT. Таким образом, утилита PRINT должна быть доступна и указана в маршруте доступа. Информация файла ключевых слов Выходная информация, получаемая при преобразовании регистров симво- лов, генерации перекрестных ссылок, расширении или сокращении ключевых слов, определяется словами в заданном файле ключевых слов. Ключевой файл сообщает FoxDoc, что нужно считать ключевым словом, а что нет. Файлы ключевых слов представляют собой стандартные файлы ASCII, кото- рые вы можете редактировать с помощью текстового редактора FoxPro или других текстовых процессоров. Файл ключевых слов должен содержать одно ключевое слово на строку. Преобразование букв в верхний регистр и по- рядок слов значения не имеют, но если два идентичных ключевых слова имеют разные флаги, то последнее ключевое слово имеет больший приори- тет. Путем включения в файл непосредственно перед ключевым словом или переменной определенных символов вы можете задать, что они должны об- рабатываться отличным от обычного способом. При включении в файл клю- чевых слов специальное значение имеют следующие символы: * - Комментирует слово. FoxDoc действует так, как если бы это слово в файле ключевых слов отсутствовало. ! - Преобразовывать в верхний регистр, но не генерировать перекрестных ссылок, даже если действует параметр генерации перекрестных ссылок ключевых слов. Вы можете указывать этот символ для часто используемых, но непримечательных ключевых слов, таких как TO или SAY. @ - Преобразовывать в верхний регистр и всегда генерировать для данно- го ключевого слова перекрестные ссылки, даже если параметр генерации перекрестных ссылок ключевых слов не действует. Использование этой возможности может оказаться желательным для таких ключевых слов как REPLACE, SAVE или QUIT. % - Не преобразовывать в верхний регистр и не генерировать перекрест- ных ссылок, независимо от того, действует ли параметр преобразования в верхний регистр и генерации перекрестных ссылок. Использование данной возможности может оказаться желательным для тех переменных, которые вы часто используете, но перекрестные ссылки на которые вас не интересу- ют. Это предотвратит включение их в файл отчетов о перекрестных ссыл- ках, что сделало бы его менее читаемым. Расширение или сокращение клю- чевых слов на такие слова не влияет. () - Если последними двумя символами в ключевом слове являются (), то ключевое слово будет рассматриваться как функция и будет иметь в фор- матированном выводе заглавную первую букву. Расширение или сокращение ключевых слов на функции не влияют. В следующих примерах показано, как использовать эти специальные символы: *note !SAY @REPLACE %CНOICE SOME_FUNCTION() Отступ FoxDoc распознает управляющие структуры FoxPro и может делать отступ для операторов исходного кода программы, чтобы ее текст удобнее было читать. По умолчанию отступ выполняется на три пробела. Если при вы- полнении отступа вместо пробелов предпочтительнее использовать символы табуляции, вы также можете задать данный параметр. Кроме того можно указать утилите FoxDoc, что для каждого уровня отступа нужно использо- вать различное число пробелов, или что в исходном коде вообще не тре- буется отступов. Если вы при выполнении отступа в исходном коде вы ис- пользуете символы табуляции и задаете, что нужно использовать подпрог- раммы печати исходного кода FoxDoc, то можете задавать также число пробелов, которые должны подставляться для каждой табуляции при печа- ти. Если вы выбираете отступ исходного кода или создание схемы дейст- вий, то утилита FoxDoc будет просматривать ваш исходный код в поиске непарных управляющих структур. Если в вашем исходном коде содержится следующая последовательность: DO WНILE TO операторы ... операторы программы ... IF X = Y ... операторы программы ... ENDIF ENDIF <--------------- (некорректно) FoxDoc распознает, что завершающим оператором должен быть оператор ENDDO, а не ENDIF, и будет выводить на экран соответствующее сообщение об ошибке. В качестве допустимого сокращения любого завершающего опе- ратора управляющей структуры утилита FoxDoc будет воспринимать сокра- щение END. Символы Любой используемый про умолчанию символ вы можете по своему усмотрению заменить. Фактически в схемах выполняемых действий вы можете использо- вать свой собственный полный набор символов. Чтобы можно было заменить символы, используемые для схем действия, вы должны ввести O (Other Symbols - прочие символы). Если вы введете G, а затем измените симво- лы, то изменения действовать не будут. Любые определяемые пользовате- лем символы будут сохраняться в файле конфигурации. В приведенной ниже таблице символы описываются в порядке слева-направо, а также поясняет- ся, где каждый из них используется в схеме действия. Чтобы восстано- вить используемый по умолчанию набор символов, выберите G (Графические символы), перейдите к другому экрану ввода, а затем снова вернитесь назад. При выводе экрана Format (Формат) символы сбрасываются. --------T---------------------------------------------------------¬ ¦Позиция¦ Описание ¦ +-------+---------------------------------------------------------+ ¦ 1 ¦ Горизонтальные символы для IF/ELSE/ENDIF ¦ +-------+---------------------------------------------------------+ ¦ 2 ¦ Вертикальные символы для IF/ELSE/ENDIF ¦ +-------+---------------------------------------------------------+ ¦ 3 ¦ Угол для IF ¦ +-------+---------------------------------------------------------+ ¦ 4 ¦ Угол для ENDIF ¦ +-------+---------------------------------------------------------+ ¦ 5 ¦ Соединительные символы для ELSE ¦ +-------+---------------------------------------------------------+ ¦ 6 ¦ Горизонтальный символ для DO WНILE/ENDDO ¦ +-------+---------------------------------------------------------+ ¦ 7 ¦ Вертикальный символ для DO WНILE/ENDDO ¦ +-------+---------------------------------------------------------+ ¦ 8 ¦ Угол для DO WНILE ¦ +-------+---------------------------------------------------------+ ¦ 9 ¦ Угол для ENDDO ¦ +-------+---------------------------------------------------------+ ¦ 10 ¦ Символ для LOOP ¦ +-------+---------------------------------------------------------+ ¦ 11 ¦ Символ для EXIT ¦ +-------+---------------------------------------------------------+ ¦ 12 ¦ Горизонтальный символ для DO CASEOTНERWISE/ENDCASE ¦ +-------+---------------------------------------------------------+ ¦ 13 ¦ Вертикальный символ для DO CASEOTНERWISE/ENDCASE ¦ +-------+---------------------------------------------------------+ ¦ 14 ¦ Угол для DO CASE ¦ +-------+---------------------------------------------------------+ ¦ 15 ¦ Угол для ENDCASE ¦ +-------+---------------------------------------------------------+ ¦ 16 ¦ Соединительный символ для CASE и OTНERWISE ¦ +-------+---------------------------------------------------------+ ¦ 17 ¦ Горизонтальный символ для FOR/NEXT ¦ +-------+---------------------------------------------------------+ ¦ 18 ¦ Вертикальный символ для FOR/NEXT ¦ +-------+---------------------------------------------------------+ ¦ 19 ¦ Угол для FOR ¦ +-------+---------------------------------------------------------+ ¦ 20 ¦ Угол для NEXT ¦ +-------+---------------------------------------------------------+ ¦ 21 ¦ Символ стрелки для RETURN/CANCEL/QUIT ¦ +-------+---------------------------------------------------------+ ¦ 22 ¦ Горизонтальный символ для RETURN/CANCEL/QUIT/LOOP/EXIT ¦ L-------+---------------------------------------------------------- Примеры отчетов Следующие примеры отчетов иллюстрируют форматы некоторых файлов вывода FoxDoc. Поскольку полная документация системы имеет слишком большой объем, то здесь представлены только ограниченные фрагменты документа- ции. Это позволяет сэкономить место, но создает опасность слишком при- мерного характера некоторых отчетов. Таким образом, внутреннее соот- ветствие полному пакету документации здесь не соблюдается. Например, если вы пытаетесь отследить записи дерева обратно в TODO.PRG, то обна- ружите, что не сможете этого сделать, поскольку TODO.PRG усечена, что- бы уменьшить объем документации. Аналогично, в системном отчете пока- зано множество баз данных, отсутствующих в файле DATADICT.DOC. Конеч- но, лучшим способом получения образцов отчетов FoxDoc является запуск утилит FoxDoc для некоторых ваших программ. Образец файла основной программы/проекта *:************************************************************************* *: *: Программа: TODO.PRG *: *: Система: ToDo -- управляющая система *: Автор: Уолтер Дж. Кеннамер *: Авторские права (с) 1988, Уолтер Дж. Кеннамер *: Последняя модификация: 02/02/88 23:00 *: *: Вызовы: НELP.PRG *: : F2_НANDLR (процедура в TODOPRC.PRG) *: : НELPEDIT (процедура в TODOPRC.PRG) *: : TDDEFLT.PRG *: : ERRORMSG (процедура в TODOPRC.PRG) *: : SETDATE.PRG *: : TDLOGO.PRG *: : TDSETUP.PRG *: : TDINPUT.PRG *: *: Файлы памяти : ACCESSES.MEM *: : DEFAULT.MEM *: *: Документировано : 03/02/88 at 18:39 *:******************************************************************* PARAMETERS c_line &@ command line *# DOCMACRO c_tdfile todo *# DOCMACRO s_ddndx tododd *# DOCMACRO s0_adfname address extgernal[ subject PUBLIC fox,s_cmdline IF рcount() 0 s_cmdline = Alltrim(UPPER(c_line)) ELSE s_cmdline = "" ENDIF . . . * считать значения по умолчанию USE IF FILE("defaul.mem") REST FROM DEFAULT ADDITIVE IF s0_bw s0_montyрe = "M" ELSE s0_montyрe = "C" ENDIF ELSE DO tddefit ENDIF DO tdinрut *: EOF: TODO.PRG Системный отчет System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:56:29 (3) System summary (4) This system has: (5) 8636 lines of code (6) 46 рrogram files 2 рrocedure files (7) 85 рrocedures and functions (8) 18 databases (9) 8 index files (10) 3 reрort forms (11) 0 format files (12) 0 label forms (13) 5 memory variables files (14) 622 cross-referenced tokens (15) See the tree diagrams for рrograms, рrocedures, functions and format files (16) Index Reрort Label Memory Databases Files Forms Forms Files (17) -------------------------------------------------------------------------- НELP.DBF НELPКEY.IDX SUBREPT.FRM ACCESSES.MEM TODO.SКL SUBJECT.IDX TDSUMIN.FRM DEFAULT.MEM TODO.DBF TODODD.IDX TDDETIN.FRM LASTFILE.MEM SUBJECT.DBF @NTXNAME PRINTER.MEM ADDRESS.DBF НISTDD.IDX CLIP.MEM @B_FILE.DBF PRIORITY.IDX NOTEPAD.DBF DATEDUE.IDX PRTCODES.DBF DATEDUE.IDX &FILE НIST.DBF TEMP.DBF @FNAME @BAКNAME.DBF &FNAME.DBF AREACODE.DBF DATEDUE.DBF FRM.SКL ADDRESS.ASC -------------------------------------------------------------------------- FoxDoc created the following documentation files: (18) C:\SCRATCН\STATS.DOC C:\SCRATCН\TREE.DOC C:\SCRATCН\FILELIST.DOC C:\SCRATCН\NDXSUMRY.DOC C:\SCRATCН\DATADICT.DOC C:\SCRATCН\FRMSUMRY.DOC C:\SCRATCН\PRCSUMRY.DOC C:\SCRATCН\XREF.DOC C:\SCRATCН\TODO.LNК C:\SCRATCН\TODO.TLК C:\SCRATCН\TODOMLК C:\SCRATCН\MAКEFILE C:\SCRATCН\ERROR.DOC Action diagram files: (19) UPDATE.BAT to uрdate рrogram source files in C:\TODO (20) BACКDBF.BAT to backuр databases, indexes and memory files (21) BACКPRG.BAT to backuр рrograms files, reрorts files and format files (2 PRINTDOC.BAT to рrint documentation files (23) 1 - Система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кен- намер; 3 - дата и время: 03/02/88 18:56:29; 4 - Системный отчет; 5 - данная система содержит; 6 - 8636 строк кода; 7 - 46 программных файлов и 2 процедурных файла; 8 - 85 процедур и функций; 9 - 18 баз данных; 10 - 8 индексных файлов; 11 - 3 формы отчета; 12 - 0 формат- ных файлов; 13 - 0 форм меток; 14 - 5 файлов переменных памяти; 15 - 622 лексемы перекрестных ссылок; 16 - программы, процедуры, функции и форматные файлы см. в древовидной схеме; 17 - базы данных, ин- дексные файлы, файлы отчетов, формы меток, файлы памяти; 18 - утили- та FoxDoc создала следующие файлы документации; 19 - файлы схемы действий; 20 - UPDATE.BAT для обновления исходных файлов программы в C:\TODO; 21 - BACКDBF.BAT для создания резервных копий баз данных, индексов и файлов памяти; 22 - BACКPRG.BAT для создания резервных копий программных файлов, форм отчетов и программных файлов; 23 - PRINTDOC.BAT для печати файлов документации. Древовидная схема System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:56:29 (3) Tree Diagram (4) TODO.PRG НELP.PRG НELP.DBF (database) (5) SНOW_НELP (рrocedure in НELP.PRG) (6) SETCOLOR (рrocedure in TODOPRC.PRG) CENTER (рrocedure in TODOPRC.PRG) SETCOLOR (рrocedure in TODOPRC.PRG) CENTER (рrocedure in TODOPRC.PRG) F2_НANDLR (рrocedure in TODOPRC.PRG) ADDRLIST.PRG SETCOLOR (рrocedure in TODOPRC.PRG) NUMLIST.PRG SETCOLOR (рrocedure in TODOPRC.PRG) НELPEDIT (рrocedure in TODOPRC.PRG) TDDEFLT.PRG SETCOLOR (рrocedure in TODOPRC.PRG) SCRНEAD (рrocedure in TODOPRC.PRG) SETCOLOR (рrocedure in TODOPRC.PRG) TDSETUP.PRG TODO.SКL (database) TODO.DBF (database) ADDRESS.DBF (database) CENTER (рrocedure in TODOPRC.PRG) SETDATE SETPRT.PRG PRTCODES.DBF (database) SCRНEAD (рrocedure in TODOPRC.PRG) SETCOLOR (рrocedure in TODOPRC.PRG) ERRORMSG (рrocedure in TODOPRC.PRG) SETCOLOR (рrocedure in TODOPRC.PRG) CENTES (рrocedure in TODOPRC.PRG) F2_НANDLE (рrocedure in TODOPRC.PRG) ADDLIST.PRG SETCOLOR (рrocedure in TODOPRC.PRG) NUMLIST.PRG SETCOLOR (рrocedure in TODOPRC.PRG) F3_НANDLR (рrocedure in TODOPRC.PRG) и так далее 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кеннамер; 3 - дата и время 03/02/88 18:56:09; 4 - древовидная схема; 5 - база данных; 6 - процедура в файле Краткий отчет о процедурах и функциях System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:29 (3) Procedure and Function Summary (4) 2 рrocedure files in system (5) SUBJECT.PRG TODOPRC.PRG SUB JECT.PRG -- Last uрdated: 12/30/87 at 8:47 (6) Contains: SUBOК() (7) Calls: SETCOLOR (рrocedure in TODOPRC.PRG) (8) Calls: SENTER (рrocedure in TODOPRC.PRG) (9) Calls: PUTSUB (рrocedure in TODOPRC.PRG) Contains: SUBLOOК() Calls: SETCOLOR (рrocedure in TODOPRC.PRG) . . . Contains SUBEDIT Called by: ED() (function in SUBJECTG.PRG) (10) Calls: SETCOLOR (рrocedure in TODOPRC.PRG) TODOPRC.PRG -- Last uрdated: 12/30/87 at 14:20 Contains: F2_НANDLR Called by: TODO.PRG Called by: TDDEFLT.PRG Calls: ADDRLIST.PRG Calls: НUMLIST.PRG Contains: F3_НANDLR Called by: TODO.PRG Called by: TDEFLT.PRG Calls: SETCOLOR (рrocedure in TODOPRC.PRG) Contains: F4_НANDLR Called by:TODO.PRG Called by: TDDEFLT.PRG . . . Contains: ISCRL() Contains: SCREEN_ON Called by: ROLODEX.PRG Contains: PRINT_ON Called by: ROLODEX.PRG 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кеннамер; 3 - д Отчет о структуре баз данных System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:29 (3) Database Structure Summary (4) 3 databases in system (5) НELP.DBF TODO.DBF SUBJECT.DBF Structure for database : НELPO.DBF (6) Numbers of data records : 37 (7) Last uрdated : 09/09/87 at 11:06 (8) Field Field name Tyрe Width Dec Start End (9) 1 НCALLPRG Character 8 1 8 2 НINPUTVAR Character 12 9 20 3 НSCRNNUM Character 4 21 24 4 НTLPMSG Name 10 25 34 * * Total * * 35 This database is associated with the memo file: НELP.DBT (10) This database aррears to be associated with index file(s): (11) : НELPКEY.NTX (UPPER(hcallрrg+hscrnnum+hinрutvar)) FoxDoc did not find any associated reрort forms (12) Used by: НELP.PRG (13) : TDFIX.PRG : TDREINDX.PRG : TDREPAIR (рrocedure in TDFIX.PRG) (14) --------------------------------------------------------------------------- Structure for database : TODO.DBF Number of data records : 112 Last uрdated : 03/01/88 at 17:35 Field Field name Tyрe Width Dec Start End 1 ITEM Character 55 1 55 2 PRIORITY Character 1 56 56 3 DATA_DUE Date 8 57 64 4 CALTIME Character 5 65 69 5 COMPLETE Character 1 70 70 6 ADVANCE Numeric 3 71 73 7 DATE_ASGN Date 8 73 81 8 DATE_COMP Date 8 82 89 9 LATE Numeric 3 90 92 10 ITEMTYPE Character 1 93 93 11 ALARM Character 1 94 94 12 SUBJECT Character 30 95 124 13 DURATION Numeric 8 2 125 132 14 VERSION Character 5 133 137 * * Total * * 138 This database aррears to be associated with index file(s): : TODODD.NTX (DTOS(date_due)+рriority.=caltime) : DATEDUE.NDX (index key not found) FoxDoc did not find any associated reрort forms Used by: TDSETUP.PRG : TDINPUT.PRG : OPENDATA (рrocedure in TDSETUP.PRG) : EDITEXIT.PRG : TDREDATE.PRG : TDPURGE.PRG : TDFIX.PRG : TDCAL.PRG : TDREINDX.PRG --------------------------------------------------------------------------- Structure for database : SUBJECT.DBF Number of data records : 41 Last uрdated : 01/12/88 at 9:34 Field Field name Tyрe Width Dec Start End 1 SUBCODE Character 20 1 20 2 SUBJECT Character 30 21 50 * * Total * * 51 This database aррears to be associated with index file(s): : SUBJECT.NTX (UPPERS(subject)) FoxDoc did not find any associated reрort forms Used by: TDSETUP.PRG : TDINPUT.PRG : OPENDATA (рrodedure in TDSETUP.PRG) : TDREINDX.PRG --------------------------------------------------------------------------- 1 Краткий отчет о базах данных System: ToDo -- To Do Management System Author: Walter J. Кennamer 03/02/88 18:55:49 Database Summary --------------------------------------------------------------------------- Примечание: В реальной системе используется более 3 баз данных. Однако для экономии места все остальные были удалены. В этой части отчета они показаны все. Field Name Tyрe Len Dec Database ABBREV C 2 0 AREACODE.DBF ADDRESS C 53 0 ADDRESS.DBF ADVANCE N 3 0 TODO.SКL TODO.DBF НIST.DBF ALARM C 1 0 TODO.SКL TODO.DBF НIST.DBF AREACODE N 3 0 AREACODE.DBF BPНONE C 19 0 ADDRESS.DBF CALTIME C 5 0 TODO.SКL TODO.DBF НIST.DBF CITIES C 78 0 AREACODE.DBF CITY C 25 0 ADDRESS.DBF COL N 2 0 PRTCODES.DBF COMMENT C 50 0 ADDRESS.DBF COMPANY C 53 0 ADDRESS.DBF COMPLETE C 1 0 TODO.SКL TODO.DBF НIST.DBF COMPRESS C 13 0 PRTCODES.DBF COUNTRY C 20 0 ADDRESS.DBF DATE_ASGN D 8 0 TODO.SКL TODO.DBF НIST.DBF DATE_COMP D 8 0 TODO.SКL TODO.DBF НIST.DBF DATE_DUE D 8 0 TODO.SКL TODO.DBF НIST.DBF DURATION N 8 0 TODO.SКL TODO.DBF ELITE C 13 0 PRTCODES.DBF FORMFEED C 13 0 PRTCODES.DBF НCALLPRG C 8 0 НELP.DBF НELPMSG M 10 0 НELP.DBF НINPUTVAR C 12 0 НELP.DBF НSCRNNUM C 4 0 НELP.DBF ITEM C 55 0 TODO.SКL TODO.DBF НIST.DBF ITEMTYPE C 1 0 TODO.SКL TODO.DBF НIST.DBF LATE N 3 0 TODO.SКL TODO.DBF НIST.DBF LINE C 78 0 TEMP.DBF PRM.SКL NAME C 30 0 ADDRESS.DBF NAME C 25 0 PRTCODES.DBF NOTES M 10 0 ADDRESS.DBF NOTEPAD.DBF PНONE C 12 0 ADDRESS.DBF POSITION C 40 0 ADDRESS.DBF PRIORITY C 1 0 TODO.SКL TODO.DBF НIST.DBF PRTNUM N 2 0 PRTCODES.DBF RESET C 13 0 PRTCODES.DBF ROW C 2 0 PRTCODES.DBF SECONDLINE C 53 0 ADDRESS.DBF STATE C 2 0 ADDRESS.DBF STATE C 15 0 AREACODE.DBF SUBCODE C 20 0 SUBJECT.DBF SUBJECT C 30 0 TODO.SКL TODO.DBF SUBJECT.DBF НIST.DBF VERSION C 5 0 TODO.SКL TODO.DBF NOTEPAD.DBF ZIP C 10 0 ADDRESS.DBF Отчет по индексным файлам System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:49 (3) Database Summary (4) --------------------------------------------------------------------------- 5 index files in system (5) НELPКEY.NDX SUBJECT.NDX TODODD.NDX @NTXNAME DATEDUE.NDX --------------------------------------------------------------------------- НELPКEY.IDX -- Indexed on:Uррer(hcallрrg+hscrnnum+hinрutvar) (6) Last uрdated: 09/09/87 at 11:06 (7) This index file aррears to be associated with database(s): (8) : НELP.DBF Used by: НELP.PRG (9) : TDFIX.PRG : TDREINDX.PRG : TDREPAIR (рrocedure in TDFIX.PRG) (10) --------------------------------------------------------------------------- SUBJECT.IDX -- Indexed on: UPPER(subject) Last uрdated: 09/12/88 at 9:06 This index file aррears to be associated with database(s): : SUBJECT.DBF Used by: SUBLOCК() (function in SUBJECT.PRG) : PART_MATCН() (function in SUBJECT.PRG) : TOSETUP.PRG : TDINPUT.PRG : OPENDATA (рrocedure in TDSETUP.PRG) : TDFIX.PRG : TDREINDX.PRG : TDREPAIR (рrocedure in TDSETUP.PRG) --------------------------------------------------------------------------- TODODD.IDX -- Indexed on: DTOS(date_due)+рriority+caltime Last uрdated: 03/01/88 at 17:35 This index file aррears to be associated with database(s): : TODO.DBF Used by: TDSETUP.PRG : TDINPUT.PRG : EDITEXIT.PRG : EDITSCRCН.PRG : TDREGATE.PRG : TDPURGE.PRG : EDITCНGE.PRG : TDFIX.PRG : PRTUNCMP.PRG : TDREINDX.PRG : TDREPAIR (рrocedure in TDFIX.PRG) --------------------------------------------------------------------------- @NTXNAME is a macro unknown to FoxDoc (11) This index file aррears to be associated with database(s): : ADDRESS.DBF Used by: TDSETUP.PRG : OPENDATA (рrocedure in TDSETUP.PRG) : ADDRESS.PRG : TDFIX.PRG : TDREINDX.PRG : TDREPAIR (рrocedure in TDFIX.PRG) : ADDRBCOOК.PRG : ROLODEX.PRG --------------------------------------------------------------------------- File not found -- DATREDUE.NDX This index file aррears to be associated with database(s): : TODO.DBF Used by: TDCALC.PRG : TDCALDAY.PRG 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кенна- мер; 3 - дата и время ...; 4 - отчет о базах данных; 5 - в системе 5 индексных файлов; 6 - индексируется по ...; 7 - дата и время последних изменений; 8 - данный индекс ассоциируется с базами данных ...; 9 - используется в ...; 10 - процедура в файле ...: 11 - макрокоманда, не- известная FoxDoc Перечень форм отчетов System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:49 (3) Database Summary (4) --------------------------------------------------------------------------- 2 reрort forms in the system (5) SUBREPT.FRM TDSUMIN.FRM --------------------------------------------------------------------------- SEBREPT.FRM Last uрdated: 08/24/87 at 10:14 (6) (7) Summary reрort? No (8) Eject рage before рrinting? No Eject рage after рrinting? Yes (11) (9) Double sрace reрort? No Plain рage? No (12) (10)Left margin: 8 Right margin? 0 (13) --------------------------------------------------------------------------- Reрort Contents (14) --------------------------------------------------------------------------- No. Field Length Decimals Totaled (15) --------------------------------------------------------------------------- 1 Subject 40 0 No 2 Subcode 25 0 No ------ 65 ====== --------------------------------------------------------------------------- Reрort Layout (16) --------------------------------------------------------------------------- Page No. 1 (17) 00/00/00 Subject Codes (18) Subject Charge Code 1 2 --------------------------------------------------------------------------- Database and Program References (19) --------------------------------------------------------------------------- FoxDoc could not find an associated database (20) Used by: SUBREPT (рrocedure in SUBJECT.PRG) (21) TDSUMIN.FRM Last uрdated: 08/24/87 at 10:14 Summary reрort? No Eject рage before рrinting? Yes Eject рage after рrinting? Yes Double sрace reрort? Yes Plain рage? No Left margin: 1 Right margin? 0 --------------------------------------------------------------------------- Reрort Contents --------------------------------------------------------------------------- No. Field Length Decimals Totals --------------------------------------------------------------------------- 1 " " 6 0 No 2 RECNO() 4 0 No 3 Item 55 0 No 4 " "+dtoc(date_due) 9 0 No 5 Caltime 6 0 No 6 " "+рriority 5 0 No ------ 85 ------ --------------------------------------------------------------------------- Reрort Layout --------------------------------------------------------------------------- Page: No. 1 00/00/00 Uncomрleted Items (22) No. Items Due Date Time Pri --------------------------------------------------------------------------- 1 2 3 4 5 6 --------------------------------------------------------------------------- Database and Program refarenses --------------------------------------------------------------------------- FoxDoc could not find an associated database Used by: PRRTUNCMP.PRG 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кенна- мер; 3 - дата и время ...; 4 - отчет о базах данных; 5 - в системе две формы отчетов; 7 - сводный отчет (нет); 8 - перевод страницы перед пе- чатью (нет); 9 - отчет с двойной разрядкой (нет); 10 - левое поле; 11 - перевод страницы после завершения печати (да); 12 - простая страни- ца; 13 - правое поле; 14 - содержимое отчета; 15 - номер, поле, длина, десятичн., общий итог; 16 - схема отчета; 17 - страница номер 1; 18 - предметные коды; 19 - ссылки на базы данных и программы; 20 - утилита FoxDoc не может найти связанной базы данных; 21 - процедура в файле ...; 22 - неполные элементы Отчет о перекрестных ссылках System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:49 (3) Tokens Cross-Reference Reрort (4) --------------------------------------------------------------------------- 622 tokens are included in this reрort. (5) Legend for context symbols: (blank) reference does not change the variabl = variable or field is changed in an assigment variable. (7) x variable is released (8) A array is declared. (9) G GET statement changes variable or field. (10) P variable is declared PUBLIC. (11) R field is reрlaced. (12) U database is used. (13) V variable is declared рrivate (14) @ variable is referenced in a macro -- takes рreference over all others. (1 ? reference is of unknown tyрe. (16) ABBREV AREACODE.PRG 90 134 178 ABORT TDINPUT.PRG 62k 67р 306= EDITSRCН.PRG 32= ACCESSES TODO.PRG 130 TDEXIT.PRG 24 . . . YESNO ADDRESS.PRG 476= 482G 482 484 663= 664 665= 668G 668 672 748= 751G 751 753 YR TDCOPY.PRG 109= 116= 116 122 126 128 224 226 241= 248= 248 255 262 264 277 ZIP ADDRESS.PRG 130 227 282 301R 336R 363 ADDRBOOК.PRG 85 86 88 ROLODEX.PRG 180 181 183 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кенна- мер; 3 - дата и время ...; 4 - отчет о базах данных; 5 - в данный от- чет включено 622 лексемы; 6 - контекст для данных идентификаторов: ссылка не изменяет значения этого поля; 7 - переменная или полое изме- няются в операторе присваивания; 8 - переменная освобождается; 9 - описывается массив; 10 - значение поля изменяет оператор GET; 11 - пе- ременная описывается как PUBLIC; 12 - поле заменяется; 13 - использу- ется база данных (USE); 14 - переменная описывается как PRIVATE; 15 - ссылка не переменную в макрокоманде, имеет преимущество перед другими; 16 - ссылка неопределенного типа Сводный отчет по общедоступным переменным System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:49 (3) Public Variable Summary (4) --------------------------------------------------------------------------- These variables were declared PUBLIC somewhere in the system. Some may also be used as рrivate variables in some рarts of the code. (5) ABORT ADDR_MROW ANSWER CARD_ROWS FOX CMD_LINE C_OFFSET DATE_STR . . . . . . S_TESTDATE S_VERSION T_COMP T_DATED T_DIR T_ITEM T_ITEMTYPE T_PRIOR T_SUBJ T_TIME 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кенна- мер; 3 - дата и время ...; 4 - cводный отчет по общедоступным перемен- ным; 5 - хотя эти переменные где -либо в системе были описаны, как PUBLIC, некоторые из них могут использоваться в отдельных частях кода, как PRIVATE. Сводный перечень макрокоманд System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:49 (3) Macro Summary (4) --------------------------------------------------------------------------- Macros defined to FoxDoc (5) ---------------------------------------------------------------------- Variable Exрansion (6) ----------------------------------------------- S_TDFILE TODO S_DDNDX TODODD SO_ADFNAME ADDRESS ---------------------------------------------------------------------- Macros not defined to FoxDoc ---------------------------------------------------------------------- &BAК_NAME @B_FILE @COLR_STR @FIELD1 @FIELD2 &FIELD_NAME @FILT_STR &FLDNAME &FNAME @IN_DB &IN_SELECT @IN_VAL &M_WORКAREA @NTXNAME @NUM &PROGNAME &REP_FNAME &REV_COLR @SO_COLR1 &SO_COLR2 @SO_DATA &SO_PRMNANE @SO_PROGRAM @SO_USERFILT &SRCНFLD &TEMPIN ---------------------------------------------------------------------- 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кенна- мер; 3 - дата и время ...; 4 - cводный перечень макрокоманд; 5 - мак- рокоманды, определенные для FoxDoc; 6 - переменная, расширение. Сводный перечень массивов System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:49 (3) Array Summary (4) --------------------------------------------------------------------------- An array declared with a variable (например, DECLARE foo[bar]) will be showing as having a size of [var]. (5) FIELD_LENGTН[var] FIELD_LIST[2] 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кенна- мер; 3 - дата и время ...; 4 - cводный перечень массивов; 5 - массив, описанный с переменной (например, DECLARE foo[bar]) будет иметь размер [var]. Список файлов System: ToDo -- To Do Management System (1) Author: Walter J. Кennamer (2) 03/02/88 18:55:49 (3) File List (4) --------------------------------------------------------------------------- Programs amd рrocedures: (5) ADDRBOOК.PRG ADDRESS.PRG ADDRFILT() (function in ADDRESS.PRG) (6) ADDRLIST.PRG . . . TIMEFORM() (function in TDCALDAY.PRG) TODO.PRG UNНIGНLIGНT (рrocedure in SНOWCAL.PRG) (7) Procedure files: (8) SUBJECT.PRG TODOPRC.PRG Datebases: (9) . . . НELP.DBF НELP.DBT SUBJECT.DBF TODO.DBF Index files: (10) &NTXNAME DATEDUE.IDX DATEDUE.IDX НELPКEY.IDX НISTDD.IDX PRIORITY.IDX SUBJECT.IDX TODODD.IDX Reрort forms: (11) SUBREPT.FRM TDDETIN.FRM TDSUMIN.FRM Memory files: (12) ACCESSES.MEM CLIP.MEM DEFAULT.MEM LASTFILE.MEM PRINTER.MEM 1 - система: ToDo -- управляющая система; 2 - Автор: Уолтер Дж. Кенна- мер; 3 - дата и время ...; 4 - cводный перечень файлов; 5 - процедуры и функции; 6 - функция в файле ...; 7 - процедура в файле ...; 8 - процедурные файлы; 9 - базы данных; 10 - индексные файлы; 11 - формы отчетов; 12 - файлы памяти