Індексний вираз включає в себе поле текучої бази даних, значення його може бути числовим, символьним або логічним.
Поле memo не може включатися в індексний вираз. Довжина індексного виразу для IDX-файлу має 100 символів, а CDX-файл – 254 символи.
Перебудова активних індексів.
Перебудову можна здійснити двома способами : відкриття всіх індексних файлів перед внесенням зміни в базу даних, або командою Reindex, яка дає можливість модифікувати індекси після внесення всіх змін в базу даних.
Відкриття індексних файлів.
Відкриття індексних файлів можна здійснити двома способами: по команді Use і по команді Set index to [<список індексних файлів> : ?]
Зміна порядку доступу до індекса:
Set order to <вир. N>.
<вир. N> - вказує номер індекса з списку відкритих індексних файлів
Відкриття індексних файлів і зміна порядку доступу до індекса у FoxPro 2.0
1 Відкриття індексних файлів здійснюється по команді:
Use[<ім’я dbf-файла>] : ? [In<робоча область>][again] [Index<список індексних файлів>]: ? [Order [<вир. N> : <IDX-файл>:[Tag<ім’я тега>] [Of<CDX-файл>][Ascending : Discending]]] [Alias <псевдонім>] [Noopdate].
Order <вир. N> - вказує номер головного інндекса серед перерахованих в списку IDX- файлів або серед тегів, якщо нас не влаштовує відкриття індекса по замовчуванню.
Order : Order 0 – означає що хоч індексні файли відкриваються але не назначається головного індекса.
Order<ім’я файла> - назначає головним той індексний файл ім’я якого вказано. Якщо Order відсутнє, то головним буде перший із списку індексних файлів, а всі інші файли зі списку будуть відкриті.
Якщо відкриваються теги структурних чи мультиіндексних файлів, то слово Of пишуть тоді ім’я CDX- файла не співпадає з іменем бази даних.
Askending: diskending – вказується тоді коли нас не влаштовує порядок сортування в індексному файлі.
Again – дозволяє відкрити відкритій уже файл даних в іншій робочій області. В тій робочій області де він був відкритий раніше.
2 Якщо база даних вже відкрита то відкрити індексні файли можна по команді: set index to [<список індексних файлів>[ order[<вираз N>: <idx-файл>:[ tag <ім’я тега>] [ of <cdx-файл> ] [ askending : dskending ] ] ] ]. По цій команді відкривається індексний файл із списку, якщо відсутний order то дія цієї опції така ж як в команді USE.
3 Якщо боаза даних і індексні файли відкриті то змінити прядок доступу до індекса можна по команді: set order to [ < вираз n > : < idx-файл>:[ tag <ім’я тега>] [ of <cdx-файл> ] [ askending : dskending ] ] ] ][additive].
Копіювання індексних файлів
Індексні файли можна скопіювати в тиги по команді : copy індекс-es < idx-файл> : all to < cdx-файл>. По цій команді копіюються всі файли які є відкриті в структурних або мультиіндексних файлах. Якщо cdx-файла не має то він створюється, іменем IDX-файлів стають іменами тегів.
Copy Tag<ім’я тега>[Of<cdx-файл>]To<idx-файл> - команда копіює тег структурного або мультиіндексного cdx-файла, якщо файл структурний, то of не вказується.
Delete Tag <тег 1>[of<cdx-файл 1>][,<тег 2>[of<cdx-файл 2>]] – знищує теги відповідних cdx-файлів.
Тут можуть бути перераховані теги: формула або різні теги різних файлів, інакший варіант команди – Delete All[of <cdx-файл>] – всі теги знищити.
Формування звітів.
Створення звітних форм.
Create Report [<ім’я файлу>: ?] [Window <ім’я вікна 1>] [In<ім’я вікна 2>: in screen] – ця команда відкриває вікно побудови звіту. Ім’я файлу можна задати. Система присвоїть розширення .frx. Опція Window<імя вікна> означає, що побудова звіту візьме всі характеристики із раніше створеного вікна, яке не відкрите. Вікно 1 повинне бути визначеною командою define window.
In Window означає що вікно побудови звіту буде відкрите в вікні 2. При переміщенні порядку вікна вікно побудови звіту переміщається разом з ним.
In Screen – вікно побудови звіту відкривається на екрані. По замовчуванню вікно побудови звіту відкривається на екрані.
Швидкий звіт.
Create Report <ім’я файла>: ? From<база даних>[From : Column] [Fields<поле бази даних>] [Alias] [Nooverwrite] [With<виразN>] – створення швидкого звіту з заданим іменем і розширенням .frx, або якщо задано ?, ім’я задається у вікні запиту.
Form : Column – визначає розміщення полів зверху вниз або зліва направо.
Fields<поля бази даних> - поля, що будуть включатись в звіт.
Nooverwrite – забороняє запис звіту якщо така форма створена раніше.
With <вираз N> - задає число стовпців у звіті
Модифікація звіту здійснюється командою:
Modify Report [<ім’я>: ?][window<ім’я вікна1>] [in window<ім’я вікна2>:in screen] [nowait] [save]
Nowait – програма продовжує виконувати команди відкритого вікна модифікації звітів.
Save – задає зберігання вікна форматування звіту, після того як користувач запустив його.
Генерація звіту задається командою:
Report From <ім’я звіту>: ? [<діапазон>] [For<умова 1>] [While<умова 2>] [Heading<вираз C>] [Ndeject] [Noconsole] [To print : To file<ім’я файла>] [Summary].
Heading <виразC> - використовується для задання додаткового рядка заголовку на початку кожного рядка звіту.
Ndeject – забороняє протяжку паперу при переході на нову сторінку.
Noconsole – звіт не виводиться на екран коли здійснюється вивід на друк.
Summary – забороняє вивід у звіт записів крім підсумків по групах звіту.
Редагування даних.
Browse [Fields <поля>] [For <вираз L1>] [Format] [Fresse <поле>] [Ledit/Redit] [Lak<вираз N>] [Nodelete] [Noedit/Nomodify] [Nolgriod/Norgriod] [Nolinl] [Nowait] [Partition<вираз N2>] [Rest] [Title<вираз C2>] [When<вираз L2>] [Color sheme<вираз N4>/ Color<список кольорових пар>]
A – управління доступом до полів здійснюється опцією Fields<поля>. Полями можуть бути, як поля даних так і обчислювальні поля. Ключі можуть вказуватись через такі знаки : ‘:’, або ‘/’.
[:R] [: <вираз N >] [:V =<виразL1> [:F] [:E =<виразC1>]] [:D=<вираз C2>] [: B=<вираз1><вираз2>[If]] [ : W=<вираз L2>]
R – означає що поле дозволяється для читання.
Ключ :<виразN1> - вираз числового типу який вказує на ширину виводимого поля.
:V=<вираз L1> - перед редагуванням перевіряється умова, якщо вона істинна, то редагування доступне, інакше недоступне.
: F – в ключі V означає якщо запис не був відредагованим, то він також перевіряється на правельність.
: E – в ключі V використовується для виводу власного повідомлення.
Ключ D задає формат відображення даних таких як Picture.
Ключ : B=<вираз 1><вираз 2> - дозволяє визначити набір граничних значень в межах яких повинні знаходитись дані в заданому полі
Ключ : W= <вираз L> - задає контроль вводу даних в поле, якщо вираз істинний, то редагування доступне, інакше забороняється.
Опція Rest використовується в Browse для того, щоб при повторному виклику команди вказівник залишався на тому записі, що і при останньому виклику команди Browse, інакше на перший запис.
Опції ledit/redit діють в роздільному вікні Browse, вони вказують чи будуть прокручуватсь дані в лівій чи правій частині, як у change-вікні.
Опції nolgriod/norgriod – задають вилучення вертикальних ліній в лівій чи правій частинах вікна, якщо вікно не розділене то задається onecriod
Опція Nolinl – задає несенхронне переміщення видимих записів в розділеному вікні
Опція Noedit – забороняє редагування, дозволяє лише помітки на вилучення і додавання записів
Опція Nodelete – забороняє помітку на вилучення записів
Опція Fresse <поле> - вказує на доступне поле для редагування
Опція Format – дозволяє використовувати форматні файли для виводу інформацї командою Borwse
Опція Title<вираз C> - задає заголовок вікна Borwse
Опція Nowait – використовується в програмних файлах, якщо в програмі зустрічається команда Borwse, то відкривається вікно Borwse, але система не чикає його закриття, тобто робота програми продоовжується
Опція Color sheme<вираз N4>/ Color<список кольорових пар> -визначає розфарбування вікна Borwse
Опція When<вираз L2> - визначає можливість доступу до запису, якщо умова хибна то запис доступний для читання інакше і для редагування
Пошук записів
Пошук здійснюється командою:
Locate for <умова 1> [<діапазон>] [While <умова 2>] – здійснює послідовний пошук першого запису в базі даних, що задовільняє умову 1 з заданого діапазону поки умова 2 істенна. Для продовження пошуку використовується команда Continue. Для прискорення пошуку у проіндексованій базі даних по полю по якому здійснюється індексування використовується команда Seek<вираз>.
Функції які вікористовуються при пошуку:
Found([< область>]) – повертає значення true, якщо пошук здійснено однією з команд : Locate, Continue, Seek
Seek(<вираз> [<область>]) – повертає значення true, якщо запис в якому поле=виразу знайдено
Eof([<область>]) - повертає значення true, якщо досягнуто кінця бази даних
Recn (0) – у випадку невдалого пошуку задає повернення номеру запису, який має найближче значення до ключа пошуку в команді Seek
Set near on/off – якщо задано on, то у випадку невдалого пошуку вказівник буде встановлено на найближче за значенням запис, а не в кінці бази даних, по замовчуванню off
Зауваження : при редагуванні бази даних, зокрема редагування даних, використовується ще команди : Change і Edit, вони містять такі ж опції як у Browse крім Nolgriod/Norgriod.