Руководство
системного администратора

 

СОДЕРЖАНИЕ

 

Введение.. 7

1.         безопасность и Управление правами доступа.. 9

1.1.     Безопасность данных.. 9

1.2.     Назначение прав доступа пользователей.. 10

1.2.1.      Выбор варианта (модели) назначения прав доступа. 10

1.2.2.      Порядок назначения прав доступа пользователей без возможности использования ролей. 11

1.2.3.      Порядок назначения прав доступа пользователей с использованием ролевой модели. 11

1.3.     Менеджер ролей.. 11

1.4.     Список пользователей.. 13

1.4.1.      Формирование списка пользователей ERP-системы "КОМПАС". 16

Формирование списка пользователей импортом группы AD. 16

Формирование списка пользователей вводом данных в форму. 17

1.4.2.      Добавление новой учетной записи пользователя ERP-системы "КОМПАС". 17

Добавление новой учетной записи импортом из AD. 17

Добавление новой учетной записи вводом данных в форму. 19

1.4.3.      Назначение ролей пользователям.. 19

1.4.4.      Взаимодействие прав доступа, определенных для пользователя. 20

1.5.     Настройка прав доступа пользователей и ролей.. 20

1.5.1.      Настройка прав доступа пользователей без возможности использования ролей (режим по умолчанию) 20

1.5.2.      Настройка прав доступа пользователей и ролей (при использовании ролевой модели) 23

Порядок настройки доступа пользователей. 24

1.6.     Администратор  меню... 26

1.7.     Менеджер типов таблиц.. 30

1.8.     Администратор базы данных.. 34

1.9.     Резервные базы данных.. 36

1.9.1.      Настройка резервных баз данных. 37

Настройка псевдонимов резервных баз данных ERP-системы «КОМПАС». 37

Установка соответствия псевдонимов баз данных ERP-системы «КОМПАС» и псевдонимов BDE. 38

1.9.2.      Порядок выбора базы данных для работы.. 40

1.9.3.      Переход к работе с резервной базой данных. 41

2.         Мастера.. 41

2.1.     Мастер таблиц.. 42

2.1.1.      Закладка «Общие сведения». 45

2.1.2.      Закладка «Поля таблицы». 47

2.1.3.      Закладка «Индексы». 62

2.1.4.      Закладка Триггеры.. 64

2.1.5.      Закладка «Спец. настройка». 65

2.1.6.      Заполнение таблицы данными. 69

2.1.7.      Изменение структуры таблицы.. 71

2.2.     Мастер табличных форм... 72

2.2.1.      Закладка «Общие сведения». 75

Разграничение доступа пользователей к кнопкам экспорта данных в табличных формах. 78

2.2.2.      Закладка «Колонки». 79

2.2.3.      Закладка «Фильтр/поиск». 90

2.2.4.      Закладка «Сортировки». 92

2.2.5.      Закладка «Итоги». 94

2.2.6.      Закладка «Инструменты». 96

2.2.7.      Закладка «Дерево групп». 98

2.2.8.      Форматирование представления данных. 100

2.3.     Мастер экранных форм... 103

2.3.1.      Панель инструментов. 106

2.3.2.      Контекстное меню параметров экранной формы.. 110

2.3.3.      Контекстное меню для элементов формы.. 112

2.3.4.      Контекстное меню для элемента «Страницы». 113

2.3.5.      Главное меню: пункт «Форма». 114

2.3.6.      Изменение размера элементов. 117

2.3.7.      Изменение выравнивания. 117

2.3.8.      Изменение свойств элементов экранной формы.. 118

2.4.     Мастер печатных форм... 126

2.4.1.      Правила редактирования шаблонов Word. 129

2.5.     Мастер запросов.. 135

2.5.1.      Окно редактирования запроса. 138

Разграничение доступа пользователей к кнопкам экспорта данных в запросных формах. 144

2.5.2.      Использование хранимых процедур. 144

2.5.3.      Некоторые особенности редактируемых наборов данных. 144

2.6.     Мастер отчетов.. 146

2.6.1.      Закладка «Общие сведения». 149

2.6.2.      Закладка «Шапка/подвал». 152

2.6.3.      Закладка «Структура заголовка». 154

2.6.4.      Закладка «Итоги/субитоги». 159

Окно редактирования полосы заголовка или подвала. 161

2.6.5.      Окно редактирования параметров построения диаграммы.. 164

2.6.6.      Использование дизайнера Free Report для построения и редактирования отчетов. 165

2.7.     Мастер бизнес - процедур. 168

2.7.1.      Назначение мастера бизнес-процедур. 171

2.7.2.      Как добавить новую бизнес-процедуру. 171

2.7.3.      Редактирование бизнес-процедуры.. 172

2.7.3.1.      Выражения. 172

2.7.3.2.      Переменные. 173

2.7.3.3.      Встроенные переменные. 175

2.7.3.4.      Конструкции. 175

2.7.4.      Операторы и функции. 177

2.7.4.1.      Стандартные функции. 177

2.7.4.2.      Функции ввода/вывода. 177

2.7.4.3.      Математические функции (возвращают число) 182

2.7.4.4.      Строковые функции (возвращают текст) 183

2.7.4.5.      Функции для работы с датами. 184

2.7.4.6.      Функции для работы с объектами. 186

2.7.5.      Классы объектов. 206

2.7.5.1.      Понятие класса. 206

2.7.5.2.      TTfInfoНаборы данных. 207

2.7.5.3.      Табличная форма. 211

2.7.5.4.      Запросная форма. 214

2.7.5.5.      Запросная форма с возможностью редактирования данных. 215

2.7.5.6.      Серверная временная таблица. 215

2.7.5.7.      Реестр документов. 215

2.7.5.8.      Отчет.. 217

2.7.5.9.      Список. 219

2.7.5.10.        Транслятор формул. 222

2.7.5.11.        Период времени. 222

2.7.5.12.        Текстовый файл. 223

2.7.5.13.        Транзакция (Transaction) 224

2.7.5.14.        Работа с почтой (PopMail) 224

2.7.5.15.        Блокировки (LockOpers) 226

2.7.5.16.        LockOpers. 227

2.7.5.17.        XML. 228

2.7.5.18.        XML Node. 229

2.7.5.19.        Служебные классы.. 230

2.7.5.20.        Конфигурационный параметр. 231

2.8.     Пример работы с Мастерами.. 232

2.9.     Примеры запросов.. 233

2.9.1.      Модуль КОМПАС: Складской учет. Справочник НОМЕНКЛАТУРА. 233

2.9.2.      Модуль КОМПАС: Кадровый учет. Печать Графика отпусков (форма Т-7) 234

2.10.       Примеры бизнес-процедур. 235

2.10.1.       Модуль КОМПАС: Управление трудовыми ресурсами. Процедура выбора из справочника в ТФ BANK_PRIZ (BANK_PRIZ_VYB) 235

2.10.2.       Модуль КОМПАС: Управление затратами. Процедура выбора статьи затрат для договора (Статьи.DOG_S_S_VYB) 236

2.10.3.       Модуль КОМПАС: Управление трудовыми ресурсами. Фрагмент процедуры формирования сведений об остатках по видам отпусков (PRIKAZ_OTP_INFO) 237

2.10.4.       Модуль КОМПАС: Упрощенная система налогообложения. [Расчет раздела 3 Декларации по НДС (НДС.R3_CALC_BTN) 237

2.10.5.       Пример использования функции GetFieldList 238

3.         ЯФПК и таблица транслятора.. 238

3.1.     Примеры формул ЯФПК.. 240

3.1.1.      Выбор расшифровки подписи в печатной форме акта AKT_A. 240

3.1.2.      Выбор расшифровки подписи бухгалтера в печатной форме счета Schet_4  240

4.         Настройка импорта из Excel.. 240

4.1.     Закладка «Общие данные». 242

4.2.     Закладка «Конвертация». 244

5.         Утилиты управления данными.. 246

5.1.     Метаданные. 246

5.1.1.      Хранение метаданных. 246

5.1.2.      Многослойная структура хранения метаданных. 247

Приоритеты метаданных. 249

Порядок обновления версии. 250

Хранение настроек. 251

5.1.3.      Настройка путей к DAT-файлам.. 251

5.2.     Распечатка описаний таблиц.. 253

5.3.     Упаковка и переиндексация.. 253

6.         протоколирование системных событий.. 256

6.1.     Настройка протоколирования.. 256

6.2.     Системные сообщения.. 257

7.         Редактирование эталонного массива общих мест.. 257

8.         Заключение.. 259

 

 


Введение

ERP-система «КОМПАС» предназначена для создания единой информационной среды предприятия. Система позволяет резко повысить производительность и качество работы управляющего персонала в таких сферах деятельности, как бухгалтерский учет (от создания первичных документов до выпуска баланса), документооборот (регистрация, хранение, быстрый поиск и корректировка всей деловой документации), управление персоналом и расчет заработной платы (с выдачей необходимых справок по составу работников, их доходам и т.д.), управление закупками, запасами и продажами, управление производственным процессом, бюджетирование, а также во многих других смежных областях.

В состав ERP-системы «КОМПАС» входят следующие подсистемы и модули:

ПОДСИСТЕМА  «УПРАВЛЕНИЕ ФИНАНСАМИ»      

-       «Бухгалтерский и налоговый учет»      

-        «Бюджетирование»     

-       «Упрощенная система налогообложения»    

-       «Управление затратами»          

-       «Электронная налоговая и бухгалтерская отчетность»         

ПОДСИСТЕМА «УПРАВЛЕНИЕ ПЕРСОНАЛОМ»      

-       «Расчет заработной платы»      

-        «Кадровый учет»           

-        «Управление трудовыми ресурсами»

-        «Расчет нарядов»         

-        «Электронные индивидуальные сведения для ПФ и ФНС» 

ПОДСИСТЕМА «Складской учет»

-       «Складской учет»           

ПОДСИСТЕМА «УПРАВЛЕНИЕ АКТИВАМИ»           

-       «Управление активами»

ПОДСИСТЕМА «УПРАВЛЕНИЕ ПРОИЗВОДСТВОМ»           

-       «Управление производством» 

ПОДСИСТЕМА «УПРАВЛЕНИЕ СТРОИТЕЛЬСТВОМ»          

-       «Управление строительством»

ПОДСИСТЕМА «ДОКУМЕНТООБОРОТ»      

-       «Документооборот»     

CRM-СИСТЕМА

-       CRM-система КОМПАС  

ИНСТРУМЕНТ

Важной особенностью ERP-системы «КОМПАС» является возможность ее индивидуальной настройки под задачи, решаемые конкретным предприятием. В системе применяется трехуровневая система настройки комплекса: «параметризация / визуальные мастера / мастера для программиста». Наличие этих инструментов позволяет без участия фирмы–разработчика сравнительно быстро адаптировать систему под нужды конкретного предприятия и даже самостоятельно создавать специализированные отраслевые решения.

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

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

Визуальные мастера включают в себя:

Третий уровень настройки системы - это Мастера для программиста, базирующиеся на использовании специализированных языков.

С помощью «МАСТЕРОВ КОМПАСА» – специализированного инструментария, включенного в ERP-систему, -  каждый пользователь может подготовить для себя собственный вариант и технологию использования системы,  внешне совершенно не похожий на то, что он видит, впервые установив программу на свой компьютер. По этой же причине достаточно часто меняется стандартная поставка системы, особенно это касается вида экранных  и печатных форм, а также отчетов, которые могут быть крайне быстро (буквально за один день) адаптированы к текущему законодательству.

Количество «МАСТЕРОВ КОМПАСА», которые Вы увидите в своем меню (а значит, и гибкость использования системы), зависит от того, какую версию Вы прибрели. В самую простую версию входит только лишь один МАСТЕР печатных форм. Впрочем, если у Вас есть потребность в полнофункциональной настройке информационной системы, можно приобрести (заменить) существующую у Вас версию на более гибкую, обладающую всеми настроечными элементами. Ранее накопленные данные при таком изменении сохраняются.

1.    безопасность и Управление правами доступа

В этом разделе рассказывается о тех возможностях ERP-системы «КОМПАС», которые позволяют обеспечить безопасность и конфиденциальность работы с данными при использовании программного комплекса.

1.1.        Безопасность данных

Защита данных обеспечивается подсистемой безопасности ERP-системы «КОМПАС», которая включает в себя ряд средств и методов для предотвращения возможного несанкционированного доступа к данным. Частью мер безопасности являются[1]:

·       защищенный режим хранения учетных записей пользователей;

·       ролевая модель[2] управления доступом пользователей к данным и функциональным возможностям программы;

·       возможность использования учетных записей Active Directory (AD) для аутентификации пользователей в системе и определения их прав доступа к данным;

·       обращение не непосредственно к таблицам базы данных, а к их синонимам.

В этом разделе мы более подробно остановимся на том, как настраивать и использовать возможности безопасности системы.

Возможности системы по защите данных от несанкционированного доступа используются непосредственно при настройке прав доступа пользователей.

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

Учетная запись пользователя является единой для входа во все модули ERP-системы «КОМПАС», и хранится в базе данных. Пароль шифруется и не доступен для просмотра. Список пользователей настраивается один раз в любом из имеющихся модулей системы.

Права доступа пользователей к модулям комплекса и функциональным возможностям (пунктам меню) модулей хранятся в общесистемном dat-файле USERACCS.dat. При старте модуля сначала проверяется наличие учетной записи пользователя и правильности введенного им пароля (предварительно введенный пароль шифруется) в базе данных, а затем права доступа этого пользователя к модулю и его функциональным возможностям в файле USERACCS.dat. В соответствии с информацией из этого dat-файла пользователю выдаются права на сеанс работы с системой.

1.2.1.     Выбор варианта (модели) назначения прав доступа

 Внимание!

Вам предоставляется возможность выбора одного из двух вариантов настройки прав доступа:

1. Без возможности использования ролей - назначения прав доступа к пунктам меню для роли (группы пользователей). Этот вариант установлен в стандартной поставке системы по умолчанию.

2. С использованием ролевой модели назначения прав доступа. Этот вариант позволяет настроить права доступа и для ролей, и для отдельных пользователей одновременно.

При выборе варианта настройки прав доступа учтите следующее:

·           Если Вы устанавливаете ERP-систему "КОМПАС" впервые,  решение о том, какой из двух вариантов назначения прав доступа Вы будете использовать, Вам необходимо принять ДО заполнения списка пользователей.

·           Если Вы уже работаете с ERP-системой "КОМПАС" и используетет вариант 1 (без возможности использования ролей) обратите внимание  на то, что при переходе с варианта 1 к варианту 2 (ролевая модель) все настройки прав доступа пользователей будет необходимо конфигурировать заново.  Если совершен переход к работе по варианту 2, а затем – возврат к варианту 1, прежние настройки не возвращаются (то есть их тоже придется конфигурировать заново).

 

Выбор варианта проведения настройки прав доступа производится на уровне конфигурационной переменной.   Переключение на использование ролевой модели назначения прав доступа производится следующим образом:

·          значение конфигурационной переменной kfg_NewRights устанавливается равным 1 (новый вариант)*;

·          при следующем запуске модуля все пункты меню будут неактивны. Для того, чтобы избежать этой ситуации, предназначена конфигурационная переменная kfg_MAAccess. Установите значение этой конфигурационной переменной равным 1, и доступ к пункту меню Сервис / Администратор меню будет открыт, независимо от настроек прав доступа.

1.2.2.     Порядок назначения прав доступа пользователей без возможности использования ролей

            Определение прав доступа для пользователей при варианте работы без использования возможности ролевого доступа производится следующим образом:

  1. Настраивается список пользователей (см.п.1.4.);
  2. Определяются права доступа к функциональным возможностям системы для каждого пользователя в каждом установленном модуле системы (см.п.1.5.1).

1.2.3.     Порядок назначения прав доступа пользователей с использованием ролевой модели

Определение прав доступа пользователей при варианте работы с использованием ролевой модели производится следующим образом:

  1. Определяются роли пользователей в системе и описываются в менеджере ролей (см.п.1.3);
  2. Определяются права доступа к функциональным возможностям системы для каждой роли в каждом установленном модуле (п.1.5.2);
  3. Настраивается список пользователей (п.1.4.);
  4. Каждому пользователю назначается роль (роли), которые он будет исполнять в системе (п.1.4.3.);
  5. При необходимости права доступа, определенные ролью (ролями) корректируются правами доступа пользователя персонально (п.1.5.2).

Примечание: пункты 2 и 3 можно поменять местами.

1.3.        Менеджер ролей

 Внимание!

Описывать роли следует только в том случае, если при назначении прав доступа Вы используете ролевую модель (см.п.1.2).

Описание ролей пользователей в программе может производиться в любом модуле подсистемы, в форме, вызываемой пунктом меню Настройка / Менеджер ролей.

 В форме Менеджер ролей задаются:

-        Имя роли – произвольное наименование роли. Желательно наименование задавать прописными буквами латинским шрифтом;

-        Описание – описание, расшифровывает имя роли, вводится с клавиатуры.

            Кроме того, в правой части формы расположены кнопки:

-        Новая роль – открывает форму для описания новой роли;

-        Кнопка Новая из текущей создает копию выделенной в списке роли и открывает форму, редактирования обозначения (имени) или описания (наименования) или других реквизитов роли;

-        Кнопка Импорт описаний позволяет импортировать описание ролей. По нажатии этой кнопки открывается форма для выбора файла с описанием ролей (ROLES.DAT);

-        Нажав на кнопку Удалить роль, можно удалить ту роль, которая выделена в списке;

-        Нажатие кнопки Редактировать выводит на экран форму с описанием выделенной в списке роли;

-        Флажок «Включена» определяет, учитываются ли настройки данной роли при предоставлении прав доступа пользователю. По умолчанию этот флажок установлен - настройки учитываются.

Описанные в этой форме роли действуют во всех модулях ERP-системы «КОМПАС» (при соблюдении условия, описанного в п.1.).

 

1.4.        Список пользователей

Данные обо всех пользователях системы представлены в форме Список пользователей. Указанная здесь информация одинакова для всех модулей системы. Пароли пользователей не отображаются. На закладке Настройки можно определить для всего списка пользователей: минимальную длину пароля и срок его действия, по истечении действия которого вход в программу становится невозможным, и предлагается задать новый пароль (примечание: при установленной связи с AD эти возможности не используются).

 

Список пользователей

Администратор системы КОМПАС имеет возможность:

-        включить описание нового пользователя в список (кнопка Добавить);

-        исключить его из списка (кнопка Удалить);

-        изменить идентификатор или имя пользователя (кнопка Редактировать);

-        изменить его пароль (кнопка Пароль);

-        импортировать учетные записи пользователей группы Active Directory (кнопка Импорт), см.п.1.4.1.

Справа внизу расположена группа переключателей Признак пользователя. В зависимости от положения переключателя, пользователь может быть отнесен к одной из трех категорий:

-        Администратор. Такой пользователь имеет права администратора, то есть возможность работать с теми пунктами меню, которые при настройке меню объявлены как системные.

Пользователь. Такой пользователь не может работать с системными пунктами меню. Доступ к другим пунктам меню определяется настройками, сделанными администратором.

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

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

Каждому пользователю можно присвоить одну или несколько ролей, исполняемых им в подсистеме. Роли пользователя отображаются в нижней части формы. Пользователю можно назначить любое количество ролей. Если назначено несколько ролей с различными правами доступа к одним и тем же объектам (пунктам меню), права пользователя определяются по правилам, описанным в п.1.4.4. данной инструкции.

            Список пользователей ERP-системы "КОМПАС" может быть сформирован (см.п.1.4.1):

·       Импортом учетных записей группы Active Directory;

·       Администратором системы "вручную".

Новая учетная запись также может быть сформирована (п.1.4.2) либо импортом учетной записи AD, либо вводом данных непосредственно в список пользователей. При этом режим ввода новой учетной записи не зависит от того, каким образом был изначально сформирован список: часть записей может быть импортирована, а часть создана "вручную".

 Внимание!

Порядок аутентификации пользователей, чьи учетные записи созданы импортом из AD, отличается от порядка аутентификации пользователей, чьи записи внесены в список пользователей непосредственно. Основное различие заключается в том, что, если запись импортирована из AD, с модулями может работать только пользователь, который аутентифицирован в установленной на компьютере операционной системе.

Кнопка По модулям позволяет посмотреть и настроить права выбранного пользователя в списке для всех модулей системы Компас. Для этого нужно выбрать пользователя в списке и нажать на кнопку (см. рисунок ниже).

Настройка прав доступа пользователя по модулям

 

1.4.1.     Формирование списка пользователей ERP-системы "КОМПАС"

Формирование списка пользователей импортом группы AD

Учетные записи пользователей в ERP-системе "КОМПАС" системе могут быть созданы автоматически на основе импорта в список пользователей учетных записей из Active Directory (AD) - по наличию в определенной группе AD.

Список пользователей в стандартной поставке ERP-системы "КОМПАС" вызывается на экран пунктом меню Настройка / Список пользователей.

Список пользователей

Нажмите на кнопку  в Списке пользователей, и на экран будет выведена форма для выбора группы AD:

Для отображения полного списка групп нажмите кнопку .  Если Вы знаете имя группы, учетные записи которой необходимо импортировать, Вы можете ввести его с клавиатуры. После выбора учетные записи пользователей, отнесенные в AD к этой группе, будут импортированы в список пользователей ERP-системы "КОМПАС".  По умолчанию все импортированные учетные записи имеют признак "Пользователь".

*     Уточнение

1.    Все визуальные списки строятся только для той организационной единицы, в которой находится текущий пользователь Windows, в т.ч. и при проведении процедуры импорта учетных записей.

2.    Если необходимо изменить организационную единицу, то необходимо в файл kompas.ini в секцию User прописать переменную BaseOrganizationalUnut.

---- пример ----

[User]

BaseOrganizationalUnit = OU=SUB_OU,OU=ORG_UNIT,DC=DOMAIN_NAME,DC=ru

---------------------

Это можно делать, не перезапуская модуль;

3.    При аутентификации в Active Directory организационной единицей является только домен. Поэтому логин пользователя должен быть уникальным для всего домена в целом.

 

Формирование списка пользователей вводом данных в форму

При "ручном" формировании списка пользователей производится последовательное добавление новых учетных записей пользователей системы (см.п.1.4.2.). Перед добавлением новых учетных записей Вы можете уточник длину и срок действия задаваемых паролей на закладке Настройки.

1.4.2.     Добавление новой учетной записи пользователя ERP-системы "КОМПАС"

Добавление новой учетной записи импортом из AD

Добавление новой учетной записи пользователя ERP-системы "КОМПАС" импортом из Active Directory производится следующим образом:

1.     В списке пользователей  нажмите кнопку Добавить;

2.     На экран будет выведена форма Ввод нового пользователя:

В этой форме, не заполняя никаких полей, нажмите кнопку  в поле Идентификатор в Active Directory.

На экран будет выведена форма для выбора пользователя AD:

Нажмите кнопку  в поле Имя пользователя. На экран будет выведен полный список пользователей домена. Выберите в этом списке нужную строку и нажмите ОК.

В форме Ввод нового пользователя автоматически заполнятся все поля:

Нажмите кнопку Сохранить. Подтвердите свое решение.

3.     Уточните Признак по умолчанию (Администратор, Пользователь, Доступ закрыт, Демо режим) вновь созданной учетной записи (с использованием одноименной группы переключателей). По умолчанию всем вновь созданным записям присваивается признак Пользователь.

Добавление новой учетной записи вводом данных в форму

Для добавления новой учетной записи последовательно введите информацию в Список пользователей:

1.4.3.     Назначение ролей пользователям

 Внимание!

Назначать пользователю роли имеет смысл только в том случае, если Вы используете  ролевую модель настройки прав доступа.

Каждому пользователю можно присвоить одну или несколько ролей, исполняемых им в подсистеме:

-        выбрать строку с описанием пользователя в списке Пользователи;

-        нажать кнопку Добавить в группе Роли. На экран будет выведен общий список ролей ERP-системы «КОМПАС», из которого производится выбор. Имя и описание роли добавляется в список ролей пользователя.

Таким же образом можно назначить пользователю любое количество ролей. Если назначено несколько ролей с различными правами доступа к одним и тем же объектам (пунктам меню), права пользователя определяются по правилам, описанным в п.1.4.4. данной инструкции.

1.4.4.     Взаимодействие прав доступа, определенных для пользователя

Как упоминалось выше, пользователь может исполнять несколько ролей в системе. При этом возможна ситуация, когда для работы с одним и тем же объектом (пунктом меню) для одного и того же пользователя установлены разные права (непосредственно или через роли). Такая ситуация разрешается следующим образом:

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

1.5.        Настройка прав доступа пользователей и ролей

Настройка прав доступа пользователей (ролей) производится в Администраторе меню. Доступ к функциональным возможностям системы разграничивается за счет определения прав доступа пользователя (роли) к конкретному пункту меню.

Настройка прав доступа не является единственной функцией Администратора меню, но в этом разделе мы рассмотрим порядок решения именно этой задачи. Остальные возможности, которые предоставляет Администратор меню, описаны в п.1.6.

 Внимание!

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

1.5.1.     Настройка прав доступа пользователей без возможности использования ролей (режим по умолчанию)

После того, как Вы добавили пользователя в список, задали его имя, пароль и права, Вам может потребоваться запретить (или наоборот, разрешить) ему доступ к некоторым пунктам горизонтального меню программы или к пунктам выпадающих подменю. Это можно сделать, выбрав пункт Сервис / Администратор меню. В появившемся окне выделите нужный пункт, нажмите кнопку Разграничение доступа и произведите необходимые настройки.

Описанную процедуру следует повторить для каждого пун­кта меню, к которому Вы хотите запретить (разрешить) доступ какого-либо пользователя.

 Форма настройки прав доступа (вариант, принятый по умолчанию)

 

Разграничение доступа осуществляется следующим образом. С помощью формы Права доступа к пункту меню, вызываемой, как уже говорилось выше, из Администратора меню, можно управлять доступом пользователей к пункту, название которого отображено в графе Пункт меню.

Настройка прав доступа производится по-разному, в зависимости от того, к какому из трех типов отнесен пункт меню с помощью переключателя тип пункта:

·       Черный список. Устанавливается по умолчанию. К пункту такого типа имеют доступ все пользователи, кроме тех, которые помещены в графу Черный список.

·       Белый список. Доступ к такому пункту имеют только те пользователи, которые помещены в графу Белый список.

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

Идентификаторы всех пользователей могут быть представлены либо в списке Пользователи раздела, либо в соседнем списке, заголовок которого меняется в зависимости от типа пункта меню.

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

С помощью кнопки Права пользователя под правым списком на экран выводится дополнительное окно, в котором можно уточнить режим доступа пользователя к пункту меню. В этом же окне может быть разрешен или запрещен доступ администратора к пункту меню системного типа.

Обратите внимание, что для выпадающего меню кнопка с надписью Разграничение доступа дает дополнительные возможности по сравнению с такой же кнопкой в меню горизонтальном, а именно:

Следует также обратить внимание, что установленное в Главном меню разграничение доступа к табличным формам распространяется на все случаи использования данных табличных форм со следующими исключениями:

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

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

Также, в системе Компас предусмотрена настроечная таблица CFG_OPERACCS, с помощью которой можно настроить,  какие пользователи или роли могут выполнять те или иные операции.

1.5.2.     Настройка прав доступа пользователей и ролей (при использовании ролевой модели)

Как уже упоминалось, права доступа пользователей к работе с модулями ERP-системы «КОМПАС» и пунктами меню каждого модуля могут быть установлены как для каждого пользователя индивидуально, так и для групп пользователей (напоминаем – для подключения этого режима работы необходимо произвести настройку конфигурационной переменной, см.п.1.2.3). В том случае, если пользователи имеют одинаковые права на использование функциональных возможностей программы, может быть использован механизм ролей. Таким образом, права использования функциональных возможностей программы для каждого пользователя ERP-системы «КОМПАС» могут быть назначены:

-        Индивидуально;

-        Методом назначения пользователю определенной роли (ролей);

-        Смешанным способом – назначением какой-либо роли (ролей) и коррекцией прав, даваемых этой ролью (ролями) индивидуально.

Формирование списка пользователей и описание ролей может быть проведено в любом модуле ERP-системы «КОМПАС» по описанным ниже правилам. Список пользователей, как уже упоминалось, хранится в базе данных, и является единым для всех модулей комплекса. Список ролей хранится в файле ROLES.DAT, который является общесистемным dat-файлом, поэтому, если пути к dat-файлам прописаны верно, список ролей также будет общим для всех модулей.

Доступ к работе с пунктами меню может быть разрешен или запрещен. По умолчанию, до проведения настроечных работ, доступ не разрешен – работа с пунктами меню невозможна.

Порядок настройки доступа пользователей

            Напоминаем, что определение прав доступа для групп пользователей (создание и определение доступа, в т.ч. и по ролям) производится следующим образом:

1.        Определяются роли пользователей в системе и описываются в менеджере ролей (см.п. 1.3.);

2.        Определяются права доступа для каждой роли (см.п.1.5.2);

3.        В систему вводится информация о пользователях, см.п. 1.4;

4.        Для каждого пользователя определяются права доступа (определяются права работы с модулями в целом, назначаются роли, определяется доступ к пунктам меню модуля индивидуально) – см.п.1.5.2.

Описанный порядок действия может быть изменен – пп.2 и 3 можно поменять местами.

 

Администратор меню

Настройка прав доступа производится следующим образом:

-        В форме Администратора меню в группе Горизонтальное меню или Выпадающее подменю выделить наименование пункта;

-        Нажать кнопку Разграничение доступа в соответствующей группе справа;

-        В выведенной на экран форме Права доступа к пункту меню разрешить или запретить работу.

Назначение прав доступа к пункту меню пользователям и ролям

            Для того, чтобы разрешить доступ к пункту меню необходимо:

-        Выделить имя роли или имя пользователя в списке Пользователи и роли;

-        Нажать верхнюю кнопку . Наименование роли (имя пользователя) появится в списке Разрешение, а из общего списка пользователей и ролей оно исчезнет.

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

            Кнопки  позволяют перенести описание роли из списков в правой части формы (разрешенные или запрещенных) в общий список ролей и пользователей с не определенными правами доступа (напоминаем, что объекты с не определенными правами доступа для работы недоступны).

Для пунктов меню, доступ к которым пользователю или роли разрешен, можно конкретизировать эти права, нажав кнопку Права пользователя, и установить или полный режим доступа, или только просмотр данных без возможности внесения изменений («только чтение»), или закрыть. Также можно задать необходимость авторизации пользователя (или пользователей, если права определяются для роли) при открытии пункта меню (табличной формы).

Признак пользователя (Администратор, Пользователь...) в таблице CFG_USERACCS_M.

1.6.        Администратор  меню

Возможность предназначена для создания конфигураций рабочих мест – настройки главного меню программы. Настройки позволяют добавлять и удалять пункты меню,  изменять порядок их следования, а также разграничить доступ (см.п. 1.2. ) к пунктам меню в зависимости от того, какой оператор вошел в систему. Пожалуй, это самая простая из всех имеющихся настроечных процедур.

Рис.1.1. Форма настройки главного меню

После входа в пункт Администратор меню или нажатия кнопки  Вы можете увидеть две группы: группу Горизонтальное меню и группу Выпадающее подменю (рис.1.1.).

В группе Горизонтальное меню содержится список, в котором отображены все имеющиеся на момент редактирования пункты, расположенные в горизонтальной линейке. Кнопками Добавить пункт и Удалить, расположенными под списком, производится добавление новых и удаление ненужных Вам элементов. Естественно, что перед удалением необходимо левой клавишей мыши щелкнуть по тому пункту меню, который Вы собрались ликвидировать. Удаление пункта горизонтального меню автоматически приведет к удалению пунктов выпадающего подменю, связанных с ним.

Кнопки со стрелками  Вверх (влево) и  Вниз (вправо) позволяют задать выделенному элементу списка желаемую позицию в горизонтальном меню, перемещая его в списке ровно на одну позицию за один щелчок мыши. Отметим, что понятие «ниже» в списке в данном случае означает «правее» для окончательного положения  элемента в горизонтальном меню.

После создания пункта меню необходимо задать его название. Это можно сделать, заполнив поле Заголовок на закладке Описание пункта.

Особый статус имеет пункт меню, для которого в качестве заголовка указан одиночный символ «—» (минус): этот пункт в готовом меню будет отсутствовать. Таким образом, после входа в пункт Администратор меню или нажатия кнопки    Вы  можно быстро исключить целое выпадающее меню из работы. Для того, чтобы вернуть раздел в меню, надо открыть Администратор меню (нажать кнопку ) и вместо знака «» ввести правильное наименование.  Понятно, что в этом же поле можно и переименовать пункт меню.

Для быстрого вызова пункта меню можно назначить сочетание Alt+буква. Для этого достаточно перед соответствующей буквой в названии пункта меню поставить амперсант (&). Например, запись О&кно  приведет к тому, что в процессе работы буква «к» в этом слове будет подчеркнута (Окно), а нажатие сочетания ALT+русская буква  «к» на клавиатуре приведет к переходу в этот пункт.

Особый статус имеет флажок подменю mdi-okoh. При выборе в процессе работы того пункта горизонтального меню, в котором этот флажок установлен (в стандартной поставке он называется Окно), в выпадающем меню разворачивается перечень всех открытых Вами в процессе работы табличных форм, давая Вам, таким образом, возможность быстро перемещаться по ним. В принципе, имеется возможность «подцеплять» MDI-окна к любому пункту горизонтального меню. Естественно, что такой флажок должен быть установлен только у одного пункта горизонтального меню.

На закладке Спец. настройка можно увидеть индивидуальное внутреннее имя пункта, которое будет использоваться программой. Честно говоря, эта возможность избыточна, т.к. Администратор меню прекрасно умеет самостоятельно выдавать уникальные имена, а большего от этого поля и не требуется. Кроме того, на этой же закладке можно выставить флажок запрет на удаление пункта, который подстрахует Вас от случайного нажатия кнопки удаления, из-за которого придется начать всю работу заново. На этой закладке также есть флажок скрывать, с помощью которого любой пункт меню можно скрыть. При этом, все скрытые таким образом пункты меню можно увидеть, если установить флажок Показывать «скрытые» пункты меню, расположенного в левом нижнем углу формы на Рис.1.1.

Кнопка с надписью Разграничение доступа вызывает форму, управляющую доступом пользователей к пункту меню, название которого отображено в графе Пункт меню. Для дополнительной информации по администрированию см. пп. 1.2. - 1.5. Настройка прав доступа пользователей.

После того, как создан пункт горизонтального меню, для него надо заполнить Выпадающее подменю. Пункты Выпадающего подменю отображены в соответствующем окне, содержимое которого меняется по мере выбора новых пунктов в «горизонтальном» окне. Отображение ведется в виде списка, имеющего иерархическую («древовидную») структуру.

Работа с настройкой Выпадающего подменю очень похожа на то, что было описано чуть выше. Добавление и удаление пунктов списка производится кнопками Добавить пункт и Удалить, расположенными под списком пунктов. Те же функции выполняют и кнопки  и , так что имеет смысл сказать только об отличиях.

Во-первых, название, состоящее из символа «—»  (минус) не приводит к сокрытию пункта во время работы. Вместо этого появляется разграничительная линия, исключительно в целях более удобного зрительного восприятия. В окне Администратора меню этот пункт так и обозначается - <ЛИНИЯ>.

Во-вторых, для любого пункта, кроме вышеозначенной <ЛИНИИ>, возможно описание подменю (вот для чего нужна именно древовидная структура). Для этого достаточно щелкнуть левой клавишей мыши по пункту, к которому Вы хотели бы добавить подпункты, и нажать кнопку Создать подменю, и далее, в обычном порядке описать его свойства.

В-третьих, для создания быстрого доступа к пункту, Вы можете не только использовать амперсант (&) для выделения какой-нибудь буквы названия, но и назначить сочетание клавиш (Shortcut), заполнив поле Акселератор на закладке Описание пункта. Туда можно включать названия функциональных клавиш или латинских букв в сочетании с дополнениями Ctrl, Shift или Alt, отделенными знаком «плюс». Например, Ctrl+F8 или Shift+T. Не рекомендуется в этих целях использовать стандартные клавиши ERP- системы "КОМПАС".

В-четвертых, и это самое главное, для каждого из «конечных» (не вызывающих подменю) пунктов необходимо определить вызываемый ими объект - нужно указать, что должна делать программа после того, как пользователь выберет этот пункт меню. Для этого необходимо назначить вызываемый объект, выбрав с помощью переключателя один из семи вариантов, отображенных на экране:

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

Кроме того, служебная информация о номере версии, начиная с которой действует или прекращает действовать какая-либо настройка, является, конечно же, не обязательной, но иногда очень полезной.

1.7.        Менеджер типов таблиц

Данный менеджер включен только в версии высокого настроечного уровня. Для того чтобы можно было описать какие-нибудь дополнительные кнопки и связанные с ними бизнес — процедуры, общие для работы со многими таблицами данных, в ERP- системе «КОМПАС» введено понятие типа таблицы, а для управления этими типами в меню Сервис выведен Менеджер типов таблиц. Использование данного менеджера требует знания особенностей функционирования Windows и предназначено исключительно для высококвалифицированных пользователей.

Все существующие типы таблиц (в настоящее время в стандартной поставке их восемь - реестр, перечень, справочник, журнал хозяйственных операций, конфигурация, временные таблицы ОС, тип для ОС, Кадры и зарплата) отображены в списке. Список состоит из двух колонок: Имя типа и Описание (рис. 1.8). Имя типа — это то обозначение, с которым работает программа: все настройки делаются с его помощью. Имя должно быть уникальным. Описание типа таблицы — это поясняющий комментарий, который может включать в себя любые символы. Список типов таблиц хранится в специальном файле с именем tbltypes.dat.

Рис.1.8. Менеджер типов таблиц

 

В окне менеджера типов таблиц расположен набор управляющих кнопок:

Рис. 1.9. Форма для выбора файла с описанием типов таблиц

Рис.1.11. Форма для редактирования реквизитов типов таблиц

В существующей версии программы Вы можете заполнить или изменить такие реквизиты типа таблицы как Название типа и Описание на закладке Общие сведения. Реквизиты на закладке Шаблоны документов имеют служебное назначение и редактированию не подлежат. А вот на закладке Инструменты как раз и можно Добавить новые или Удалить имеющиеся дополнительные кнопки. Полный перечень дополнительных кнопок, установленных для данного типа, появляется в левом окне закладки. Как можно увидеть, редактирование очень похоже на настройку Главного меню рабочего места (см.п. 1.1 Администратор меню). Даже упорядочивание кнопок в палитре инструментов, где вся группа располагается сразу после обязательного комплекта, производится с помощью знакомых значков  и .

В правой части закладки можно задать Текст подсказки для выбранной кнопки и Идентификатор, т.е. уникальную последовательность символов, по которой с кнопкой работают программы пакета, определить ее Изображение (нажмите Загрузить и выберите файл с расширением bmp или воспользуйтесь кнопкой Вставить для получения изображения из буфера обмена Windows), а также привязать к этой кнопке, введя вручную или (что гораздо удобнее) выбрав из выпадающего списка, предварительно подготовленную (см. 2.7. Мастер бизнес—процедур)  бизнес—процедуру, которая будет вызываться после ее нажатия. Кроме того, установив флажок не показывать, Вы можете временно отключить кнопку, не удаляя ее описания из перечня. Кнопка Копировать позволяет забрать изображение в буфер обмена. Вы также можете вынести кнопку в меню и определить сочетание клавиш, нажатие которых приведет к выполнению предопределенных кнопкой действий.

Существует теоретическая возможность использования разных изображений кнопки для активного и неактивного состояния. Количество используемых изображений определяется элементом ввода NumGlyphs. Но так как нигде в стандартной версии системы эта возможность (Numglyphs всегда равно 1) не используется, мы не будем заострять внимание на этом сложном моменте.

В настоящее время в ERP-системе «КОМПАС» используются следующие стандартные типы таблиц:

1. Реестр — используется для реестров документов (аналогов «бумажных» журналов регистрации документов). В такой таблице обязательно должны быть поля с типом (числовое поле), номером (текстовое поле) и датой документа, причем в табличных формах для таких таблиц, как правило, должно быть предусмотрено ограничение по ключу (см. 2.2. Мастер табличных форм), обеспечивающее работу в каждой табличной форме только с одним типом документов. При этом в Справочнике типов документов могут быть установлены специальные режимы работы с табличной формой. Например, может быть установлен режим, при котором перед вызовом полноэкранной формы для новой строки таблицы на экран предварительно выводится окно с предложением выбрать для нового документа образец или источник реквизитов. Так как источником реквизитов может быть документ другого типа, хранимый в другом реестре, для правильного заполнения полей нового документа во всех таблицах типа Реестр должна быть заполнена таблица соответствия Массив общих мест (см. п.1.2. Базовые термины раздела «Общие правила работы».).

Для чисто бухгалтерских документов может быть предусмотрена возможность проводки документа в Журнале хозяйственных операций и отмены ранее сделанной проводки. Кроме того, может быть предусмотрена печать документов по шаблонам, подготовленным с помощью Мастера печатных форм (см. 2.4). Короче говоря, реестр - специальная форма таблицы, предназначенная для хранения данных, описанных в справочнике типов документов.

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

3. Справочник — используется для таблиц, содержащих сравнительно редко изменяемую информацию, использующуюся для подготовки первичных документов, проводок, расчетов и т.п. Для некоторых справочников может быть предусмотрен полноэкранный шаблон. Печать отдельного элемента справочника в виде документа не предусмотрена. При описании таблицы справочника следует учитывать, что первое по порядку поле трактуется как уникальный код элемента в справочнике и для него предусматривается автоматическое наращивание номера. Если для некоторого справочника автоматическое наращивание номера не требуется, нет никаких оснований относить такую таблицу к типу Справочник.

4. Кадры и зарплата - таблицы этого типа допускается корректировать только в задачах Кадры и Зарплата, тогда как в других задачах могут быть использованы только для выбора из справочника.

5. Конфигурация - используется для таблиц, предназначенных для хранения конфигурационных параметров задач.

6. Журнал хозяйственных  операций - используется для рублевого и валютного журнала хозяйственных операций, а также для архива хозяйственных операций.

7. Тип для ОС – аналогичен типу Справочник, используется подсистемой «Основные фонды»

8. Временные таблицы ОС  - используется, как видно из названия, для временных таблиц подсистемы «Основные фонды».

Внимание!!! Категорически не рекомендуется удалять стандартные типы таблиц, имеющиеся в первичной поставке, или изменять их название: это приведет к отключению некоторых функций программных модулей.

1.8.        Администратор базы данных

Большинство задач ERP-системы «КОМПАС» могут работать с различными псевдонимами BDE (см. Приложение к данному руководству). Управление псевдонимами осуществляется в форме, вызываемой пунктом Администратор БД меню Настройка (рис.1.12.).

 

Рис. 1.12. Администратор базы данных

Окно настройки имеет три закладки, с помощью которых Вы можете выполнить следующие установки:

·       На закладке Параметры предусмотрено два раздела: для всех операторов и для текущего оператора.

     На закладке Для всех операторов обратите внимание на флажок Округление всегда проводить по правилам ФНС: при установке этого флажка при округлении денежным сумм до копеек, 0.5 копейки всегда округляются до полной копейки. До сих пор эти правила округления применялись только в отчетности по ЕСН и страховым взносам задач "Управление персоналом" и "Выгрузка в ПФ и ФНС". Настройка производится в форме Администратор БД, в разделе Параметры. На закладке Для всех операторов необходимо проставить флажок Округление всегда проводить по правилам ФНС (по умолчанию этот флажок не установлен);

На закладке Для текущего оператора можно задать режим автоматического обновления таблиц при одновременной работе в сети нескольких рабочих станций. Для того, чтобы автоматическое обновление было включено, надо проставить флажок. Кроме того, можно указать частоту обновления в секундах. Автоматическое обновление предусмотрено только для тех таблиц, которые расположены в MDI-окнах. Следует также обратить внимание, что автоматическое обновление не производится для тех таблиц, которые находятся в режиме корректировки или добавления записи или под транзакцией. Заданный режим автоматического обновления сохраняется в конфигурации индивидуально для каждого оператора.

Два флажка Форсировать стандартный формат даты и Специальный режим для учета региональных настроек предназначены для настройки работы программы при использовании нестандартных региональных настроек Windows.

1.9.        Резервные базы данных

Режим авторизации пользователя, реализованный в ERP-системе «КОМПАС», позволяет выбрать базу данных для работы непосредственно при запуске программы. В этом случае сначала производится авторизация пользователя ERP-системы «КОМПАС» в программе и выбор базы данных для подключения, а затем – подключение к выбранной БД.

Обратите внимание! При переключении между резервными базами данных должен использоваться один и тот же набор dat-файлов (если используются отдельно хранящиеся dat-файлы, а не метаданные, сохраненные в БД).

При соединении с базами данных программой используется внутренний псевдоним БД ERP-системы «КОМПАС». Для базы данных, с которой ведется работа («открытой» при запуске модуля) этот псевдоним всегда KOMPAS

Для пополнения списка доступных для работы баз данных необходимо проделать предварительные настройки, описанные в п.1.6.1.

1.9.1.     Настройка резервных баз данных

            Настройка резервных баз данных ERP-системы «КОМПАС» производится в два этапа:

·       Настройка псевдонимов резервных баз данных ERP-системы «КОМПАС» (для выбора при запуске модуля);

·       Установка соответствия псевдонимов баз данных ERP-системы «КОМПАС» и псевдонимов BDE.

Настройка псевдонимов резервных баз данных ERP-системы «КОМПАС»

Настройку псевдонимов резервных баз данных ERP-системы «КОМПАС» следует производить в следующем порядке:

-        Открыть Мастер таблиц (пункт меню Сервис / Мастер таблиц);

-        Нажать на кнопку Псевдонимы БД в левой нижней части формы;

-        В появившейся форме Псевдонимы баз данных создать новый псевдоним (нажать кнопку Новый);

-        При описании нового псевдонима указать (рис.1.13):

o       Наименование и краткое описание псевдонима;

o       Из раскрывающегося списка Для каких версий пакета используется выбрать значение Используется как резервная БД. Обратите внимание на правильный выбор значения! Указанное значение следует выбирать для описания псевдонимов тех баз данных, между которыми Вы планируете переключаться при работе, в т.ч. и той, которая фактически является основной БД;

o       Нажать кнопку ОК.

Рис.1.13. Форма описания псевдонимов БД ERP-системы «КОМПАС»

Псевдонимов для резервных баз данных можно создать несколько – описанную процедуру надо провести необходимое количество раз.

Обратите внимание! Введите этот список псевдонимы для ВСЕХ баз данных, с которыми Вы работаете, в том числе и той, с которой Вы соединены в момент настройки соответствия между псевдонимами БД ERP-системы «КОМПАС» и псевдонимами BDE – то есть, в список Псевдонимы БД должны быть внесены ВСЕ псевдонимы баз данных. (отличные от псевдонима KOMPAS, который, напоминаем, используется для любой открытой БД и в список для выбора псевдонима БД при открытии модуля не попадет).  Для каждой из баз данных, между которыми планируется переключаться при работе, должно быть указано значение Используется как резервная БД, в т.ч. и для той, которая фактически является основной. Значение этого параметра определяет, попадет ли псевдоним в раскрывающийся список для выбора базы данных для подключения в форме авторизации пользователя при входе в модуль (см.рис.1.16).

Установка соответствия псевдонимов баз данных ERP-системы «КОМПАС» и псевдонимов BDE

            Соответствие между псевдонимами баз данных ERP-системы «КОМПАС» и псевдонимами BDE можно установить следующим образом (см.рис.1.14):

-        Открыть Администратор базы данных (пункт меню Настройка / Администратор БД);

-        Из раскрывающегося списка Базы данных выбрать псевдоним, созданный для резервной базы данных;

-        Из раскрывающегося списка Псевдонимы BDE выбрать псевдоним BDE той базы данных, которая является резервной;

-        При необходимости сделать прочие настройки параметров базы данных;

-        Если настраивается соединение к нескольким резервным базам данных – установить соответствие псевдонимов для каждой из них;

-        Нажать на кнопку ОК.  В появившейся форме ввести логин и пароль доступа к той базе данных, которая была открыта для настройки соответствия псевдонимов (той, с которой производилось соединение при открытии модуля, а не той, для которой устанавливалось соответствие псевдонимов). Обратите внимание! Для того, чтобы перейти к работе с вновь описанной резервной базой данных, необходимо закрыть модуль, и открыть его заново. При входе надо указать псевдоним ERP-системы «КОМПАС» вновь созданной резервной базы данных.

Рис.1.14. Администратор базы данных, установка соответствия псевдонимов БД КОМПАС и BDE

Для того, чтобы избежать при открытии пользователем модуля ввода логина и пароля для подключения к базе данных (см.п.2, рис.1.17), можно прописать их для этой БД на закладке Пользователь БД (рис.1.15):

Рис.1.15. Администратор БД, настройка подключения в базе данных

Обратите внимание, что флажок Запрашивать учетные данные при старте должен быть в этом случае снят.

При необходимости произвести процедуру установки соответствия необходимое количество раз.

1.9.2.     Порядок выбора базы данных для работы

При открытии модуля сначала производится запрос имени и пароля пользователя ERP-системы «КОМПАС», здесь же можно указать базу данных, с которой планируется производить работу, выбрав соответствующий псевдоним из раскрывающегося списка (обратите внимание, это псевдоним ERP-системы «КОМПАС», созданный по правилам, описанным в п.Настройка псевдонимов резервных баз данных ERP-системы «КОМПАС»).

Рис.1.16. Форма регистрации пользователя при старте программы с возможностью выбора базы данных

После указания базы данных и нажатия кнопки Применить на экран выводится форма для ввода логина и пароля сервера БД (кроме тех случаев, когда эти сведения прописаны для соединения в выбранной базой при установке соответствия псевдонимов ERP-системы «КОМПАС» и BDE (см. рис.1.15).

Рис.1.17. Форма регистрации пользователя на сервере БД

По нажатии кнопки ОК производится проверка правильности ввода как имени пользователя и пароля ERP-системы «КОМПАС», так и имени пользователя и пароля подключения к выбранной базе данных.

Если все данные были введены правильно, модуль открывается для работы.

Если была совершена ошибка при вводе имени или пароля пользователя ERP-системы «КОМПАС» (см.рис.1.16), на экран выводится следующее сообщение:

Рис.1.17. Сообщение о невозможности регистрации при ошибочном вводе имени или пароля пользователя ERP-системы «КОМПАС»

Если неправильно введено имя пользователя или пароль для подключения к базе данных (см.рис.1.17), сервер выдаст следующее сообщение:

Рис.1.18. Сообщение о невозможности установить связь с БД при ошибочной регистрации пользователя на сервере

Обратите внимание! В этом сообщении будет указан псевдоним BDE.

1.9.3.     Переход к работе с резервной базой данных

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

2.    Мастера

Данный раздел посвящен самым важным возможностям ERP-системы «КОМПАС» с точки зрения тех, кто хочет построить индивидуальную корпоративную информационную систему. Здесь будет рассказано о том, как создать новую таблицу или изменить структуру старой, как создать новое визуальное (экранное) представление таблицы или ее строки (записи), как подготовить новый отчет или бланк первичного документа, а то и вообще изменить алгоритм работы раздела системы. В этом разделе рассказывается о тех возможностях ERP-системы «КОМПАС», которые позволяют превратить стандартную поставку в индивидуальную корпоративную информационную систему, предназначенную для использования именно на Вашем предприятии. Часть из этих возможностей вполне доступна обычному пользователю, часть из них требует квалификации программиста. Но, в общем и целом, авторы системы считают, что все описанные здесь действия относятся к компетенции администратора базы данных (системного администратора) и должны быть закрыты от рядового оператора корпоративной системы. В стандартной поставке все эти подпрограммы находятся в выпадающем меню Сервис или Настройка.

Мастера позволяют превратить стандартную поставку в индивидуальную корпоративную информационную систему, предназначенную для использования именно на Вашем предприятии. Часть из этих возможностей вполне доступна обычному пользователю, часть из них требует квалификации программиста. Но, в общем и целом, авторы системы считают, что все описанные здесь действия относятся к компетенции администратора базы данных (системного администратора) и должны быть закрыты от рядового оператора корпоративной системы. В стандартной поставке все эти подпрограммы находятся в выпадающем меню Сервис или Настройка.

2.1.        Мастер таблиц

Данный мастер включен только в версии с полным набором настроечных инструментов. Он вызывается из одноименного пункта меню Сервис или нажатием кнопки на панели инструментов  и служит для создания, редактирования и удаления описаний (иначе говоря, шаблонов) таблиц, в которых и хранится вся информация. Шаблон таблицы состоит из псевдонима, собственно описания таблицы и других настроек. Дополнительными функциями Мастера таблиц является физическое создание таблиц и индексов, обновление структуры и перенос данных из одной таблицы в другую.

Все существующие шаблоны таблиц отображены в списке. Список состоит из трех колонок: Псевдоним, Описание и Тип (рис.2.1.). Псевдоним таблицы — это наименование, с которым работает программа и которое состоит из латинских букв, цифр и специальных символов. Псевдоним может не совпадать с названием файла, содержащего таблицу. Псевдоним таблицы должен быть уникальным. Описание таблицы — это комментарий, поясняющий назначение таблицы. Он может включать в себя любые символы. Вместо типа таблицы в третью колонку можно вывести названия баз данных или обозначения драйверов базы данных для каждой из таблиц. Для того, чтобы изменить содержание третьей колонки, используйте контекстное меню (открывается щелчком правой клавиши мыши или специальной клавиши на расширенной клавиатуре) в перечне таблиц. Все шаблоны таблиц находятся в специальном файле с расширением dat. Такой файл для мастера таблиц в стандартной поставке имеет имя tblman.dat. Весь список можно отсортировать в алфавитном порядке либо по описанию, либо по псевдониму, либо по типу  (как кому удобно). Для этого достаточно щелкнуть левой клавишей мыши на заголовке соответствующей колонки.

 

Рис. 2.1. Мастер таблиц, описание таблиц баз данных

 

В форме мастера таблиц расположены кнопки:

·       Новое описание. Нажав на эту кнопку, Вы создадите новый пустой шаблон. Все реквизиты таблицы следует заполнить в открывающейся при нажатии кнопки форме Описание таблицы.

·       Новое из текущего... Нажав на эту кнопку, Вы создадите шаблон по образцу текущего (выбранного в списке описаний таблиц). После этого в него можно внести необходимые изменения в форме Описание таблицы, которая выводится на экран после нажатия кнопки.

·       Кнопка Импорт описания вызывает диалоговое окно Выбор файла с описаниями таблиц, в котором можно выбрать файл, содержащий шаблоны таблиц (файл с расширением dat). При выборе корректного файла, появится окно Импорт описания таблицы. Выберите в этом окне таблицу или несколько таблиц (при множественном выборе, отмечая вторую и последующие таблицы, удерживайте нажатой клавишу Ctrl). Нажав на кнопку ОК, Вы произведете пополнение списка новым описанием (или описаниями). Перед импортом описание можно просмотреть, нажав на кнопку Просмотр. Таким образом, можно осуществлять, например, обмен данными между несколькими администраторами системы, работающими над созданием структуры параллельно.

·       Кнопка Удалить описание позволяет избавиться от устаревшего шаблона, предварительно отмеченного в списке описаний таблиц.

·       Кнопка Редактировать отображает окно Описание таблицы, позволяющее настроить текущую таблицу. Настройка ведется на пяти закладках: Общие сведения, Поля таблицы, Индексы , Спец. Настройка и Версия.

·       Кнопка Сравнить описания позволяет сравнить описание из текущей строки с одноименным описанием из другого файла (файл выбирается так же, как и при импорте описания). Выдается протокол отличий. Если отличия имеются, с помощью специальной кнопки можно заимствовать тот вариант описания, с которым производится сравнение.

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

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

·       Кнопка Псевдонимы БД позволяет просмотреть и откорректировать перечень конфигурируемых псевдонимов баз данных, которые можно использовать при описании таблиц наряду с псевдонимами BDE.

Большинство подсистем ERP-системы «КОМПАС» могут работать с различными псевдонимами BDE в зависимости от настройки (эта настройка осуществляется в Администраторе базы данных). Как правило, настройка на базу данных осуществляется для основных псевдонимов:

·       KOMPAS - основная база данных, с которой работает система;

·       KompasTMP - база данных для размещения временных таблиц.

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

2.1.1.     Закладка «Общие сведения»

Данная закладка содержит следующие элементы (рис. 2.2.):

 

Рис. 2.2. Мастер таблиц, закладка Общие сведения

·       Поле Тип таблицы позволяет выбрать тип таблицы из списка, подготовленного описанными выше средствами (см. п.1.4. Менеджер типов таблиц), с помощью кнопки Выбрать. В каждом разделе существует несколько заранее определенных типов, отличающихся порядком работы с отдельными строками: вызов полноэкранных форм, распечатка отдельной строки в виде документа, наличие дополнительных кнопок обработки и так далее.

·       Группа Таблица в базе данных, которая содержит элементы:

·       База данных: позволяет выбрать базу данных из раскрывающегося списка. Каждая конкретная база данных представляет собой «псевдоним» (иначе - alias) BDE. В терминах BDE под базой данных понимается несколько файлов (таблиц), как правило, хранимых в одной папке (директории) и имеющих одинаковую платформу (СУБД). В случае использования SQL-сервера база данных действительно является единым целым, так как отдельные таблицы могут не оформляться в виде физически отдельных файлов.

·       Имя таблицы: кнопка Выбрать позволяет выбрать таблицу из «оглавления» базы данных. Осуществляется это следующим образом. На экране открывается окно выбора, которое позволяет сформировать текущее описание по структуре уже существующей таблицы. Основные настройки таблицы при этом не меняются, но «привязываются» к другой физической таблице. В Списке таблиц отображены все таблицы, принадлежащие выбранной базе. Выбрать базу данных можно из соответствующего раскрывающегося списка (рис. 2.3.). Переключатель Действия с описаниями полей позволяет выбрать следующие возможности:

·       ничего не менять;

·       добавить новые к уже имеющимся;

·       добавить новые, а старые удалить.

 

Рис. 2.3. Форма выбора таблицы из базы данных

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

При выборе переключателя Добавить новые, а старые удалить, происходит экспорт полей выбранной таблицы в текущую с одновременным удалением всех старых описаний полей таблицы.

·       СУБД. Здесь необходимо выбрать из списка поддерживаемых платформ ту СУБД, с помощью которой осуществляется доступ к таблице. Например, если таблица была создана с помощью СУБД Microsoft SQL-server, необходимо выбрать из списка Microsoft SQL. Если же таблица еще не создана, Вы можете предварительно решить, какую СУБД выбрать, а потом создать таблицу. Возможные варианты выбора определяются тем, как Вы в целом определили базу данных с только что указанным именем при ее описании (см. п.1.5. Администратор базы данных). По умолчанию обычно используется Microsoft SQL.

·       Кнопка Создать таблицу: при нажатии на эту кнопку на диске создается файл, содержащий таблицу заданной структуры, или же создается таблица в базе данных SQL-сервера. Так как при подготовке нового описания таблицы на диске реально ничего не меняется, то после завершения настроек физическое создание таблицы осуществляется Вами нажатием данной кнопки.

·       Кнопка Удалить таблицу производит обратное действие: физически удаляет таблицу с диска или из базы данных SQL-сервера.

·       Кнопка Загрузить данные: нажатие этой кнопки отображает окно Заполнение таблицы данными (см. п. 2.1.4), в котором Вы можете не только выбрать ранее подготовленный источник, но и сравнить структуру этого источника с отредактированным Вами описанием.

·       Кнопка Изменить структуру: нажатие этой кнопки отображает окно Изменение структуры таблицы, предназначенное для физической перестройки уже существующей базы данных под только что измененное описание. Впрочем, подробнее мы поговорим об этом в разделе 2.1.5.

·       Нажав на кнопку Создать скрипт, можно автоматически сформировать скрипт для создания редактируемой таблицы по ее описанию в файле tblman.dat. Результат формирования скрипта отображается в специальном окне, в котором предусмотрена возможность печати теста скрипта, либо сохранения его в файл.

2.1.2.     Закладка «Поля таблицы»

Свойства каждого поля таблицы редактируются по отдельности.

Все настройки полей можно провести на закладке Поля таблицы, на котором расположены (рис.2.4.):

 

Рис. 2.4. Мастер таблиц, закладка Поля таблицы, определение поля

·         Группа Список полей с кнопками Новое поле и Удалить.

·         Кнопка Массив общих мест, вызывающая Конструктор массива общих мест.

Мнемоническое обозначение элемента массива общих мест, заданное для текущего поля, отображается рядом с этой кнопкой.

·       Закладка Определение поля.

·       Закладка Контроль валидности.

·       Закладка Связь со справочником.

·       Закладка Спец. настройка.

Группа Список полей содержит перечень уже описанных полей, кнопку Новое поле, позволяющую создать новое поле в таблице, кнопку Удалить, позволяющую убрать поле из таблицы, и кнопки со стрелками  и , задающие выделенному полю желаемую позицию в записи таблицы в режиме «одно нажатие кнопки – перемещение на одну позицию вверх или вниз» соответственно. Физически порядок полей в базе данных меняется при создании таблицы, или после изменения ее структуры (см. ниже). Если же просто изменить порядок полей в описании уже существующей таблицы, но не провести преобразование структуры, то никаких сообщений о несоот­ветствии при работе с таблицей выдаваться не будет (но так поступать не рекомендуется).

Поле ввода Найти поле, а также кнопки  и  предназначены для поиска поля таблицы по его описанию (наименованию). В поле ввода вводится текст, и, по нажатии  кнопки , производится поиск описания поля, включающего этот текст. Найденное описание выделяется в Списке полей. Продолжить поиск описаний полей без изменения текста для поиска можно, нажав на кнопку .

Все настройки, расположенные на закладках Определение поля, Контроль валидности, Связь со справочником и Спец. настройка, относятся только к одному (редактируемому) полю, выбранному щелчком левой клавиши мыши.

Самые общие настройки можно произвести на закладке Определение поля. На ней расположены элементы:

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

Следует обратить внимание, что пустое значение по умолчанию можно задавать только для полей, допускающих пустые значения, и только в том случае, если значение заполняется при любом изменении. Для новой записи все поля по умолчанию пусты, так что никакая специальная настройка не требуется. Также следует учитывать, что значения по умолчанию учитываются только при внесении изменений в таблицу через табличную форму. Если изменения вносятся SQL-запросами, эти настройки не действуют. Стоит также обратить внимание, что если для поля предусмотрено значение, заполняемое при любом изменении, то изменить значение в поле на другое средствами табличной формы нельзя: при любом изменении оно автоматически будет заменено на то, которое указано в описании таблицы. Установить другое значение в таком поле можно только SQL-запросом;

На закладке Контроль валидности расположены элементы, которые позволят вам контролировать правильность значения поля. Вы можете, в частности, проверять, попадает ли значение поля в некоторый диапазон, а также контролировать уникальность значения.

Настройку контроля валидности Вы можете сделать здесь, или в Мастере табличных форм (см. 2.2.2. Закладка «Колонки»). Если настройки чем-либо различаются, то контроль будет осуществляться согласно настройке, сделанной в мастере табличных форм, то есть он имеет более высокий приоритет.

Открыв данную закладку, Вы увидите следующие элементы (рис.2.5.):

Рис. 2.5. Мастер таблиц, закладка Поля таблицы, контроль валидности

 

·       Переключатель Контроль уникальности. Переключатель задает режим контроля уникальности поля в таблице.

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

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

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

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

Здесь же Вы можете уточнить, какое сообщение будет выдаваться при нарушении уникальности.

·       Группа Контроль на попадание в диапазон. Установив флажок Задан, Вы можете ограничить значение поля снизу, заполнив поле От, и сверху, заполнив поле До. Для полей типа Character, сравнение производится по его месту в таблице символов (т.е. попросту говоря, по алфавиту). Чаще всего цифры «меньше», чем буквы, строчные буквы «меньше» заглавных, а символы английского алфавита «меньше», чем символы русского. С числами все очевидно. Например, для номенклатурного перечня желающие могут ограничить цену по прайс-листу диапазоном от 10 до 20 рублей, и тогда ничего дороже продать не удастся. Кроме того, Вы можете уточнить, какое сообщение будет выдаваться, если введенное пользователем значение не попадает в указанный диапазон.

·       Группа Контроль на истинность выражения. В этой группе задается выражение, которое будет вычисляться всякий раз при заполнении поля. Если выражение возвращает значение Ложь, появляется сообщение об ошибке, текст которого можно редактировать в поле Текст сообщения в случае ошибки. Установив флажок Задан, Вы можете ввести это выражение (вручную или вызвав нажатием кнопки  Конструктор формул — см. соответствующую главу раздела «Общие правила работы»). Необходимо помнить, что выражение должно возвращать значение логического типа, а переменные, которые можно использовать в выражении, должны иметь смысл именно для данной таблицы. В связи с этим лучше всего пользоваться переменными из группы c именем таблицы, в которые программа автоматически «подкинет» перечень всех существующих на сегодняшний день в ней  полей.

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

Справочник — это таблица, из которой можно подбирать значения в редактируемое поле и по которой можно проверять уже введенные величины. Для того, чтобы использовать некую таблицу как справочник, надо предварительно описать ее в данном Мастере и произвести настройки соответствующей табличной формы (см. 2.2. Мастер табличных форм). Выбор по справочнику можно ограничивать ключом или фильтром.

Настройку связи со справочником Вы можете сделать в Мастере таблиц или в Мастере табличных форм (см. 2.2.2. Закладка «Колонки»). Если настройки чем-либо различаются, связь со справочником будет осуществляться в соответствии с настройкой, сделанной в Мастере табличных форм, то есть этот мастер имеет более высокий приоритет. Это и понятно — если с данной таблицей для разных целей связано много разных форм представления, то, как правило, в большинстве из них нужны абсолютно одинаковые связи, и только в одной присутствуют некоторые «странности». Тогда только для нее и придется делать отдельное описание.

На данной закладке содержатся элементы (рис. 2.6.):

·       Переключатель Источник выбора, который позволяет указать, из какой разновидности таблицы будет осуществляться выбор и проверка значений: табличная форма, реестр документов или запросная форма.

·       Раскрывающийся список Тип связи со справочником.

Рис. 2.6. Мастер таблиц, закладка Поля таблицы, связь со справочником

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

Если выбран режим контроль с возможностью игнорировать, то при отсутствии в справочнике введенного в поле значения об этом будет выдаваться предупреждение.

Если выбран режим строгий контроль, то при отсутствии в справочнике введенного значения выдается сообщение об ошибке. При этом возможность игнорировать контроль закрыта, и пользователь может либо откорректировать справочник, либо отказаться от введенного значения.

Режим забор значения из справочника описан ниже.

·       Раскрывающиеся списки Табличная форма справочника и Поле связи в справочнике. В этих списках можно выбрать справочную таблицу и поле, по которому будет осуществляться контроль и подбор значений из справочной таблицы. В случае запросной формы вместо псевдонима табличной формы задается Псевдоним запросной формы, а вместо поля таблицы указывается поле запроса. В случае реестра документов никакой псевдоним задавать не требуется, а вместо поля таблицы указывается элемент массива общих мест, который для разных документов может быть связан с разными полями реестровой таблицы. Следует также обратить внимание, что режимы Строгий контроль и Контроль с возможностью игнорировать в случае реестра можно задавать только для элемента массива общих мест DOC@NOM_D (Основные реквизиты / Номер документа).

·       Поле ввода Номер группы полей, заполняемых из справочника одновременно с данным полем. Система справочников предоставляет возможность заполнять несколько полей редактируемой записи таблицы из выбранной записи справочника. Если Вы хотите одновременно заполнять группу полей, для каждой такой группы выберите уникальный номер, который затем аккуратно введете при описании каждого входящего в нее поля.

Все поля, заполняемые одновременно, должны иметь соответствующие настройки на закладке Связь со справочником и одинаковый номер группы. Для тех полей, которые должны только заполняться из справочника совместно с другими, но для них самих не нужен ни подбор из справочника, ни проверка по справочнику, должен быть выбран режим забор значения из справочника и все тот же номер группы. Пример использования такого «группового забора»? Пожалуйста! Когда Вы вводите номенклатурный номер товара при его отпуске, Вы можете захотеть тут же получить в поле цена отпуска рекомендуемое значение из прайс-листа. Тогда при описании каждого из этих полей Вы поставите имя одной и той же таблицы-справочника номенклатуры, разные имена полей в этой таблице (для кода отпускаемого товара — номенклатурный номер, а для цены отпуска — цену по прайс-листу) и один и тот же номер группы. Однако для номенклатурного номера Вы выберете режим строгого контроля по справочнику (уж тут-то никаких сомнений нет), а для цены — всего лишь режим забора, ибо для чего ее подсказывать — пусть просто вводится сразу же после выбора номенклатуры.

Кнопка  рядом с полем ввода служит для облегчения заполнения номера группы. При нажатии на кнопку будет выведен список всех групп, уже использованных в описании таблицы, с указанием, какая табличная или запросная форма используется для группы, и какое поле таблицы является ведущим в этой группе: то есть, для него предусмотрен не просто забор значения из справочника, но подбор либо проверка по справочнику. Следует обратить внимание, что в описании таблицы может быть несколько групп, связанных с одним справочником. Именно поэтому для правильного выбора группы важно знать не только псевдоним табличной или запросной формы, но и ведущее поле в группе. Также следует учитывать, что для объединения полей в одну группу необходимо не только совпадение номера группы, но и совпадение табличной или запросной формы. Если в описании таблицы некоторый номер группы использован в сочетании с разными формами справочника, эти группы считаются разными, и в списке групп будут представлены отдельными строчками. При выборе одной из строк списка будет автоматически установлен не только номер группы, но и псевдоним табличной или запросной формы, так что выбор группы можно осуществлять без предварительного выбора псевдонима формы. Последним в списке групп представлен номер, еще не использованный в описании таблицы: его можно выбрать для формирования новой группы.

·         Флажок Автозаброс новых значений активен только, если источником выбора является табличная форма, а в качестве режима связи со справочником выбран строгий контроль или контроль с возможностью игнорировать. При этом если значение, вводимое в поле, не найдено в справочной таблице, то появляется сообщение об ошибке: «не найдено значение в справочнике», в котором, в частности, активной является кнопка Добавить в справочник. Добавленная в справочник строка будет иметь заполненным только справочное поле.

·       Закладки Выражение для ограничения справочника по ключу и Выражение для фильтра появляются только, если источником выбора является табличная форма. При заполнении этих закладок (или одной из них) работа со справочником (и подбор, и контроль) будет ограничена только теми записями, которые удовлетворяют условию отбора по ключу или условию фильтра. Условие фильтрации задается в виде выражения, в котором используются имена полей справочника. Выражение должно возвращать логическое значение. Условие отбора по ключу задается в виде выражения, в котором могут использоваться имена полей текущей таблицы (т.е. описываемой сейчас, той, в которую осуществляется подбор). Значение этого выражения будет вычислено и использовано в качестве ключа при отборе записей справочника: как тех, которые используются для подсказки, так и тех, по которым осуществляется проверка. Отбор осуществляется по тому ключевому полю, которое задано при описании указанной табличной формы справочника (см. 2.2. Мастер табличных форм). Если установлен флажок Проверка по префиксу (действует только для символьных полей), достаточно чтобы ключевое поле начиналось с вычисленного значения. Иначе необходимо, чтобы ключевое поле точно с ним совпадало. Если в табличной форме справочника не предусмотрено ключевое поле, но имеется дерево групп, то эта настройка интерпретируется несколько иначе: вычисленное по формуле значение используется как код той группы, которая будет выделена в дереве в момент вывода на экран табличной формы справочника.

Если в табличной форме справочника не предусмотрено ключевое поле, но имеется дерево групп, то эта настройка интерпретируется несколько иначе: вычисленное по формуле значение используется как код той группы, которая будет выделена в дереве в момент вывода на экран табличной формы справочника.

·       Закладки Выражение для типа документа и Выражение для кода партнера появляются только, если источником выбора является реестр документов. Выражение для типа документа является обязательным. Выражение формулируется в терминах полей основной таблицы. Результат должен быть целым числом, которое задает код одного из типов документов, хранимых в реестре. В зависимости от этого типа поиск и проверка будет осуществляться физически в разных таблицах, причем только в тех, в которых в качестве типа документа указан требуемый тип. Выражение для кода партнера не является обязательным. Если же оно задано, то должно также давать целое число: код партнера, среди которых выбирается и проверяется номер документа. Таким образом, Вы можете дополнительно ограничить реестр документов теми записями, которые имеют отношение к конкретному партнеру, упомянутому в текущей записи основной таблицы.

·       Если источником выбора является запросная форма, то вместо упоминавшихся выше закладок появляются четыре кнопки. Справа расположена кнопка Редактировать, которая позволяет вызвать форму редактирования текста запроса, а также кнопка Тест запроса, которая позволяет выполнить запрос и просмотреть его результаты. Если в тексте запроса имеются параметры или макропараметры (их количество видно прямо здесь: между кнопками), то активируются соответственно кнопки Параметры и Макропараметры. Если в описании связи со справочником не будет задано никакого значения для параметра или макропараметра, будет использовано значение по умолчанию, которое имеется в описании запроса.

·       Кроме того, одно и то же поле таблицы можно связать с несколькими (как правило, двумя) справочниками, осуществив соответствующие настройки, которые могут входить в разные группы или не входящих в группы связи со справочником вообще. Среди этих настроек может быть только одна связь со справочником в режиме "разрешен подбор", "строгий контроль" или "контроль с возможностью игнорировать", а остальные должны быть в режиме "забор значения из справочника" (для этого предназначена соответствующая закладка в разделе Связь со справочником). Дополнительно, в настройке режима "забор значения из справочника" имеется возможность указать, что при заборе значения в это поле учитывается его собственная связь со справочником в режиме "строгий контроль" или "контроль с возможностью игнорировать".

Если значение в справочнике не найдено, возможны следующие режимы работы:

1) записать в поле значение, полученное в режиме "забор значения из справочника";

2) записать в поле значение и очистить зависимые поля, входящие в его собственную группу;

3) не записывать в поле такое значение, оставив в поле старое значение;

4) очистить поле и все зависимые поля, входящие в его собственную группу.

Предусматривается выбор одного из этих вариантов прямо в настройке связи со справочником в режиме "забор значения".

Обратите внимание! Возможность каскадного заполнения полей не следует использовать для уже существующих основных таблиц ERP-системы «КОМПАС» - возможность каскадного заполнения полей для них уже реализована программно. В основном эта доработка предназначена для использования при создании и описании новых таблиц и табличных форм.

----------------------------------------------------------------------------------------------------------------------------------------

Пример настройки связи поля таблицы (табличной формы) со справочником в двух режимах (основная связь и забор из справочника).

В качестве примера возьмем табличную форму _TEST, сформированную с помощью мастера табличных форм по одноименной таблице и содержащую следующие поля: ID (идентификационный номер записи),SKLAD (номер склада), MOL (табельный номер материально-ответственного лица),  NAME (Ф.И.О. материально-ответственного лица).

Предположим, что в этой табличной формы мы хотим заполнять:

- номер склада (SKLAD), выбирая его из справочника подразделений;

- табельный номер (MOL) и Ф.И.О. (NAME) материально-ответственного лица -  автоматически, из того же справочника подразделений, если они там указаны, но с обязательным контролем по кадровой картотеке. Если же в справочнике подразделений табельный номер и Ф.И.О. МОЛ не указаны, или при необходимости указать другие значения, мы хотим иметь возможность выбора этих данных из кадровой картотеки.

Для установки такой связи со справочником надо произвести описанные ниже настройки связи со справочником.

Настраиваем основную связь со справочников для поля SKLAD, как это показано на рисунке справа. Обратите внимание на назначение номера группы колонок: нажав на кнопку , в появившейся форме выбираем строку, в которой № группы и поля1, табличная или запросная форма справочника[новая группа]. После сохранения формы выбора группы запись будет выглядеть так: № группы и поля1 SKLAD, табличная или запросная форма справочника OTDEL [Справочник подразделений].

На закладке Забор значения никаких настроек не делаем.

 

 

Настройка основной связи со справочником для поля MOL: номер группы колонок выбирается 2 – [новая группа]. После сохранения формы выбора группы запись будет выглядеть так: № группы и поля2 MOL, табличная или запросная форма справочника KADRY [Кадровая картотека].

 

 

Настройка второй связи со справочником – забора значения – для поля MOL.

По умолчанию список вариантов пуст. Для установки источника выбора значений надо нажать кнопку Добавить, а затем указать выбрать номер группы колонок – в данном случае это 1 OTDEL. После выбора поле Табличная форма справочника заполнится автоматически. Далее надо указать Поле связи в справочнике. По нажатию кнопки  на экран выводится список полей таблицы OTDEL (таблицы, указанной в качестве табличной формы справочника). В этом списке и  выбирается поле связи в справочнике.

Флажок Учитывать собственную (основную) связь со справочником должен быть установлен.

Далее из раскрывающегося списка выбирается один из вариантов поведения программы в том случае, если значение в справочнике отсутствует.

 

 

Настройка связи со справочником для поля NAME показана на рисунке  справа.

В результате проведения настроек, показанных в этом примере, заполнение табличной формы будет производиться следующим образом. После выбора склада (SKLAD) из справочника подразделений автоматически будут заполнены поля с табельным номером (MOL) и Ф.И.О. (NAME) материально-ответственного лица – забором значений из того же справочника подразделений, если они там указаны. При этом будет произведена проверка на наличие такого табельного номера в кадровой картотеке. Если этот номер обнаружен не будет, программа поступит так, как было определено на закладке Забор значения для поля с «двойной» связью (MOL). Если в справочнике подразделений никакой информации о материально-ответственном лице не оказалось (поля MOL и NAME не заполнились), или в том случае, если автоматически забранные из справочника подразделений значения Вас не устраивают, выбор табельного номера и Ф.И.О. материально-ответственного лица можно произвести из кадровой картотеки непосредственно (нажав кнопку  в поле MOL).

-----------------------------------------------------------------------------------------------------------------------------------------

На закладке Спец. настройка расположены три флажка, установка которых предохраняет пользователя от случайного изменения типа или длины поля, а также от его удаления из описания таблицы. Как правило, эти флажки выставляются для тех полей, которые, безусловно, необходимы для правильного функционирования алгоритмов, жестко прописанных в текстах программ ERP-системы «КОМПАС». Например, номенклатурные номера, поля количества и цен в документах складского движения, поля остатков в складских карточках и т.п. Также в этой форме имеется флажок может не присутствовать в табличной форме.

Массив общих мест таблицы (см. раздел «Общие правила работы»), который можно редактировать после нажатия соответствующей кнопки, представляет собой иерархическую («древовидную») структуру. Массив предназначен, в основном, для обмена данными между документами из различных реестров и создания расчетных формул.

Соответствие между полями таблицы и элементами массива устанавливается с помощью Конструктора массива общих мест (рис. 2.7.).

Работа с конструктором осуществляется с помощью двух структур: массива эталона и массива редактируемой таблицы.

Вы можете заполнять массив общих мест редактируемой таблицы «перетаскиванием» элемента массива эталона в левое окно. Заметим, что если Вы пытаетесь перетащить элемент, а он никак не перетаскивается, то значит - это группа («групповой» перенос не разрешен), пусть даже уже пустая, т. к. все ее элементы уже были перенесены в левое окно до того.

 

Рис. 2.7. Конструктор массива общих мест

 

При переносе появляется окно с просьбой ввести имя поля, предварительно заполненное эталонным именем для данного элемента массива общих мест. Нажав на расположенную в этом окне кнопку  (Справка), Вы вызовете на экран список полей текущей таблицы и сможете осуществить из него выбор. Следует помнить, что если имя, указанное для переносимого элемента массива, не является полем текущей таблицы, то при переносе оно не будет связано ни с одним полем таблицы. Не вдаваясь в подробности, заметим, что на уровне освоения системы, для которого предназначено данное руководство, не следует пользоваться никакими другими возможностями, кроме выбора, хотя Мастер таблиц этого и не запрещает.

После переноса элемента в массив таблицы элемент исчезает из эталонного окна.

Удаление элемента из массива таблицы производится выбором соответствующего пункта контекстного меню, вызываемого щелчком правой клавиши мыши (помимо этого там можно провести редактирование описания элемента по правилам п.6. Редактирование эталонного массива общих мест), или нажатием клавиши Del. В отличие от эталонного, в массиве таблицы можно удалять группу целиком. Удаленные элементы тут же возвращаются в правое окно и вновь доступны для «перетаскивания».

При необходимости, Вы можете откорректировать и сам эталонный массив, описание которого хранится в файле с именем masob.dat. Для этого надо щелкнуть правой клавишей мыши по эталонному массиву. На экран будет выведено меню, с помощью которого можно создать новый эталонный элемент (место) массива, откорректировать или удалить старый, создать новую группу элементов или перенести элемент в другую группу. При создании нового элемента его тип выбирается из нескольких предопределенных вариантов. Подробнее об этом см. п. 6. Редактирование эталонного массива общих мест.

2.1.3.     Закладка «Индексы»

Для того, чтобы создать новый индекс, или изменить его описание, откройте закладку Индексы в окне описания таблицы (рис. 2.8.).

·       Группа Список индексов. В список включены все индексы, связанные с таблицей. Добавление и удаление индексов производится кнопками Добавить и Удалить. Кнопки со стрелками  Вверх и  Вниз позволяют перемещать индекс на позицию вверх и вниз (не рекомендуется делать первичный индекс не первым в списке). Кнопки Создать индекс и Создать все позволяют физически создать выбранный индекс или все индексы базы данных. В последнем случае перед созданием индексов будут удалены все существовавшие индексы, включая и неописанные. Следует, однако, обратить внимание, что в случае работы с MS SQL-сервером первичный кластерный индекс создается только одновременно с таблицей, например, при ее реструктуризации.

·       Закладка Описание индекса. В соответствующих полях нужно указать пользовательское название индекса, его имя в базе данных или в индексном файле, и список полей, составляющих ключевое выражение. Имена полей внутри списка разделяются точкой с запятой (;). Можно воспользоваться подсказкой  по существующим полям таблицы. Тогда программа сама будет вставлять точки с запятой там, где это нужно.

Внимание!!! Авторы рекомендуют в каждый индекс включать поле с уникальным значением, если таковое в таблице имеется (в конец списка полей). Естественно, совершенно необязательно вставлять его на самое первое место, ибо именно по первому полю в дальнейшем будет осуществляться сортировка (см. 2.2.4. Закладка «Сортировки»).

Рис. 2.8. Мастер таблиц, закладка Индексы

·       Группа Опции. Здесь указывается, является ли данный индекс первичным или уникальным, текст появляющегося в случае нарушения уникальности сообщения и говорится, надо ли отслеживать значение регистра символов (заглавные — строчные символы), т.е. создается индекс чувствительный или нечувствительный к регистру.

*     Уточнение

Для повышения надежности многопользовательской работы в ERP-системе Компас проводится доработка инструмента и отдельных подсистем, обеспечивающая автоматическое обновление отображаемой строки табличной формы перед выполнением значимых операций: корректировка строки, удаление строки, вызов экранной формы и др. Это обновление уже действует в реестрах документов. Производятся работы по реализации настройки, с помощью которой можно будет включить аналогичный режим для любой табличной формы, в том числе – разработанной самостоятельно.

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

1.    Все таблицы должны иметь первичный индекс, однозначно идентифицирующий запись в таблице.

2.    Настоятельно рекомендуется включать в первичный индекс одно ключевое поле, имеющее уникальное значение для каждой записи.

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

4.    Рекомендуемый тип ключевого поля: «Автоинкремент» или «АвтоинкрементID». Для реестров может использоваться тип «Длинный целый», который благодаря программной поддержке реестров эквивалентен типу «АвтоинкрементID».

5.    Если для целей учета в таблице необходимо иметь уникальный код, имеющий учетный смысл, он может быть использован в качестве первичного ключа при условии, что он никогда не будет меняться в процессе редактирования записей. Если это условие не может быть выполнено, настоятельно рекомендуется иметь в такой таблице два ключевых поля: служебное ключевое поле, входящее в первичный индекс, и учетное ключевое поле, которое может входить в другой уникальный (не первичный) индекс. Примером таблицы с  двумя ключевыми полями может служить таблица PLAN_CH.

6.       Если таблица с двумя ключевыми полями имеет тип SPR и необходимо, чтобы при добавлении записи учетное ключевое поле автоматически заполнялось следующим по порядку значением, следует в описании таблицы учетное ключевое поле располагать первым. Физический порядок полей в таблице при этом не имеет значения

 

Обратите внимание, что для таблиц Paradox поля, составляющие ключ первичного индекса, должны располагаться в начале таблицы в том же порядке, что и в выражении, задающем ключ. При необходимости этот порядок должен быть скорректирован на закладке Поля таблицы (см. п.2.1.2) стрелками Вверх и Вниз. После корректировки порядка полей вам надо изменить структуру таблицы в соответствии с описанными изменениям. Изменить структуру таблицы можно нажатием кнопки Изменение таблицы на закладке Общие сведения (см. п.2.1.1). Не следует для обеспечения желаемого порядка следования полей в существующей таблице пользоваться кнопкой Создать таблицу (см. п. 2.1.1), так как в этом случае произойдет полная потеря всех содержащихся в ней данных.

В нижнем правом углу страницы расположены два флажка, которые регулируют порядок автоматического создания индексов в случае, если при открытии таблицы выяснится, что индекса нет или он не соответствует описанию. Флажок Создавать индексы при открытии таблицы, должен быть сброшен при использовании SQL-серверов, но рекомендуется устанавливать для таблиц в формате Paradox и dBase.Обычно; флажок Создавать индексы при создании таблицы должен быть установлен.

Закладка Спец. настройка не предназначена для пользователей и потому не описывается.

2.1.4.     Закладка Триггеры

            На этой закладке представлен список триггеров, подключенных к таблице. К моменту подключения к таблице сам триггер должен быть уже описан  - в специальной форме Триггеры (см.п.2.8). Пользователю предоставляется возможность Добавить триггер в список, удалить из списка, заменить или просмотреть выделенный в списке триггер. Также можно создать или удалить объект (или все сразу), для этого предназначены кнопки в нижней части формы. Установленный флажок Создавать при создании таблицы определяет автоматическое создание триггера (при создании таблицы). 

2.1.5.     Закладка «Спец. настройка»

В группе Создание таблицы расположен флажок, установив который Вы заставите программу создавать таблицу SQL-запросом.

Внимание!!! Это единственный способ создания таблицы, хранящейся на SQL-сервере, в этом случае он обязательно должен быть установлен. Программа автоматически генерирует текст запроса, содержащий название таблицы, имена и характеристики полей. При желании Вы можете изменить текст, нажав расположенную рядом кнопку . При этом не рекомендуется изменять тип и наименование полей - данная возможность планировалась для корректировки SQL предложения CREATE TABLE с указанием различных параметров, характерных для конкретного SQL-сервера.

Флажок Создавать таблицу в автоматическом режиме включает или исключает таблицу в список для массового создания (см. пункт 5.3. Упаковка и переиндексация).

Флажок Поставляется предварительно заполненной означает именно то, что следует из его названия.

 Кроме того, здесь же можно настроить возможность сохранения истории изменений таблицы. Хранение истории таблицы БД подразумевает сохранение тех строк, данные в которых были изменены, в специально созданной для этого таблице. Таким образом, в той таблице, которая используется в рабочем процессе, хранятся актуальные данные, а в таблице для хранения истории – данные, которые были изменены.

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

Настройка хранения истории таблицы производится в Мастере таблиц.

Порядок настройки следующий:

·      анализируется содержание «рабочей» таблицы, для которой планируется хранить историю изменения записей, и определяется необходимость добавления поля для хранения Даты записи в таблицу истории. При необходимости это поле добавляется в «рабочую» таблицу;

·       создается таблица для хранения истории. Эта таблица создается как копия «рабочей» таблицы;

·       В описании рабочей таблицы отмечаются поля, изменение значений которых НЕ требует сохранения строки в таблице истории.

Рис.2.8.1. Установка признака Не учитывать при ведении истории

Эта настройка производится в разделе Поля таблицы на закладке Спец.настройка установкой флажка Не учитывать при ведении истории. По умолчанию флажок не установлен, следовательно, изменение значения любого поля таблицы повлечет за собой сохранение измененной строки в таблице истории (после того, как указана эта таблица и сделаны настройки, описанные ниже);

·       производится настройка порядка хранения истории на закладке Спец.настройка

Рис.2.8.2. Настройка параметров сохранения истории таблицы

-       В поле Псевдоним таблицы с историей из общего списка таблиц выбирается специально созданная ранее таблица;

-       Заполняется поле Список полей, идентифицирующих объект - выбором из общего списка полей таблицы. Полей можно выбрать несколько. Выбранные поля должны однозначно определять строку таблицы. Это особенно важно, если выбран режим работы с историей с точностью до даты;

-       Устанавливается режим работы с историей: если переключатель установлен в положение дополнять всегда, то измененные строки будут сохраняться в таблице хранения истории сразу после внесения любого изменения в любое из полей рабочей таблицы (кроме тех, которые отмечены флажком Не учитывать при ведении истории). Если выбрать опцию с точностью до даты, строки будут сохраняться следующим образом: при первом изменении данных в значимом для сохранения истории поле рабочей таблицы строка записывается в таблицу истории. Если в этот же день (на ту же дату), эта строка изменяется еще раз – ранее записанная строка в таблице истории заменяется на новую. При поиске в таблице истории измененной на ту же дату строки используются значения полей, идентифицирующих объект, указанных в одноименном списке. Таким образом, если производится изменение одного и того же объекта (строки – если список указанных при настройке полей однозначно идентифицирует строку) несколько раз за одну и ту же дату, будет сохранено последнее изменение;

-       В последнем поле указывается поле для сохранения даты записи в таблице истории;

·       Также на этой закладке может быть указано, каким образом следует проводить обновление данных в таблице после сохранения записи в табличной форме, основанной на этой таблице (не обновлять; производить обновление данных в текущей записи; обновлять записи всей таблицы).

·       По завершении настроек необходимо провести реструктуризацию таблицы, описание которой редактировалось.

Для просмотра на основании данных таблицы для хранения истории изменений можно создать табличную форму.

Примечание.

Если в рабочей таблице отсутствует поле для хранения сведений об авторе изменений, а эту информацию необходимо видеть в таблице истории, на этапе анализа «рабочей» таблицы и добавления поля для хранения даты записи истории, можно добавить в таблицу-источник поле для хранения данных об авторе и сделать настройки, показанные на рисунке ниже. В поле будет сохраняться имя пользователя, который работает с таблицей.

Рис.2.8.3. Настройка поля для хранения данных об авторе внесения изменений

2.1.6.     Заполнение таблицы данными

Новую или уже существующую таблицу можно заполнить данными из другой таблицы, возможно, даже имеющей совсем другую структуру. Для этого после входа в режим редактирования описания таблицы достаточно нажать кнопку Загрузить данные на закладке Общие сведения, после чего на экране появится новое окно (рис. 2.9.).

Таблицу - источник можно выбрать в этом окне на закладке Источник данных, сначала указав псевдоним базы данных, а потом выбрав таблицу в этой базе из раскрывающегося списка (рис. 2.9.). Если при выборе базы данных в ней будет обнаружена таблица с тем же именем, что и заполняемая таблица, то имя таблицы будет выбрано автоматически, однако при необходимости, Вы можете выбрать и другую таблицу.

Рис. 2.9. Форма настройки заполнения таблицы данными

После этого на закладке Соответствие полей расположатся списки Заполняемая таблица и Таблица-источник, в которых будут отображены поля вышеуказанных таблиц. Для того чтобы установить соответствие между полем в заполняемой таблице и полем в источнике необходимо:

·       Щелкнуть левой клавишей мыши на поле заполняемой таблицы;

·       Дважды щелкнуть левой клавишей мыши по нужному полю таблицы-источника.

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

·       Щелкнуть левой клавишей мыши по полю заполняемой таблицы, имеющему соответствие с каким-либо полем источника;

·       Дважды щелкнуть левой клавишей мыши по соответствующему полю таблицы-источника.

При установленном соответствии у левого края выделенного поля и у левого края соответствующего поля таблицы-источника отображаются красные метки. Если поле в данный момент не выбрано для редактирования, а соответствие уже было установлено, то у правого края соответствующего поля источника отображаются синие метки.

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

С помощью кнопки Отменить Вы можете отказаться от переноса данных.

2.1.7.     Изменение структуры таблицы

После нажатия кнопки Изменить структуру на (см. 2.1.1. Закладка «Общие сведения») на экране появится новое окно, которое так и называется -  Изменение структуры таблицы. В выпадающем меню Старое имя можно выбрать таблицу-источник данных. Список полей источника данных при этом отображается в окне Старая структура закладки Соответствие полей (рис. 2.10.)

Если в поле Новое имя задано новое имя таблицы (подсказанное из текущего описания), производится ее создание с использованием текущих настроек.

Каждому полю новой структуры Вы можете поставить в соответствие поле старой структуры.

Для простейших случаев такое соответствие устанавливается автоматически. В более сложных случаях это необходимо сделать вручную.

Установка соответствия абсолютно аналогична процедуре, описанной в 2.1.4. Заполнение таблицы данными.

Рис. 2.10. Форма настройки изменения структуры таблицы

Если флажок Перенести данные в новую структуру установлен, то новая таблица заполняется данными из старой таблицы, если же флажок не установлен, то таблица с новой структурой остается пустой.

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

С помощью кнопки Отменить Вы можете отказаться от изменения структуры.

Если структура таблицы не будет изменена явно с помощью мастера таблиц, то при первом же открытии таблицы Вы получите сообщение о несоответствии структуры ее описанию. При этом Вы сможете либо изменить структуру «на ходу» (с помощью того же диалога), либо отказаться от использования таблицы.

2.2.        Мастер табличных форм

Этот мастер служит для создания, редактирования и удаления табличных форм, с помощью которых производится такое отображение данных, когда на экране мы видим одновременно много записей (одна строка — одна запись). Помимо этого, именно в данном мастере можно установить критерии фильтрации данных, их поиска, подсчета контрольных сумм, описать эти контрольные суммы, установить сортировки для удобного просмотра информации.

Первое, что Вы видите, войдя в соответствующий пункт меню Сервис или нажав кнопку  на панели инструментов, это список всех тех форм, которые на данный момент уже можно использовать в работе. Список состоит из трех колонок: Псевдоним, Описание и Таблица (рис.2.11.). Достаточно щелкнуть левой клавишей мыши по заголовку любой из колонок, чтобы все ее строки отсортировались в алфавитном порядке, т.е. Вы можете осуществлять поиск в списке и по псевдонимам, и по описаниям, и по именам таблиц.

Рис. 2.11. Мастер табличных форм

Псевдоним табличной формы — это обозначение, с которым работает программа. Он не обязан совпадать с названием отображаемой таблицы -  с одной таблицей может быть связано множество табличных форм. Например, одним пользователям нужно видеть только три колонки данных, а другим абсолютно все. В этом случае создаются две разных табличных формы, и вызываются они разными пунктами меню (см. 1.1. Администратор меню) или на разных рабочих местах. Псевдоним каждой табличной формы должен быть уникальным. Описание формы не несет служебной информации и используется для пояснения ее функций. Псевдоним табличной формы, ее описание и настройки составляют шаблон. Все шаблоны табличных форм находятся в специальном файле с расширением dat. Такой файл для мастера табличных форм чаще всего имеет имя tfman.dat.

В форме мастера табличных форм расположены кнопки:

·         Новая форма. Нажав на эту кнопку, Вы создадите новую пустую табличную форму. Все ее настройки следует заполнить в открывающемся после нажатия кнопки окне Табличная форма (см. ниже).

·       Новая из текущей. Нажав на эту кнопку, Вы создадите табличную форму по образцу текущей. После этого в нее можно внести необходимые изменения в окне Табличная форма, которое выводится на экран после нажатия кнопки.

·       Кнопка Импорт шаблона вызывает диалоговое окно Выбор файла с шаблонами табличных форм. При выборе корректного (содержащего шаблона табличных форм) файла с расширением dat, появится окно Импорт шаблона табличной формы. Выберите в этом окне шаблон или несколько шаблонов - отмечая второй и последующие шаблоны, удерживайте нажатой клавишу Ctrl.  Нажав на кнопку OK, Вы добавите новый шаблон (или шаблоны) в список. Перед импортом описание шаблона можно посмотреть, нажав на кнопку Просмотр.

·       Кнопка Удалить шаблон позволяет удалить из списка устаревшую информацию.

·       Кнопка Редактировать выводит окно с описанием реквизитов табличная формы (см. ниже подробное описание) для выбранного псевдонима.

·       Кнопка Сравнить описания позволяет Вам выявить разницу между отмеченной в списке табличной формой и формой с тем же псевдонимом, описанной в другом dat-файле. После ее нажатия на экран выводится окно, в котором осуществляется выбор «эталонного» файла шаблонов. Нажав кнопку Открыть, Вы получите на экран Результат сравнения описаний, который можно с помощью кнопки Сохранить записать на диск в виде текстового файла. Имеется возможность нажать кнопку Импорт и заменить существующий шаблон выбранным эталоном.

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

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

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

·       Кнопка Мастер таблиц вызывает мастер таблиц (см. 2.1.), Вам  не надо  передвигаться  по меню лишний раз.

Теперь мы рассмотрим те настройки, которые можно осуществить в окне редактирования табличной формы, вызываемом к жизни нажатием кнопок Новая форма или Редактировать.

Нажав на кнопку Новая форма, Вы создадите новую пустую табличную форму. Все реквизиты табличной формы следует указать в открывающемся при нажатии кнопки окне Табличная форма.

Нажав на кнопку Новая из текущей, Вы создадите табличную форму по образцу текущей. После этого в нее можно внести необходимые изменения в окне Табличная форма, которое выводится на экран при нажатии кнопки.

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

2.2.1.     Закладка «Общие сведения»

На закладке Общие сведения расположены следующие объекты (рис. 2.12.).

Рис.2.12. Мастер табличных форм, закладка Общие сведения

·       Псевдоним табличной формы: позволяет задавать тот самый уникальный псевдоним, который будет отображаться в списке, рассмотренном чуть выше.

·       Флажок Использование в качестве справочника. Если он установлен, то табличная форма может быть использована как справочник.

·       Таблица базы данных. Выпадающий по кнопке  список предоставляет возможность выбрать таблицу, данные которой будет отображать табличная форма.

·       Кнопка Описание отображает окно Описание таблицы из мастера таблиц (см. 2.1), избавляя Вас от передвижений по меню.

·       Заголовок табличной формы позволяет задать то самое описание, которое используется в рассмотренном выше списке табличных форм. Но это не единственная функция введенного здесь текста, о чем и говорит название объекта. При вызове данной табличной формы из пункта меню (см. 1.1. Администратор меню) этот комментарий будет использован в качестве заголовка окна, напоминающего пользователю, что за форма выведена на экран.

·       Идентификатор справки: указывает, какая статья справочной системы должна вызываться при работе с табличной формой.

·       Поле с датой события: позволяет включить специальный режим работы с табличной формой, при котором в левой части формы представлен календарь. При перемещении по календарю в табличной форме отображаются только те строки, в которых значение в указанном поле либо равно выбранной дате, либо принадлежит выбранной неделе или месяцу. 

·       штатное расписание;

·       штатная расстановка;

·       журнал неявок;

·       табель учета рабочего времени;

·       расчетная ведомость;

·       свод по заработной плате;

·       лицевой счет с отбором по одному работнику.

С другой стороны, режим действует всегда (вне зависимости от настройки в описании табличной формы) для лицевых счетов и базы ЕСН, кроме случаев, когда эти ТФ визуализируют данные по одному работнику или по одному получателю алиментов.

·       Флажок При открытии заполнять значениями поля из таблицы, только присутствующие в табличной форме (по умолчанию не установлен). Установка флажка означает, что при открытии табличной формы будут считаны значения только из тех полей таблицы, для которых есть описание в табличной форме. Обратите внимание! Если поля скрыты, но их описание в табличной форме присустсвует, их значения все равно будут считаны из таблицы;

·       Группа Ограничение таблицы по ключу. Ключ — это набор полей, однозначно идентифицирующих группу записей из таблицы. Поле, входящее в ключ, называется соответственно ключевым. Ключ позволяет работать с частью таблицы, отобранной по заданным значениям ключевых полей. При добавлении новых записей в табличной форме, для которой установлено ограничение, значения ключевым по­лям присваиваются автоматически.

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

Следует обратить внимание, что для отбора части таблицы по ключевым полям необходимо наличие совместимой сортировки в табличной форме (см. 2.2.4. Закладка «Сортировки»). Кроме того, следует отметить, что поля, по которым осуществляется отбор, должны обязательно присутствовать в перечне колонок (см. 2.2.2. Закладка «Колонки»). Если Вы не хотите их видеть, то следует установить располагающийся ниже флажок Не выводить колонки с ключевыми полями.

·       Кнопка Экранная форма отображает окно, в котором табличной форме можно сопоставить экранную (см. 2.3. Мастер экранных форм).

·       Кнопка Печатная форма отображает окно, в котором табличной форме можно сопоставить одну или несколько печатных форм (см. 2.4. Мастер печатных форм).

·       Кнопка Шаблоны отчетов отображает окно, в котором табличной форме можно сопоставить один или несколько шаблонов отчетов (см. 2.6. Мастер отчетов).

·       Кнопка Тест предоставляет возможность отобразить текущую табличную форму, с измененными (но не обязательно сохраненными) настройками. Одновременно происходит заполнение данными из соответствующей таблицы. Использование кнопки Тест существенно облегчает процесс настройки.

Разграничение доступа пользователей к кнопкам экспорта данных в табличных формах

Нажатие на кнопку Права на выгрузку выводит на экран диалоговую форму выбора вида экспорта.

Внимание!

Настройки разграничения доступа для каждого вида экспорта данных из табличной формы (XLS, DBF или CSV) производятся отдельно.

После выбора вида экспорта на экран выводится форма настройки разграничения доступа к возможности экспорта данных в выбранном формате для выбранной табличной формы.

*     Уточнение

Порядок работы по настройке разграничения доступа к возможности экспорта данных табличных и запросных форм одинаковый.

 

Рис.2.12.1. Настройка разграничения доступа к возможностям выгрузки данных табличных и запросных форм в форматы XLS, DBF и CSV

Права доступа могут быть настроены в одном из двух режимов: черный список (принят по умолчанию) и белый список.

В левой части формы представлен общий список пользователей модуля.

Если выбран режим черный список, то пользователям, перемещенным в список доступа, доступ к возможности выгрузки данных будет закрыт (на рисунке выше – это Пользователь 4, Пользователь 5, Пользователь 6 и Пользователь 7), то есть по умолчанию, до переноса записей в список доступа, всем пользователям будет разрешено экспортировать данные. Добавленные после настройки прав доступа пользователи также по умолчанию будут иметь возможность экспорта данных.

Если выбран режим белый список, то возможность экспорта будет доступна только пользователям, помещенным в список доступа. При такой настройке добавленные после проведения настройки прав доступа пользователи по умолчанию не будут иметь возможности экспорта данных.

*     Уточнение

1)   Настройка прав доступа к использованию возможности экспорта данных хранится в описании табличной или запросной формы. При создании новой табличной или запросной формы на основании текущей права доступа заимствуются из текущей табличной или запросной формы;

2)   настройка прав доступа хранится в виде списка пользователей, входящих в черный или белый список.  Если сохранен черный список, то все пользователи, входящие в него, не имеют возможности экспорта данных, всем остальным пользователям эта возможность доступна. Если сохранен белый список, то возможностью экспорта могут воспользоваться только перечисленные в нем пользователи, для всех остальных эта возможность закрыта. В случае заимствования формы в другой модуль эти же правила действуют для тех пользователей, которые отсутствуют в модуле, с помощью которого производилась настройка.

2.2.2.     Закладка «Колонки»

Колонки — это, по смыслу, те же поля таблицы. Но, во-первых, как уже писалось выше, далеко не все поля надо выводить на экран в данной конкретной табличной форме. А во-вторых, колонку можно описать как некое «временное» поле с данными, которые реально не хранятся в таблице, а вычисляются в момент визуализации. Естественно, что редактировать данные в таких колонках нельзя.

Этим объясняется наличие разных терминов: «поле» и «колонка». А теперь приступим непосредственно к описанию настроек.

Свойства каждой колонки редактируются индивидуально.

Рис.2.13. Мастер табличных форм, закладка Колонки

Все настройки колонок расположены на закладке Колонки, на которой, в свою очередь, имеются (рис. 2.13.):

·       Группа Список колонок.

·       Закладка Описание колонок.

·       Закладка Вид на экране.

·       Закладка Контроль валидности.

·       Закладка Связь со справочником.

·       Закладка Спец. настройка.

Группа Список колонок содержит собственно список колонок, кнопку Новая, позволяющую добавить в табличную форму новую колонку, кнопку Удалить, которая позволяет убрать колонку из формы, а также кнопки Добавить все и Удалить все, нажав на которые можно соответственно создать колонки для всех полей таблицы или полностью очистить перечень. Группа также содержит кнопки со стрелками  Вверх и  Вниз, задающие выделенному полю желаемую позицию (считая от левого края формы) при визуализации. В поле Фиксированные колонки задается количество колонок, остающихся неподвижными при прокрутке таблицы вправо и влево. Это очень удобно, например, при просмотре перечня личных карточек. При перемещении по одной строке таблицы информация на экране меняется, но всегда видны табельный номер и фамилия сотрудника. Таким образом, не надо запоминать, чьи данные просматриваются.

Еще раз напомним, что в списке колонок обязательно должны присутствовать ссылки на поля, описанные на закладке Общие сведения (см. 2.2.1) в качестве ограничителей выводимых записей по ключу. Самые общие свойства колонок можно настроить на закладке Описание колонки. На этой закладке расположены элементы:

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

·       Флажок выводить в режиме подбора из справочника. Флажок активен, только если на закладке Общие сведения (см. 2.2.1) установлен флажок Использовать в качестве справочника. Соответственно, при таком использовании табличной формы, будут отображаться лишь те колонки, для которых установлен этот флажок. Это позволяет применять одну и ту же табличную форму и для редактирования ка­кой-либо таблицы и для выбора из нее справочных данных, не показывая во втором случае избыточную информацию, минимизировав, таким образом, трудозатраты на подготов­ку нужных форм.

·       Флажок скрыть в режиме редактирования таблицы. Установка этого флажка позволяет убрать колонку из табличной формы, когда она используется как инструмент корректировки таблицы, но показать колонку, например, при использовании табличной формы в качестве справочника. Это также маленькое дополнительное удобство для минимизации трудозатрат.

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

Если переключатель Тип поля находится в положении Поле таблицы, то отображается группа Для поля таблицы. В группу входят: раскрывающийся список, задающий имя отображаемого поля, и флажок, устанавливающий запрет на редактирование колонки поля.

Если переключатель Тип поля находится в положении Вычисляемое поле, то отображается группа Формула для вычисляемого значения. В группу входят: поле для ввода формулы, раскрывающийся список с допустимыми типами результата и ограничитель по длине результата, активный, только если результат имеет символьный тип. В этой же группе расположена кнопка  для вызова Конструктора формул (см. п.8), который позволяет легко и удобно создавать выражения с любым типом результата, и  кнопка  проверки правильности введенной формулы. Хотя, теоретически, для вычисляемых полей можно использовать все переменные, пока­занные Конструктором формул, на самом деле эффект от их применения может зависеть от точки вызова табличной формы в системе. На практике рекомендуем при описании формулы использовать поля текущей таблицы (в случае подбора с помощью Конструктора они находятся в группе с именем таблицы, по которой строится табличная форма) и любые действия и функции, которые обозначены в Конструкторе кнопками. Этого вполне достаточно для нормальной работы. Если Вы хотите подводить итоги (см. 2.2.5. Закладка «Итоги») по вычисляемому полю, то не забудьте задать ему какое-нибудь имя на закладке Спец. настройка (см. ниже).

Если переключатель Тип поля находится в положении Поле, вычисляемое по таблице, то отображается группа Вычисление по справочной таблице. В соответствующих полях можно задать имя справочной таблицы, поле результата и ключевые поля текущей и справочной таблицы. Программа работает следующим образом. Берутся значения ключевых полей текущей таблицы (если их несколько, то они перечисляются через «;» — точка с запятой, кстати, при описании этого перечня удобно использовать правую клавишу мыши, после щелчка которой можно выбрать название поля из появившегося на экране списка всех полей текущей таблицы). В справочной таблице ищется запись, в которой все эти значения прописаны в соответствующие ключевые поля (и здесь можно использовать «;», а также правую клавишу мыши для выбора из перечня полей справочника). Когда мы говорим «соответствующие поля», то имеется в виду соответствие в порядке описания перечня. Т. е. в том случае, когда в строке Ключевые поля в текущей таблице записано TAB_N; COD1_PL, а в строке Ключевые поля в справочной таблице записано AGENT; COD1, то значение из поля TAB N ищется в поле AGENT, а значение из поля COD1_PL — в поле COD1. Из сказанного нетрудно делать вывод, что количество полей в обоих перечнях должно совпадать. Кроме того, должны совпадать и типы соответствующих полей.  Если программа такую запись в справочной таблице нашла, то в колонке будет показано значение из поля, имя которого вводится из выпадающего списка поле результата в справочной таблице. Если нужная запись не найдена, то в данной колонке на экране мы увидим пустоту. Если подходящих записей несколько, то для визуализации будет взята первая попавшаяся, и, значит, Вам нужно продумать последовательность ключевых полей, обеспечиваю­щую уникальный комплект значений в справочнике.

Эта возможность очень удобна во многих случаях. Например, у Вас в таблице, описывающей какой-либо первичный документ, хранится табельный номер сотрудника, а хотелось бы видеть и расшифровку, кто же это на самом деле. Для этого организуем колонку «ФИО», вычисляемую по таблице. В качестве справочника укажем таблицу KADRY. В обоих перечнях ключевых полей поставим единственное поле TAB_N. В качестве поля результата выберем FAMALIO. Готово!!!

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

Если переключатель Тип поля находится в положении Расшифровка значения поля, то отображается группа Для поля расшифровки значения. Здесь можно задать имя поля, расшифровку которого требуется вывести в колонку, а также отметить флажок Подбор допустимого значения, если в этой колонке должна обеспечиваться возможность выбора значения из перечня. При осуществлении выбора реально в таблицу записывается ключевое значение, тогда как расшифровка в колонке при этом меняется автоматически.

Еще раз напомним, что колонки с вычисляемыми полями и с полями, вычисляемыми по таблице редактированию не подлежат.

Выбрав закладку Вид на экране, можно придать колонке удобный для пользователя вид (рис. 2.14.). В закладку Вид на экране входят:

·       Группа Заголовок колонки. Здесь мы видим поле ввода, содержащее заголовок редактируемой колон­ки и переключатель Выравнивание. Текст заголовка мож­но выровнять вправо, влево или по центру, установив пере­ключатель в нужное положение. Заголовок может содержать любое количество строк.

Рис. 2.14. Мастер табличных форм закладка Колонки, вид на экране

·       Выпадающий список Выравнивание колонки (не путайте с выравниваем заголовка - это разные вещи). Вы можете выбрать для данных, содержащихся в колонке, выравнивание влево, вправо и по центру. Если выбрано Значение по умолчанию, выравнивание производится в зависимости от типа данных: числовые данные выравниваются по правому краю, символьные и даты — по левому.

·       Поле ввода Ширина колонки. Здесь задается число, которое соответствует максимальному количеству символов, одновременно видимых в колонке. Если в реальности значение поля более длинное (например, поле строкового типа) и не видно на экране целиком, то при редактировании значения текст в колонке прокручивается по мере ввода.

·       Поле ввода Шаблон для редактирования. Эту возможность удобно использовать, если Вы знаете, что значение должно быть форматировано определенным образом. Например, на заранее известном месте всегда должно стоять тире, да еще к тому же хочется избавить пользователя от заполнения сего обязательного символа, взвалив эту обязанность на программу. Тогда используем любезно предоставленную нам возможность: заставить поле при редактировании автоматически форматироваться согласно маске, введенной в это поле ввода. Подробно символы, которые можно использовать в масках, описаны в 2.2.8.Форматирование представления данных.

·       Группа Шаблоны для просмотра. В группу входят три поля, позволяющие задавать различные Шаблоны для просмотра колонки в зависимости от значения поля, отображаемого колонкой. Если шаблон для отрицательных или нулевых чисел не заполнен, то для форматирования таких значений используется основной шаблон просмотра. Тем не менее, следует сказать, что наличие отдельных нулевого и отрицательного шаблонов могут весьма и весьма пригодиться, если Вы заботитесь об эстетике представления числовых данных. Например, Вы не хотите, как это часто бывает, чтобы нулевое значение поля вообще отображалось на экране.  И Вы ставите в поле для нулевого значения символ # (решетка). Подробнее о допустимых символах — см. 2.2.8. Форматирование представления данных.

Для того, чтобы установить контроль за содержанием колонки (на практике это имеет смысл только для колонок, базирующихся на реальных полях таблицы - источника данных, см. 2.2.1. Закладка «Общие сведения»), используется закладка Контроль валидности. На ней содержатся следующие элементы (рис. 2.15.):

Рис. 2.15. Мастер табличных форм, закладка Колонки, Контроль валидности

·       Переключатель Контроль уникальности. Переключатель задает режим контроля уникальности поля в таблице.

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

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

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

Здесь же Вы можете уточнить, какое сообщение будет выдаваться при нарушении уникальности.

·       Группа Контроль на попадание в диапазон. Установив флажок Задан, Вы можете ограничить значение поля снизу, заполнив поле От, и сверху, заполнив поле До. Кроме того, Вы можете уточнить, какое сообщение будет выдаваться, если введенное пользователем значение не попадает в указанный диапазон. Для текстовых полей сравнение производится по его месту в таблице символов. Чаще всего цифры «меньше», чем буквы, строчные буквы «меньше» заглавных, а символы английского алфавита «меньше», чем символы русского.

·       Группа Контроль на истинность выражения. В этой группе задается выражение, которое будет вычисляться всякий раз при заполнении поля. Если выражение возвращает значение Ложь, появляется сообщение об ошибке, текст которого можно редактировать в поле Текст сообщения в случае ошибки. Установив флажок Задан, Вы можете ввести это выражение (вручную, или вызвав кнопкой Конструктор формул). Необходимо помнить, что выражение должно возвращать значение логического типа;

·       Начиная с версии 11.82, предусмотрена возможность установки контроля уникальности без учета пробелов в начале и конце строки. Флажок в группе Контроль уникальности активен только в том случае, если задан либо строгий контроль, либо контроль на уровне предупреждения.

Очень важная закладка Связь со справочником позволяет описать подбор и проверку значений по специальной (справочной) таблице в процессе редактирования данных. В качестве такой справочной таблицы может использоваться табличная форма, реестр документов или запросная форма.  Для того, чтобы использовать некую таблицу как справочник, надо произвести настройки соответствующей табличной формы (см. 2.2.1. Закладка «Общие сведения»), либо подготовить соответствующую запросную форму. Выбор из табличной формы можно ограничивать ключом или фильтром. Запросная форма регулируется параметрами и макропараметрами запроса. Процесс настройки табличной формы на этой закладке абсолютно аналогичен тому, что было описано в 2.1.2. Закладка «Поля таблицы». Тем не менее, коротко повторим основные сведения еще раз. На закладке содержатся следующие элементы (рис. 2.16.):

Рис. 2.16. Мастер табличных форм, Колонки, связь со справочником

·       Переключатель Источник выбора, который позволяет указать, из какой разновидности таблицы будет осуществляться выбор и проверка значений: табличная форма, реестр документов или запросная форма.

·       Раскрывающийся список Тип связи поля со справочником.

Если выбрано любое значение, кроме связь отсутствует (в том числе и допустим подбор по справочнику), то для такой колонки можно подбирать значения по справочнику. Вы, наверно, уже догадались, что в случае выбора варианта связь отсутствует программа сначала заглянет в описание данного поля таблицы (см. 2.1.2. Закладка «Поля таблицы») и примет окончательное решение о форме связи на основании введенных туда данных.

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

Если выбрано положение строгий контроль, то при отсутствии в справочнике введенного значения выдается сообщение об ошибке. При этом возможность игнорировать закрыта, и пользователь может либо откорректировать справочник, либо отказаться от введенного значения.

Режим забор значения из справочника описан чуть ниже.

Следует обратить внимание, что для вычисляемых колонок и колонок с расшифровками связь со справочником назначать нельзя. Для колонок, вычисляемых по справочной таблице, можно назначать связь только в режиме Допустим подбор по справочнику. При этом в качестве справочной таблицы может выступать только табличная форма той таблицы, по которой вычисляется значение в колонке.

·       Выпадающие списки Табличная форма справочника и Поле связи в справочнике. В этих списках можно выбрать конкретное визуальное представление справочной таблицы и поле, по которому в ней будет осуществляться контроль и подбор. В случае запросной формы вместо псевдонима табличной формы задается Псевдоним запросной формы, а вместо поля таблицы указывается поле запроса. В случае реестра документов никакой псевдоним задавать не требуется, а вместо поля таблицы указывается элемент массива общих мест, который для разных документов может быть связан с разными полями реестровой таблицы. Следует также обратить внимание, что режимы Строгий контроль и Контроль с возможностью игнорировать в случае реестра можно задавать только для элемента массива общих мест DOC@NOM_D (Основные реквизиты \ Номер документа).

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

·       Флажок Автозаброс новых значений активен только, если источником выбора является табличная форма, а в качестве режима связи со справочником выбран строгий контроль или контроль с возможностью игнорировать. При этом, если значение, вводимое в колонку, не найдено в справочной таблице, то появляется сообщение об ошибке: «не найдено значение в справочнике», в котором, в частности, активной является кнопка Добавить в справочник. Добавленная в справочник строка будет иметь заполненным только справочное поле.

·       Закладки Ограничение по ключу или Ветка дерева, Фильтр, Серверный фильтр, Заголовок и Сообщение появляются только, если источником выбора является табличная форма. При заполнении этих закладок работа со справочником будет ограничена только теми записями, которые удовлетворяют условию отбора по ключу или условию фильтра. Условие фильтрации задается в виде выражения, в котором используются имена полей справочника. Выражение должно возвращать логическое значение. Условие отбора по ключу задается в виде выражения, в котором могут использоваться имена полей текущей таблицы. Значение этого выражения будет вычислено и использовано в качестве ключа при отборе записей справочника. Отбор осуществляется по тому ключевому полю, которое задано при описании справочной табличной формы (см. 2.2.4. Закладка «Сортировки»). Если установлен флажок Проверка по префиксу (действует только для символьных полей), достаточно чтобы ключевое поле только начиналось со значения ключа. Иначе необходимо точное совпадение. Если в табличной форме справочника не предусмотрено ключевое поле, но имеется дерево групп, то эта настройка интерпретируется несколько иначе: вычисленное по формуле значение используется как код той группы, которая будет выделена в дереве в момент вывода на экран табличной формы справочника.

Внимание!!! При использовании «ключевого» соответствия обеспечьте правильные сортировки в табличной форме справочника. Исключите из перечня ее сортировок (см. 2.2.4. Закладка «Сортировки») все индексы, которые начинаются с несовместимых ключевых полей.

·       Закладки Выражение для типа документа и Выражение для кода партнера появляются только, если источником выбора является реестр документов. Выражение для типа документа является обязательным. Выражение формулируется в терминах полей основной таблицы. Результат должен быть целым числом, которое задает код одного из типов документов, хранимых в реестре. В зависимости от этого типа поиск и проверка будут осуществляться физически в разных таблицах, причем только в той части таблиц, в которых в качестве типа документа указан требуемый тип. Выражение для кода партнера не является обязательным. Если же оно задано, то должно также давать целое число: код партнера, среди которых выбирается и проверяется номер документа. Таким образом, Вы можете дополнительно ограничить реестр документов теми записями, которые имеют отношение к конкретному партнеру, упомянутому в текущей записи основной таблицы.

·       Если источником выбора является запросная форма, то вместо упоминавшихся выше закладок, появляются четыре кнопки. Справа расположена кнопка Редактировать, которая позволяет вызвать форму редактирования текста запроса, а также кнопка Тест запроса, которая позволяет выполнить запрос и просмотреть его результаты. Если в тексте запроса имеются параметры или макропараметры (их количество видно прямо здесь: между кнопками), то активируются соответственно кнопки Параметры и Макропараметры. Если в описании связи со справочником не будет задано никакого значения для параметра или макропараметра, будет использовано значение по умолчанию, которое имеется в описании запроса.

·       Флажок Автозаброс новых значений. Если при установленной связи со справочником значение, вводимое в поле, не найдено в справочной таблице, то появляется сообщение об ошибке: «не найдено значение в справочнике». При установленном флажке кнопка Добавить в справочник в этом сообщении станет активной. К сожалению, при этом в добавленной в справочник строке будет заполнено только само справочное поле;

·       Кроме того, одно и то же поле таблицы можно связать с несколькими (как правило, двумя) справочниками, осуществив соответствующие настройки, которые могут входить в разные группы или не входящих в группы связи со справочником вообще. Среди этих настроек может быть только одна связь со справочником в режиме "разрешен подбор", "строгий контроль" или "контроль с возможностью игнорировать", а остальные должны быть в режиме "забор значения из справочника" (для этого предназначена соответствующая закладка в разделе Связь со справочником). Дополнительно, в настройке режима "забор значения из справочника" имеется возможность указать, что при заборе значения в это поле учитывается его собственная связь со справочником в режиме "строгий контроль" или "контроль с возможностью игнорировать".

Если значение в справочнике не найдено, возможны следующие режимы работы:

1) записать в поле значение, полученное в режиме "забор значения из справочника";

2) записать в поле значение и очистить зависимые поля, входящие в его собственную группу;

3) не записывать в поле такое значение, оставив в поле старое значение;

4) очистить поле и все зависимые поля, входящие в его собственную группу.

Предусматривается выбор одного из этих вариантов прямо в настройке связи со справочником в режиме "забор значения".

            Пример настройки такой связи со справочниками приведен в соответствующем разделе описания Мастера таблиц (п.2.1.2).

Закладка Спец. настройка предназначена, в основном, для авторов системы, поэтому обойдемся без излишних подробностей. Скажем только, что здесь можно (но не рекомендуется!) отменить описанные выше установки (проверка значения, введенного в колонку, способ связи со справочником и т. д.) в том случае, когда авторы программы считают необходимым применить при обработ­ке колонки более сложный алгоритм. Например, при изменении количества оприходованного товара нужно одновременно менять остаток на складской карточке.

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

Единственно важным полем для системного администратора является поле Имя для вычисляемого поля. Его необходимо задать, если Вы собираетесь подсчитывать по нему ито­ги (см. 2.2.5. Закладка «Итоги») или использовать в различных формулах.

2.2.3.     Закладка «Фильтр/поиск»

И фильтры, и поиск используются для выбора записей по некоторым условиям.  Это необходимо, чтобы облегчить пользователю восприятие информации. Разница работы фильтра и поиска в следующем: использование фильтра приводит к тому, что в табличной форме остаются только записи, удовлетворяющие заданному условию. Использование поиска приводит к позиционированию табличной формы на нужной записи. При первом вызове поиск начинает работу с начала таблицы, но после того, как найдена подходящая запись, поиск можно продолжить с элемента, следующего за найденным (нажав кнопку  на панели инструментов). Критерии фильтра и поиска используются также при подсчете итогов (см. 2.2.5. Закладка «Итоги») и могут использоваться при раскраске строк таблицы.

На закладке Фильтр/поиск Вы можете видеть следующие элементы настройки (рис. 2.17.):

·       Группа Список условий фильтра/поиска включает в себя собственно список условий, причем напомним еще раз, что условия одни и те же, как для фильтрации данных, так и для их поиска. Кнопки Новое условие и Удалить позволяют, соответственно, добавить и убрать условие. Кнопки со стрелками  Вверх и  Вниз позволяют задать редактируемому условию желаемую позицию в списке. Обычно в верхней его части располагают те критерии отбора записей, которые пользователь будет использовать чаще всего.

Рис. 2.17. Мастер табличных форм, закладка Фильтр/Поиск

·       На закладке Описание условия можно задать его название (пишите доступным языком — это именно те слова, которые оператор будет видеть в процессе работы) и список полей, для которых будет проверяться условие. Если в списке указано несколько имен полей через точку с запятой (кнопка  не только позволяет выбрать название из перечня полей таблицы, но и вставляет автоматически данный разделитель, если это требуется), достаточно, чтобы условие было выполнено хотя бы для одного из них (выражаясь языком математической логики, используется функция ИЛИ). Если же в процессе работы пользователь одновременно за­даст несколько из условий, предусмотренных для табличной формы, то отбираться будут только те записи, которые удовлетворяют всем условиям одновременно (функция И).

·       Если для поля, включенного в условие поиска, предусмотрен подбор значения по справочнику, то, чаще всего, этот подбор будет действовать и в окне настройки фильтра/поиска. При необходимости, для условия фильтра/поиска можно предусмотреть индивидуальный подбор по справочнику. Делается это почти так же, как для колонки табличной формы, однако не допускается использовать источник данных типа Реестр, а в настройках ограничения справочника по ключу или с помощью фильтра, либо при описании параметров и макропараметров запросной формы, нельзя использовать поля таблицы, в которой производится поиск или фильтрация.

·       В качестве поля для условия поиска может быть выбрано и вычисляемое поле. Однако такое поле нельзя будет использовать при фильтрации строк, а использование его для поиска существенно увеличивает время поиска особенно на SQL серверах, так как поиск по сочетанию условий, включающему вычисляемое поле, осуществляется не SQL запросом, а простым перебором записей. Зато такие поля очень удобно использовать для раскраски строк, так как это позволяет более гибко настроить условия раскраски.

·       Если в ТФ в настройке фильтра "В диапазоне от ... до ..." введены значения с начальными пробелами, то отбор выполняется с учетом начальных пробелов.

2.2.4.     Закладка «Сортировки»

Сортировки позволяют располагать записи табличной формы в нужном пользователю порядке. Они осуществляются только на основе поддерживающихся физических индексов (см. 2.1.3. Закладка «Индексы») реальной таблицы. На данной закладке расположены элементы (рис. 2.18.):

·       Группа Список сортировок. Группа включает в себя список сортировок, кнопки Добавить и Удалить которые позволяют, соответственно, ввести новую и убрать ненужную сортировку. Кнопки со стрелками  Вверх и  Вниз позволяют задать сортировке желаемую позицию в списке. Именно в этом порядке пользователь будет видеть перечень на экране, нажав в процессе работы кнопку  (см. п. Выбор сортировки раздела «Общие правила работы»), так что отнеситесь к расположению названий внимательно.

·       На закладке Описание сортировки необходимо задать название сортировки и выбрать соответствующий ей индекс таблицы (см. 2.1.3. Закладка «Индексы»). При выборе индекса набор полей, составляющих индекс, визуализируется в поле Список полей, задающих ключ. Редактировать список полей нельзя: он приводится только для справки. Флажок Устанавливается по умолчанию, указывает какая сортировка будет использоваться по умолчанию при выводе табличной формы на экран. Понятно, что такой флажок можно установить только один раз, если Вы по ошибке сделаете это дважды, то программа использует самое верхнее из помеченных таким образом описаний.

 

Рис. 2.18. Мастер табличных форм, закладка Сортировки

Напомним, что, если Вы хотите использовать ограничение по ключу при отборе записей в табличную форму (см. 2.1.1. Закладка «Общие сведения»), то Вы обязательно должны включить в перечень только те сортировки (а перед этим описать соответствующим образом используемые для них индексы), в которых задействованы все ограничивающие поля. Причем задействованы именно так (в том порядке), как это было описано на закладке Общие сведения. А уж после ограничивающих полей в индексном выражении могут идти любые.

Нарушение этих условий приводит к появлению непонятного многим сообщения «Ошибка ограничения по ключу: нет совместимых сортировок» при попытке входа в табличную форму. Чтобы проверить, все ли Вы сделали правильно, обязательно сразу же после редактирования используйте кнопку Тест.

2.2.5.     Закладка «Итоги»

Итог — это некоторое значение, вычисляемое по таблице или ее части. Возможность быстрого подсчета различного рода итогов в процессе работы широко используется операторами ERP-системы «КОМПАС» для получения оперативных сведений и поиска ошибок во введенных данных. Формула, записанная на данной закладке в поле Вычисляемое выражение, вычисляется для каждой (или отобранных пользователем) записи таблицы, после чего результаты суммируются, и итоговое значение выводится на экран.

На закладке Итоги Вы можете видеть (рис. 2.19.):

·       Группа Список итогов. Группа включает в себя список названий различных итоговых сумм, кнопки Новый итог и Удалить которые позволяют, добавить новый и убрать устаревший итог. Кнопки со стрелками  Вверх и  Вниз позволяют задать редактируемому итогу желаемую позицию в списке. Именно в этом порядке полученные суммы будут выводиться на просмотр пользователю.

·       На закладке Описание итога можно задать название сум­мы и выражение, с помощью которого она вычисляется. Выражение должно возвращать числовой результат и его можно задавать как вручную, так и с помощью Конструктора формул  (см. соответствующую главу раздела «Общие правила работы»). Как правило, в качестве переменных в этом выражении используются имена полей текущей таблицы, но это не единственно возможный вариант. В нижней части закладки можно задать один или три шаблона для форматирования, которые будут использоваться при выводе результатов подсчета итогов на экран. Если шаблон для отрицательных значений или шаблон для нулевых значений не заполнен, для форматирования таких значений используется основной шаблон. Если не задан ни один шаблон, форматирование будет проводиться стандартным образом.

 

Рис. 2.19. Мастер табличных форм, закладка Итоги

Здесь же с помощью переключателя Вычисление итогов можно выбрать способ расчета итоговых сумм: посредством SQL-запроса или организованным в программе последовательным проходом всех записей таблицы («цикл по записям»). В большинстве случаев рекомендуется первый вариант. Второй вариант следует использовать только для сравнения и в тех случаях, когда, в связи со сложными условиями отбора части таблицы, подсчет итогов через SQL-запрос не дает желаемого результата. Если на закладке Общие сведения установлен флажок При открытии запрашивать условия фильтрации для серверного фильтра, действует настройка «через SQL-запрос», и она не может быть изменена.

Внимание!!! Если в формулах подсчета итогов у Вас используются вычисляемые поля (см. 2.2.2. Закладка «Колонки»), то можно выбирать только вариант цикл по записям таблицы.

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

Напомним, что в нижней части закладки можно задать Шаблоны для форматирования, (вывода итогов), которые будут использоваться при выводе результатов подсчета итогов на экран. Логика использования данных шаблонов абсолютно аналогична логике использования шаблонов для просмотра (см. 2.2.2. Закладка «Колонки»). Если вариант для отрицательных или нулевых значений не заполнен, форматирование таких значений производится с помощью основного шаблона. Если не задан ни один, форматирование будет проводиться стандартным образом. Подробно с символами, которые разрешено использовать при описании шаблонов, можно познакомиться в 2.2.8. Форматирование представления данных.

2.2.6.     Закладка «Инструменты»

В группе Список кнопок расположены элементы, связанные с возможностью добавить дополнительные (в придачу к основным, описанным в п. Стандартные кнопки и клавиши раздела «Общие правила работы») кнопки на панель инструментов. Расположение элементов на закладке и процедура настройки совпадают с теми, что были описаны в 1.4. Менеджер типов таблиц. Отличие заключается в том, что описанные здесь дополнительные кнопки будут видны пользователю только после вызова редактируемой табличной формы из какого-нибудь пункта меню (см. 1.1. Администратор меню). Тем не менее, повторим пояснения еще раз.

Полный перечень дополнительных кнопок, установленных для данного типа, появляется в левом окне закладки. Упорядочивание кнопок в палитре инструментов, где вся группа располагается сразу после обязательного комплекта, производится с помощью знакомых значков  и .

В правой части закладки можно задать Текст подсказки для выбранной кнопки и Идентификатор, т. е. уникальную последовательность символов, по которой кнопку идентифицируют программы системы, определить ее Изображение (нажмите Загрузить и выберите файл с расширением bmp или воспользуйтесь кнопкой Вставить для получения изображения из буфера обмена Windows), а также привязать к этой кнопке бизнес-процедуру (см. 2.7. Мастер  бизнес – процедур), которая  либо выбирается из соответствующего списка (вариант псевдоним), либо записывается прямо в описании табличной формы (вариант текст). Если бизнес-процедура не задана, то для того, чтобы кнопка производила какое-то действие, необходимо для нее использовать вполне определенный идентификатор.

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

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

MEMO (Многострочный текст) - предназначена для открытия дополнительного окна редактирования многострочного текста. Назначать эту кнопку следует только для тех табличных форм, таблица которых имеет поля с многострочным текстом;

XFILE (Файл…) – предназначена для вызова формы, с помощью которой можно управлять файлами различного формата, сохраненными в базе данных KOMPAS. Кнопку можно назначать для тех табличных форм, таблица которых имеет поля, предназначенные для хранения файла (пути к файлу);

MOVE_TO (В другую группу) - предназначена для переноса текущей строки табличной формы в другую группу. Назначать эту кнопку следует только для табличных форм с деревом групп;

FORMAT_INP_EXP (Импорт-экспорт) - используется для экспорта и импорта произвольных данных в форматах dbf и txt.

COND_DRAW (Раскраска строк) - предназначена для вызова диалога, с помощью которого могут быть описаны условия раскрашивания строк табличной формы. Так как раскрашивание опирается на набор условий поиска/фильтра, то назначать эту кнопку следует только для тех табличных форм, у которых имеются условия поиска/фильтра;

VIEW_DOKS (Просмотр документа) - предназначена для просмотра регистрационной карточки одного из документов, упомянутых в текущей строке. Назначать эту кнопку следует для табличных форм, таблица которых имеет в своей структуре поля с реквизитами документа-основания или другого связанного документа (должны быть назначены соответствующие элементы массива общих мест);

VIEW_TEXTDOC (Текст документа) - предназначена для просмотра текста документа или иного файла, упомянутого в текущей строке. Назначать эту кнопку следует для табличных форм, таблица которых имеет в своей структуре поле с именем файла (должен быть назначен соответствующий элемент массива общих мест);

EDIT_TEXTDOC (Редактирование текста) - аналогична предыдущей, однако при наличии файла сразу открывает его на редактирование без предварительного диалога, предусмотренного предыдущей кнопкой.

Кроме того, установив флажок не показывать, Вы можете временно отключить кнопку, не удаляя ее описания из перечня. Кнопка Скопировать позволяет забрать изображение в буфер обмена.

С кнопкой можно сопоставить пункт контекстного меню табличной формы. Для этого на закладке Пункт меню надо установить флажок Локальное меню. С пунктом контекстного меню можно связать Горячую клавишу. Для этого надо активировать поля ввода для горячей клавиши и нажать требуемую клавишу или сочетание клавиш. Мнемоническое изображение клавиши или сочетания клавиш появится в поле ввода.

Существует теоретическая возможность использовать разные изображения кнопки для активного и неактивного состоя­ния. Количество используемых изображений определяется элементом ввода NumGlyphs. Но так как нигде в стандартной версии пакета сия возможность не используется (Numglyphs всегда равно 1), мы не будем заострять внимание на этом сложном моменте.

·     При работе с табличной формой в режиме корректировки можно выделить некоторые моменты, которые обычно называют события: показ самой табличной формы, добавление записи, сохранение новой или измененной записи, удаление записи, закрытие формы. Для всех этих событий предусмотрена стандартная программная реакция. Вы можете дополнить эту реакцию с помощью специальных бизнес-процедур, которые выполняются при возникновении событий. Для этого на закладке Инструменты описания табличной формы имеется список событий, для которых может быть предусмотрена специальная реакция. Выбрав нужное событие из списка, Вы можете задать для этого события либо псевдоним бизнес-процедуры (вариант псевдоним), либо прямо текст небольшой процедуры (вариант текст) (см.рис.2.19.1).

Рис. 2.19. 1 Мастер табличных форм, закладка Инструменты

 

2.2.7.     Закладка «Дерево групп»

Табличная форма может быть выведена на экран в специальном виде, включающем дерево групп слева и часть таблицы, отвечающей выбранной группе, справа от дерева. Для того, чтобы придать табличной форме такой вид, используются настройки, расположенные на закладке Дерево групп описания табличной формы.

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

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

Здесь же Вы можете задать дополнительное условие отбора записей таблицы (основной или дополнительной таблицы групп), используемых для формирования дерева. Условие должно быть записано на языке SQL.

В режиме содержит группы в себе Вы должны указать (или выбрать из списка) псевдонимы полей таблицы:

·       поле с собственным кодом - ключевое поле таблицы, к которому привязываются подчиненные записи;

·       поле с кодом группы. С помощью этого поля строится иерархия в таблице: подчиненные записи содержат в этом поле код группы, в которую они непосредственно входят;

·       поле с названием группы. Именно эти названия появляются в «узлах» дерева;

·       поле с признаком группы. Может не заполняться. Если заполнено, то в дерево будут включаться только те записи, которые имеют символ T в этом поле. Для автоматического проставления этого символа и одновременного включения записи в дерево обычно служит специальная кнопка табличной формы с идентификатором PARENT;

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

·       флажок, который указывает, нужно ли обновлять все пути при закрытии формы.

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

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

В режиме группы в отдельной таблице Вы, прежде всего, должны указать или выбрать из списка ту таблицу, с помощью которой будет строиться дерево групп. Иерархия в таблице групп организуется так же, как и в варианте содержит группы в себе, а значит, Вам нужно указать (или выбрать из списка) псевдонимы полей таблицы для собственного кода, кода группы и названия группы. Вместе с тем, в этом случае не указывается поле с признаком группы, так как при использовании отдельной таблицы для дерева групп она, как правило, целиком используется для формирования групп. Если это не так, то или иное условие отбора можно описать отдельно (см. выше). Кроме того, в этом режиме указываются:

·       псевдоним поля с кодом группы в основной таблице. Именно по значениям в этом поле будет отбираться часть таблицы при перемещении по дереву;

·       код для верхней группы (аналогично режиму содержит группы в себе);

·       флажки Запрет редактирования групп и Запрет перетаскивания групп позволяют ограничить права оператора по изменению дополнительной таблицы, в которой хранится дерево групп;

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

В обоих режимах Вы можете указать также несколько дополнительных параметров:

·       заголовки, используемые для двух верхних «веточек» дерева. При выборе первой из них в табличную часть формы будут выведены все записи. При выборе второй из них, служащей в качестве корневой группы для групп верхнего уровня, в табличной части формы будут выведены только группы верхнего уровня, а для режима группы в отдельной таблице в табличной форме в этом случае будут видны только те записи, которые не отнесены ни к одной группе;

·       номер группы, которая автоматически становится текущей при выводе табличной формы на экран. По умолчанию, это самая верхняя (нулевая) веточка: Все группы;

·       тип сортировки при формировании дерева: по коду или по наименованию.

2.2.8.     Форматирование представления данных

Настало время привести перечень символов, используемых для форматирования отображения данных на экране (см. 2.2.2. Закладка «Колонки» и 2.2.5. Закладка «Итоги). Условная запись правил, которыми регулируется отображение числа, строки или даты на экране, называется шаблоном или маской, а отдельный элемент записи - символом маски. Символы, используемые для создания масок отображения и ввода, очень похожи. Тем не менее, нам представляется целесообразным для большей легкости получения справочной информации описать их отдельно. Перед чтением конкретных описаний следует понять, что использование некоторых шаблонов однозначно определяет размер вводимых или отображаемых данных. Поэтому, когда речь будет идти о соответствующей символу маски позиции, это значит, что данный символ определяет формат вводимого байта информации, отстоящего от левого края поля ввода настолько же, насколько данный символ маски отстоит от левого края шаблона.

Для полей ввода допускается использование следующих символов:

>

Если символ « > » встречается в маске, все символы, следующие за ним, пишутся заглавными буквами до конца маски или пока не встретится символ « < ».

<

Если символ « < » встречается в маске, все символы, следующие за ним, пишутся строчными буквами до конца маски или пока не встретится символ « > ».

< >

Если эти два символа встречаются в маске рядом, проверка вводимых данных на регистр («заглавность» и «строчность») не производится. Данные вводятся ровно так, как их наберет пользователь.

\

Символы, следующие за символом « \ », буквально воспроизводятся в значении поля. Отображение производится программно. Пользователь не должен будет набирать их на клавиатуре.

L

Символ «L» требует на соответствующей позиции ввода символа русского или латинского алфавита. Ничего другого пользователю ввести не удастся.

l

Символ «I» допускает символы русского или латинского алфавита на соответствующей позиции, но не требует их.

A

Символ «А» требует на соответствующей позиции символ русского или латинского алфавита или цифру.

a

Символ «а» допускает на соответствующей позиции символ русского или латинского алфавита или цифру, но не требует их.

C и c  

Символы «С» и «с» допускают на соответствующей позиции произвольный символ, но символ «с» не требует его.

0

Символ «0» (ноль) требует цифру на соответствующей позиции.

9

Символ «9» допускает на соответствующей позиции циф­ру, но не требует ее.

#

Символ «#» допускает на соответствующей позиции циф­ру, а также знаки «+» и «-», но не требует их.

:

Символ «:» используется для разделения часов, минут и секунд в поле типа Время. Если символ, использующийся для разделения часов, минут и секунд, установленный в Панели управления вашего компьютера, отличен от « : », то этот сим­вол используется вместо « : ».

/

Символ «/» используется для разделения месяцев, дней и лет в поле типа Дата. Если символ, использующийся для разделения месяцев, дней и лет, установленный в Панели управления вашего компьютера, отличен от «/», то этот символ используется вместо «/».

_

В текст вместо символа «_» автоматически вставляется пробел. Когда пользователь будет вводить символы в поле, курсор автоматически пропускает позиции, занятые в маске символами «_».

В шаблонах для отображения информации допускается использование следующих символов:

0

Используется для числовых данных. Соответствует цифре. Если форматируемое значение имеет цифру на месте, где в шаблоне просмотра расположен «0», то эта цифра в любом случае копируется в выводимую строку. Иначе на том же месте в выводимой строке показывается «0». Таким образом,  данная возможность используется для отображения числа с ведущими нулями.

#

Используется для числовых данных. Соответствует цифре. Если форматируемое значение имеет цифру на месте, где в шаблоне просмотра расположен «#», то эта цифра копируется в выводимую строку. В противном случае на том же месте в выводимой строке показывается пробел. Таким образом,  данная возможность предназначена для отображения числа без ведущих нулей, а нулевые значения просто-напросто заменяются пробелами.

.

Десятичная точка. Используется для числовых данных. Первый символ «.» в шаблоне просмотра определяет расположение десятичного разделителя в форматируемом значении. Любой следующий символ «.» игнорируется.

,

Разделитель тысяч. Используется для числовых данных. Если шаблон просмотра содержит один или более символов «,», в выводимой на экран строке разделитель тысяч вставляется между всеми группами из трех цифр (триадами).

Е+

Любая из строк «Е+», «Е-», «е+» или «е-» используется только для вывода числовых данных и означает экспоненциальное представление числа. Для управленческих и бухгалтерских задач практической ценности не имеет.

«хх»/«хх»

Символы, заключенные в одинарных или двойных кавычках, выводятся как они есть и не подвергаются форматированию.

Несколько замечаний по поводу сочетания разных символов в масках числовых данных.

1)     Местоположение самого левого «0» перед десятичной точкой в шаблоне просмотра и самого правого «0» после десятичной точки в шаблоне просмотра определяют предельное количество цифр, которые всегда отображаются в выводимой строке.

2)     Форматируемое значение всегда округляется до стольких десятичных разрядов, сколько символов, соответствующих цифрам («0», «#»), содержится справа от символа «.» в шаблоне отображения. Если форматируемое значение не содержит десятичной точки, оно округляется до ближайшего целого.

3)     Если форматируемое значение велико и содержит слева от десятичной точки больше цифр, чем имеется символов «0» или «#» слева от символа «.» в маске отображения, то лишние цифры все равно выводятся в левой части числа.

4)   если для колонки типа "дата" шаблон ввода в описании табличной формы не указан, используется формат ##.##.## или ##.##.####, в зависимости от ShortDateFormat, то есть, по тем же правилам, что и в экранной форме. Это действует в отношении колонок табличной формы, а также в отношении формы поиска/фильтра/итогов.

5)   В обработчиках событий табличной формы можно выяснить видимость колонок с помощью свойства ColumnVisibility.

2.3.        Мастер экранных форм

Экранная форма представляет собой наиболее подробное описание одной записи таблицы.

Данный мастер вызывается выбором соответствующего пункта меню Сервис или нажатием кнопки  на панели инструментов. Он служит для создания, редактирования и удаления форм подробного представления и ввода данных в одну запись таблицы. Именно наличие в ERP-системе «КОМПАС» мастера экранных форм позволяет создавать удобные формы ввода первичных документов (впрочем, не только их): экранное представление платежного поручения, которое действительно напоминает своим видом привычную печатную форму платежного поручения; акт, который похож на регистрационную карточку акта и т. д.  В связи с этим надо заметить, что при создании новых и корректировке старых экранных форм (чаще всего в связи с появлением новых стандартизованных форм документов), не следует пренебрегать вопросами эстетики. Давно замечено — красивая форма является одновременно и наиболее удобным для ввода данных вариантом, позволяющим повысить производительность труда оператора системы.

После входа в окно мастера экранных форм Вы увидите, что все формы, которые на данный момент можно использовать в программе, отображены в списке. Список состоит из двух колонок: Псевдоним и Описание (рис. 2.20).

Рис. 2.20. Мастер экранных форм

Псевдоним экранной формы — это наименование, с которым работает программа. В общем случае он может не совпадать с названием табличной формы (см. 2.2. Мастер табличных форм), с которой связана экранная (понятна подчиненность этих двух понятий – ведь экранная форма визуализирует только одну из множества записей (строк), отображаемых табличной). С одной таблицей может быть связано несколько экранных форм, однако из каждой табличной формы можно вызывать только одну из них. Псевдоним каждой экранной формы должен быть уникальным. Описание (заголовок) не несет служебной информации. Оно необходимо пользователю для пояснения роли формы. Псевдоним экранной формы, ее описание и настройки составляют ее шаблон. Все шаблоны экранных форм находятся в специальном файле с расширением dat.  Такой файл чаще всего имеет имя forms.dat

На окне мастера экранных форм расположены кнопки:

·       Новая форма. Нажав на эту кнопку, Вы создадите новую пустую экранную форму. Основные ее реквизиты следует заполнить в открывающемся при нажатии кнопки окне (рис.2.21.).

Рис.2.21. Реквизиты новой экранной формы

В первую очередь, надо выбрать из раскрывающегося списка таблицу, запись которой будет визуализироваться с помощью нового шаблона. Затем можно указать табличную форму, с которой данная экранная будет связана (следующий раскрывающийся список покажет Вам все варианты табличных форм для указанной выше таблицы). Вслед за этим Вы укажете упомянутые выше псевдоним и заголовок формы, после чего на экран будет выведена стандартная заготовка для «рисования» (окно редактора формы), на которой уже будут присутствовать три самых «популярных» в экранных шаблонах элемента: кнопки ОК, Сохранить и Отмена. Далее, с помощью инструментов редактора, производится «наполнение» формы элементами отображения данных.

·       Новая из текущей. Нажав на эту кнопку. Вы создадите экранную форму по образцу текущей. Для новой формы потребуется указать другой псевдоним и, возможно, изменить заголовок. После этого в нее можно внести необходимые изменения в основном окне редактирования (см. ниже).

·       Кнопка Импорт формы вызывает диалоговое окно Открыть файл экранных форм. После выбора файла, содержащего описание экранных форм и имеющего расширение dat, появится окно Выбор формы. Выбрав в этом окне подходящий шаблон (или несколько шаблонов - отмечая второй и последующие, удерживайте нажатой клавишу Ctrl), и, нажав на кнопку ОК, Вы пополните список новым приобретением.

·       Кнопка Удалить форму позволяет удалить устаревший шаблон из списка.

·       Кнопка Редактировать отображает основное окно редактирования экранной формы.

Окно редактора форм состоит из панели инструментов и рабочей области, с расположенной на ней редактируемой формой (рис. 2.22.).

Рис. 2.22. Мастер экранных форм, редактор

Единственным способом завершить редактирование экранной формы является нажатие «крестика» в правом верхнем углу окна мастера, после чего программа спросит Вас: сохранить все, что Вы проделали со времени последнего нажатия кнопки Сохранить на панели инструментов (см. п.2.3.1), или аннулировать эти изменения?

2.3.1.     Панель инструментов

Панель инструментов включает в себя элементы:

 – Отмена выбора элемента

 – Поле ввода

 – Метка

 – Кнопка

 – Страницы

 – Группа

 – Флажок

 – Переключатели

 – Выпадающий список

 – Таблица

 – Рамка

 – Изображение

 – Тест формы

 – Сохранить

Все кнопки панели инструментов, кроме первой и двух последних дают Вам возможность указать мастеру, какой элемент управления Вы будете сейчас размещать на рабочем поле. Выбрав нужный элемент панели левой клавишей мыши, а затем, щелкнув по редактируемой форме, Вы создадите в ней новый элемент выбранного типа со стандартным для него размером. Если в момент нажатия на клавишу мыши провести указателем по редактируемой форме, новый элемент будет иметь соответствующий размер: от левого верхнего угла до правого нижнего. Таким образом, в момент нажатия на левую клавишу мыши Вы отмечаете левый верхний угол границы элемента, а в момент отпускания клавиши — правый нижний. Естественно, что после этого Вы можете перемещать созданный элемент по рабочему полю или менять его размеры, следуя обычным правилам Windows. То есть, если Вы выберете элемент формы нажатием левой клавиши мыши (сразу же после этого программа очертит Вам несколькими жирными точками его границы), а затем, не отпуская эту клавишу, будете перемещаться с помощью мыши по рабочему полю, элемент изменит свое местоположение. Если же после выбора элемента Вы отпустите клавишу, а потом подведете указатель к одной из ограничивающих его точек, то он тут же приобретет всем хорошо знакомую форму, говорящую о том, что можно изменять границы окна. Меняйте!

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

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

Кнопка Тест формы позволяет отобразить на экран измененную форму, даже если она еще не была сохранена в dat-файле. Это очень удобно для того, чтобы оперативно получить представление о том, что же Вы создали.

Кнопка Сохранить приводит к записи описания шаблона в dat-файл.

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

Поле ввода, как явствует из его названия, предназначено для организации ввода данных. Впрочем, есть у него и второе назначение - визуализация информации, хранящейся в таблице, даже если она не подлежит редактированию. Ваша задача установить удобный размер «бокса» для ввода. Если размер данных будет превышать предусмотренную Вами ширину поля, то программа автоматически организует «прокрутку». Тем не менее, для числовых данных советуем предусмотреть достаточный размер, ибо число всегда лучше видеть целиком. Естественно, чтобы данные, занесенные в поле ввода, запоминались в таблице, его надо связать с каким-нибудь ее полем. Впрочем, об этом мы поговорим чуть подробнее в 2.3.8. Изменение свойств элементов экранной формы.

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

Кнопка — это действительно кнопка, нажатие на которую заставляет программу выполнять какие-то действия. Какие действия приписываются конкретной созданной Вами кнопке и как это сделать? Это Вы узнаете в п.2.3.8. Изменение свойств элементов экранной формы.

Далеко не всегда размер экрана оказывается достаточным для того, чтобы вместить всю информацию, которую Вы хотите видеть в экранной форме документа или даже в одной записи объемного справочника, например, справочника внешних партнеров или личных карточек сотрудников предприятия. Да и ни к чему совершенно видеть всю информацию одновременно! Специально для таких случаев создан элемент Страницы, который позволяет создать систему привычных Windows-пользователю закладок. Нажав на первую закладку, пользователь увидит один набор данных. Перейдя к следующей — другой. Получается, что элемент Страница состоит как бы из двух частей: верхней, где Вы можете создать столько закладок, сколько считаете нужным, и нижней, где Вы по мере перехода от одной закладки к другой сможете изменять визуализированные данные. Из всего вышесказанного однозначно следует, что в этой нижней части Вы во время дальнейшего редактирования экранной формы сможете в свою очередь разместить какие-то элементы всех типов, в том числе и этого же самого типа - Страницы. Таким образом  можно создавать иерархическую систему закладок.

Элемент Группа позволяет Вам объединить несколько элементов в некую общность. Собственно, сам элемент состоит из углубленной рамки, в которую вписано обобщающее название. Впрочем, эта надпись может и отсутствовать, если в свойствах группы (см.п. 2.3.8. Изменение свойств элементов экранной формы) Вы укажете название, которое не содержит ни одного символа. Группа была бы чисто визуальным компонентом, облегчающим пользователю восприятие информации, подобно описанной ниже Рамке, если бы не еще одно ее полезное свойство. Если Вы разместите внутри группы несколько других элементов, то при дальнейшем редактировании экранной формы Вы сможете перемещать их все вместе, перетаскивая группу. Неприятная особенность заключается в том, что, единожды включив элемент в группу, Вы не можете переместить его за ее пределы. Это равносильно удалению элемента из формы. Мы настоятельно рекомендуем администраторам как можно шире пользоваться группами, так как, помимо всех прочих преимуществ, это позволяет безболезненно использовать одни и те же текстовые метки для сходных по смыслу, но, тем не менее, разных полей ввода. Хорошим примером являются группы Плательщик и Получатель в шаблоне платежного поручения. В каждой из них есть код партнера, наименование, ИНН и т. д., а воспринимается информация очень легко, и сразу понятно, какой код к чему относится.

Элемент Флажок - это флажок двоичного выбора, в котором можно поставить или снять галочку. Это тоже своего рода поле для ввода данных, но исключительно способом «выбор одного из двух значений». Важнейшими характеристиками Флажка (подробнее см. 2.3.8. Изменение свойств элементов экранной формы) являются связанный с ним поясняющий текст и те значения, которые заносятся в поле базы по состояниям флажок установлен и флажок снят.

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

Выпадающий (раскрывающийся) список предназначен абсолютно для того же, что и Переключатели, но имеет несколько иной вид. Перечень возможных вариантов выбора не «висит» постоянно на экране, а появляется только после нажатия на данный элемент при работе с экранной формой. На практике Переключатели используются для небольшого числа возможных вариантов выбора с кратким поясняющим текстом, а выпадающий список - для более значительных (как по числу альтернатив, так и по содержанию каждой из них) объемов информации. Впрочем, и Флажок, и Переключатели, и Выпадающий список прекрасно знакомы всем пользователям Windows, т. к. являются стандартными компонентами интерфейса многих программ.

Несмотря на то, что мы говорили о подчиненности экранной формы по отношению к форме табличной, здесь, как и во многих местах ERP-системы «КОМПАС», возможна многоступенчатая иерархия. Это означает, что экранная форма может, в свою очередь, включать табличную в качестве своего элемента. Наглядным примером такой ситуации (и необходимости использования данного свойства) является визуализация реестра счетов. Из пункта меню вызывается табличная форма, которая разворачивает перед нами полный перечень документов, хранящихся в данном реестре. В любой момент можно нажать на клавишу F9 или кнопку  и вызвать экранную форму, разворачивающую перед нами заголовок счета. Но ведь заголовок-то явно неединственное (и даже не основное), что нас интересует в документах данного типа. Поэтому элементом экранной формы является «товарный раздел» счета, который в свою очередь является формой табличной с ограничением по ключу (см. п. 2.2.1. Закладка «Общие сведения»). При этом ограничивающим ключом являются код типа документа «Счет» и идентификационный номер конкретного счета, в результате чего табличная форма отбирает только строки товарного раздела данного документа, не смешивая их с множеством остальных, хранящихся в реестре, счетов. Вы уже догадались, что эта чудесная возможность реализована с помощью элемента экранной формы Таблица, настройку которого мы подробнее рассмотрим в 2.3.8. Изменение свойств элементов экранной формы.

Элемент Рамка является чисто декоративным. Как и Группа, он призван отделять одну смысловую часть экранной формы от другой, но, в отличие от нее, не имеет заголовка и не определяет совместного перемещения всех элементов, помещенных внутрь Рамки.

Наконец, последний элемент мастера экранных форм, Изображение. Этот элемент позволяет определить место на экранной форме, куда при работе с экранной формой  можно загрузить любое изображение в формате bmp.

2.3.2.     Контекстное меню параметров экранной формы

Если щелкнуть правой клавишей мыши по пустому месту поля редактирования, то на экране появится контекстное меню, включающее всего два обязательных пункта. Пункт Свойства формы (рис. 2.23.) позволяет изменить заголовок (описание) и псевдоним формы, ее размеры, задать или отменить вывод экранной формы по центру экрана или в его произвольном месте, а также связать экранную форму с одной из таблиц и относящихся к этой таблице табличных форм. Табличную форму можно не задавать, но если Вы это сделаете, то Вам будет предоставлена возможность выбора для полей ввода (в том числе флажков, переключателей и раскрывающихся списков) не только поля таблицы, но и вычисляемые колонки табличной формы.

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

 

Рис. 2.23. Мастер экранных форм. Свойства формы

Пункт Порядок перехода по Tab (рис.2.24.) позволяет указать, в каком порядке будут перебираться поля ввода и элементы управления при нажатии на клавишу Tab в процессе работы. Это очень существенная возможность, с помощью которой можно отрегулировать оптимальный режим заполнения документов, без использования мыши. Особенно это важно сделать на тех рабочих местах, где идет массовый ввод. Мы рекомендуем отрегулировать все формы ввода отдельно для каждого рабочего места, подобрав оптимальный режим с учетом личных особенностей конкретного оператора.

Рис. 2.24. Мастер экранных форм. Определение перемещений по экранной форме

В списке, появляющемся после выбора этого пункта меню, представлены все активные элементы (неактивными являются рамки и метки), имеющиеся в экранной форме, кроме тех, которые размещены внутри групп или страниц. Дело в том, что здесь размечается переход по форме в целом, а «регулировка движения» внутри каждой группы и на каждой странице осуществляется после выбора соответствующего пункта контекстного меню в момент редактирования этого элемента (см.п. 2.3.3 Контекстное меню для элементов формы). Т.е. поддерживается идеология: сначала попади на элемент верхнего уровня иерархии, а потом уже разбирайся с более мелкими различиями.

Изменение порядка следования активных элементов осуществляется в уже знакомом нам интерфейсе (см. п.п.1.1. Администратор меню, 2.2.2. Мастер табличных форм, закладка «Колонки» и др.) с помощью кнопок  Вверх и  Вниз.

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

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

2.3.3.     Контекстное меню для элементов формы

Щелчок правой клавишей мыши на уже размещенном в поле экранной формы элементе или отмеченном (см. ниже) подмножестве элементов вызовет контекстное меню. Меню одинаково для всех элементов, кроме Страниц. В него входят следующие пункты:

·       Свойства элемента (элементов) самый важный момент настройке экранной формы с помощью мастера, поэтому мы посвятили их настройке отдельный раздел 2.3.8.

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

·       Выровнять по сетке. Выбор этого пункта меню предполагает простое действие. Все поле редактирования экранной формы размечено координатной сеткой, которая, впрочем, может быть скрыта от глаз пользователя (см. 2.3.5 Главное меню: пункт «Форма»), облегчающей точную расстановку элементов рисунка. При выборе данного пункта верхние левые углы всех отмеченных элементов (одного элемента) выводятся на ближайший к ним узел этой самой сетки. Чаще всего Выровнять по сетке применяется, когда надо точно «подогнать» несколько рядом стоящих элементов на один уровень.

·       Выравнивание применяется, когда надо упорядочить часть изображения на экране по более сложным принципам, чем это делается в предыдущем пункте меню. Поэтому данной проблеме посвящен отдельный раздел 2.3.7. Изменение выравнивания.

·       Размер нужен только для совместного редактирования отмеченного подмножества элементов. С помощью данного пункта меню можно провести согласование их размеров по разнообразным принципам, описанным в 2.3.6. Изменение размера элементов.

·       Пункт Копировать приводит к созданию копии выбранного элемента в буфере обмена мастера экранных форм. После этого копию можно использовать в форме с помощью пункта Вставить (см. ниже). Она будет абсолютно тождественна своему образцу, за исключением выданного ей программой уникального имени (см. 2.3.8. Изменение свойств экранной формы).

·       Пункт Вырезать абсолютно аналогичен предыдущему за исключением того, что одновременно с копированием в буфер происходит удаление элемента. Собственно говоря, это единственный легальный способ совсем удалить элемент из экранной формы.

·       Вставить применяется для создания копии элемента путем вставки скопированного ранее в буфер обмена мастера.

Обратим Ваше внимание на то, что в каком бы месте поля редактирования экранной формы Вы ни выбрали этот пункт контекстного меню, копии элементов всегда появля­ются со смещением вправо и вниз на один узел координат­ной сетки по отношению к своим «родителям». Исключением является случай, когда буфер обмена был заполнен с помощью команды Вырезать. Тогда происходит точный возврат на то место, откуда заполнялся буфер. Это сделано для того, чтобы, с одной стороны, операция удаления элемента была обратимой (а вдруг Вы ошиблись), а, с другой стороны, не возникло слишком большой неразберихи с накладывающимися на маленьком поле формы элементами. После появления копии никто не мешает Вам переместить ее обычным способом (см. 2.3.1. Панель инструментов).

·       Порядок по Tab абсолютно аналогичен одноименному пункту меню, описанному в 2.3.2. Контекстное меню параметров экранной формы. Разница заключается только в том, что, если выбранным в момент щелчка правой клавиши мыши элементом является Группа или Страницы (но не элемент, размещенный внутри этой группы или редактируемой страницы), то для регулировки порядка перемещения выдается не полный перечень всех элементов формы, а только внутренний список данной группы или страницы. Если же на странице или в группе меньше двух элементов, то данный пункт в контекстном меню вообще не появится.

Вы можете выбрать несколько элементов одновременно, если, нажав и удерживая левую клавишу мыши, обведете их появившейся рамкой. Эту возможность рекомендуется применять при операциях массового копирования, удаления и выравнивания. Впрочем, иногда бывает удобно и редактировать свойства нескольких элементов, быстро «перескакивая» с закладки на закладку (а именно так будет выглядеть редактирование свойств отмеченного множества - совокупность закладок, каждая из которых соответствует одному элементу формы). Отмена такого группового выбора производится щелчком левой клавиши мыши вне границ отмеченного множества элементов. Вдобавок к основному способу, Вы можете выбрать несколько разрозненных элементов формы, если, удерживая кнопку Shift, будете щелкать левой кнопкой мыши на выбираемых элементах.

Кнопка Тест формы позволяет отобразить на экран измененную форму, даже если она еще не была сохранена в DAT-файле.

2.3.4.     Контекстное меню для элемента «Страницы»

В придачу к описанным в разделе 2.3.3. Контекстное меню для элементов формы, для элемента Страницы добавляются следующие пункты контекстного меню, вызываемого нажати­ем правой клавиши мыши (часть их в зависимости от количе­ства страниц может быть не видна). Все они связаны с тем, что естественное для любого пользователя Windows желание щелкнуть мышью по закладке, чтобы перейти к редактированию ее элементов, здесь неосуществимо. Ведь закладка (или стра­ница) для мастера экранных форм -  всего лишь еще один эле­мент рисунка. Поэтому приходится осуществлять настройку отдельных закладок другими средствами.

·       Новая страница. Выбрав этот пункт меню, Вы создадите новую страницу, т. е. еще одну закладку, на которой затем сможете размещать новые элементы экранной формы.

·       Следующая страница. Выбрав этот пункт, Вы перейдете к следующей странице, т. е., если у Вас сейчас выбрана неко­торая страница (закладка) и  Вы видите размещенные на ней элементы и можете их редактировать, то. после щелчка мышью по данному пункту меню, Вы сделаете активной сле­дующую (если считать слева направо) страницу. Ранее отображаемые элементы скроются из поля зрения, а Вы будете иметь возможность размещения очередной группы полей ввода, меток, таблиц и т. п.

·       Предыдущая страница. Данный пункт меню осуществляет переход к предыдущей (расположенной левее) странице.

·       Выбрать страницу... При выборе этого пункта меню вызывается окно, содержащее список всех существующих в данном эле­менте страниц. Выбрав элемент списка, можно быстро пе­рейти к соответствующей закладке. Этот способ перемещения между закладками рекомендуется применять вместо двух предыдущих при большом количестве закладок в одном элементе страницы.

·       Удалить страницу... Выбрав этот пункт меню, Вы удалите редактируемую закладку из элемента Страницы. Если на ней расположены какие-либо элементы, то при выборе дан­ного пункта появляется предупреждение о том, что произ­веденное удаление нельзя отменить позднее.

·       Имя страницы... При выборе этого пункта меню вызывается окно, в котором можно указать наименование страницы, т. е. ту информацию, которая будет написана на закладке в процес­се работы.

2.3.5.     Главное меню: пункт «Форма»

При работе с мастером экранных форм, в горизонтальную линейку главного меню программы автоматически добавляется пункт Форма. В выпадающее подменю этого пункта входят следующие элементы (часть из них для удобства пользователя дублирует описанные ранее возможности контекстных меню или панели инструментов):

·       Свойства. Позволяет вызвать окно со свойствами текущего элемента (элементов) (см. 2.3.8. Изменение свойств эле­ментов экранной формы) или всей формы (см. 2.3.2. Кон­текстное меню параметров экранной формы), если ни один элемент не выбран.

·       Данные. Этот пункт позволяет вызвать на экран окно Дан­ные (рис. 2.25), содержащее полный перечень элементов мас­сива общих мест таблицы - источника данных экранной формы (см. 2.1.2. Закладка «Поля таблицы»), из которого путем перетаскивания мышью можно добавить в шаблон экранной формы пару новых элементов: Поле ввода и Заголовок, соответствующие одному из элементов массива (полю таблицы) и его заголовку.

 

Рис. 2.25. Пункт меню Форма / Данные

Если при перетаскивании дер­жать кнопку Shift, то заголовок создан не будет. Таким образом, пункт Данные позволяет наиболее оперативным образом размещать в экранной форме поля ввода.

·       Элементы. Этот пункт позволяет получить полный список всех элементов, расположенных на форме, и выделить или снять выделение с любого из них или всех сразу. Этот список полезен еще и тем, что в нем можно найти элементы, которые, в соответствии со своими координатами, вообще не видны на форме. Выделив такой элемент и вызвав его свойства с помощью пункта Свойства, можно изменить координаты элемента подобающим образом.

Рис.2.26. Мастер экранных форм, список элементов (главное меню)

·       Предпочтения. После выбора этого пункта меню отобра­зится одноименное окно (рис.2.27.).

Рис.2.27. Мастер экранных форм, главное меню, Форма / Предпочтения

В этом окне вы можете делать следующие настройки:

В группе Координатная сетка:

Если флажок Показывать сетку не установлен, координатная сетка отображаться в форме не будет.

Установив флажок Выравнивать по сетке, Вы укажете на необходимость выравнивания всех элементов, расположенных на редактируемой форме, по узлам координатной сетки. Программа просто не даст Вам установить угол элемента в межкоординатное  пространство.

В полях Размер Х и Размер Y Вы можете задавать в пикселях расстояние между узлами координатной сетки соот­ветственно по горизонтали и по вертикали.

В группе Значения по умолчанию для новых элементов:

Нажав на кнопку Шрифт для метки. Вы вызовете стандартное окно Шрифт, в котором можно задать параметры шрифта, используемые по умолчанию для элемента Метка. К этим параметрам относится наименование шрифта, его подвид (всегда выбирайте вариант «кириллица»), размер, начертание (наклон­ный, полужирный и т. п.), а также атрибуты зачеркивания и под­черкивания текста (одновременное их применение дает весьма забавный эффект). Впрочем, впоследствии для каждой метки Вы сможете установить свой шрифт, здесь указывается лишь наиболее часто употребляющийся вариант.

Установив флажок Кнопки ОК и Отмена в поле ввода, Вы укажете на необходимость присутствия кнопок ОК (утвердить ввод) и Отмена (вернуть старое значение) в каждом элементе типа Поле ввода. Эти кнопки весьма удобны в реальной работе, но занимают на экране много места. Впрочем,  для каждого поля ввода их можно будет впоследствии отменить (см. 2.3.8. Изменение свойств элементов экранной формы).

·       Создать элемент. В появляющемся подменю дублируются «элементные» кнопки Панели инструментов (см. 2.3.1).

·       Тест формы. Пункт Тест формы позволяет отобразить на экран редактируемую форму без предварительного сохране­ния сделанных изменений.

2.3.6.     Изменение размера элементов

Это пункт контекстного меню для элементов экранной формы (см. 2.3.3). Его имеет смысл использовать, если выделено одновременно несколько элементов формы, у которых нужно точно согласовать размеры, т. е. сделать их одинаковыми. Режим изменения размеров задается отдельно по ширине и по высоте (рис. 2.28).

Изменение размера может быть:

·       К большему (меньшему): когда выбрано несколько элементов, размер всех элементов после выравнивания равен размеру наибольшего (наименьшего) из этих элементов до выравнивания.

·       Увеличить (уменьшить): размер каждого из выбранных элементов увеличивается (уменьшается) на пять точек (пикселей).

Кроме того, можно прямо задать ширину и высоту выделенных объектов, заполнив поля Ширина и Высота.

Рис. 2.28. Мастер экранных форм, изменение размеров

2.3.7.     Изменение выравнивания

Как и описанный в предыдущем разделе, этот пункт контекстного меню для элементов формы (см.п. 2.3.3) имеет смысл использовать только для нескольких одновременно выделенных элементов, чтобы упорядочить их изображения друг относительно друга. Выравнивание осуществляется отдельно по горизонтали и по вертикали (рис. 2.29).

Рис. 2.29. Мастер экранных форм, выравнивание элементов

Выравнивание может производиться:

·       По одним и тем же сторонам: все выделенные элементы перемещаются так, что стороны элементов (левые или правые, верхние или нижние - в зависимости от выбора), по которым проходит выравнивание, располагаются на одном уровне. Этот уровень соответствует элементу наиболее приближенному к соответствующей (левой, правой, верхней или нижней) грани формы, в которой происходит выравнивание.

·       По центрам: происходит совмещение всех центральных осей выбранных элементов - по центральной оси самого левого при горизонтальном выравнивании и по центральной оси самого верхнего при вертикальном.

·       Одинаковое расстояние: раздвигает выделенные элементы таким образом, что расстояние между любыми соседними элементами (по горизонтали и/или вертикали в зависимости от выбора) будет равно максимальному из расстояний между соседними элементами до выравнивания.

·       Увеличить (уменьшить) расстояние: расстояние между выделенными элементами увеличивается (уменьшается) на пять точек (пикселей).

·       По центру окна: в зависимости от того по горизонтали или по вертикали происходит выравнивание, центральная линия всей группы выделенных элементов перемещается соответственно на горизонтальную или вертикальную ось симметрии экранной формы.

·       Цепочка: производится совмещение горизонтальной (вертикальной) координаты левой (нижней) границы предыдущего элемента с правой (верхней) границей последующего элемента. При применении данного метода одновременно по вертикали и горизонтали к группе элементов, расположенных «в линию», действительно получается изящная диагональная цепочка слева направо сверху вниз.

2.3.8.     Изменение свойств элементов экранной формы

Это самый важный пункт контекстного меню для элементов формы (см. 2.3.3). Окно настройки каждого элемента состоит из двух закладок. Выбрав первую из них, которая называется Макет, Вы, независимо от типа элемента, можете редактировать такие наиболее общие его свойства, как уникальное имя элемента, по которому с ним работает программа, текст внутри него (для рамки, страниц и таблицы этот параметр не имеет смысла, для поля ввода текст осмыслен только для удобства визуализации в процесс редактирования формы, для кнопок, флажков и меток - это собственно надпись, которую видит пользователь, для групп и переключателей - пояснение в ограничивающей рамке), размещение объекта на экране, его размеры (здесь впрямую задаются координаты в пикселях относительно левого верхнего угла экранной формы).  Будьте внимательны с указанием координат: если Вы «разместите» элемент вне границ поля редактирования, то единственным способом вернуть его в поле Вашего зрения окажется временное увеличение размеров самой формы (см. 2.3.2. Контекстное меню параметров экранной формы). Кроме того, отметим, что при групповом редактировании свойств (см. 2.3.3. Контекстное меню для элементов экранной формы) имя и текст к редактированию, естественно, недоступны.

Гораздо большее разнообразие параметров настройки Вы увидите, перейдя на вторую закладку, которая носит имя редактируемого элемента. Поэтому рассмотрим ее подробнее.

Для элемента Поле ввода (рис. 2.30.) имеются две внутренних закладки. На закладке Основное можно связать с полем элемент массива общих мест, в который поступают данные из какого-либо поля таблицы, или же непосредственно имя поля. Это можно сделать, нажав кнопку Выбрать. Сразу после этого Вам откроется окно с древовидным перечнем всех доступных переменных. Поля таблицы, не имеющие своего места в массиве, сосредоточены в группе Свободные поля. После выбора нужного элемента Вы увидите кодовое имя связи, которое состоит из имени группы, знака @ («собаки») и имени поля или места массива, например POL@FIO. Для свободных полей таблицы используется псевдоним _FIELDS. Отменить выбор источника можно с помощью кнопки Очистить. Только для числовых полей и дат здесь можно описать шаблон визуализации значения в поле ввода (см. 2.2.8. Форматирование представления данных).

На закладке Прочее имеется возможность задать формулу, по которой будет вычисляться выражение внутри поля, вызвав Конструктор формул (см. 8). Эта возможность используется для поддержания зависимости между данным полем ввода и другими полями формы. Например, зададим в поле Суммы налога с помощью Конструктора формулу SUM.СУММА*0.2 (т.е. 20% от Суммы без НДС). Как только Вы введете в поле Сумма без НДС (но не раньше – все вычисления производятся только после ввода нового значения в любой из элементов формы) число 100, так сразу же в поле Сумма налога появится число 20. Нужно отметить, что данная возможность не может поддерживать вычисления по строкам включенной в экранную форму таблицы (только по полям ввода). Эта возможность задается в свойствах самого элемента типа Таблица (см. ниже).

 

Рис. 2.30. Мастер экранных форм, свойства элемента

 

Здесь же добавлена возможность переноса слов внутри поля, т. е., когда текст внутри поля станет слишком длинным, новое слово будет начинаться с новой строчки. Кроме того, можно включить в поле ввода кнопки ОК и Отмена, а также формат вывода значения в поле ввода: основной шаблон и шаблоны для отрицательного и нулевого значения. Наконец, некоторые поля Вы можете включить в экранную форму в режиме только для чтения. Следует учесть, что для тех элементов массива общих мест из группы Свободные поля таблицы, которые соответствуют вычисляемым колонкам табличной формы, поля ввода всегда имеют режим только для чтения, вне зависимости от установки флажка в свойствах элемента (см. 2.3.5. Главное меню: пункт «Форма).

·       Элементу Метка на единственной открывающейся одноименной внутренней закладке можно приписать объект, с которым эта метка будет логически связана. Кстати, после выбора из пункта Данные (см. 2.3.5. Главное меню: пункт «Форма») такая связь устанавливается автоматически. Чтобы отменить связывание на закладке существует специальная кнопка Удалить связь. Важно отметить, что установление связи носит скорее характер комментария - связанные элементы можно размещать отдельно друг от друга. Тем не менее, установка связи удобна, когда Вы хотите сделать переход на Поле ввода с помощью горячих клавиш из текста метки. Как и для элемента Поле ввода существует возможность переноса слов внутри поля. Также для текста элемента можно задать параметры шрифта.

·       Элементу Кнопка (рис. 2.31) можно приписать одно из стандартных или специальных действий. Результатом нажатия кнопки может быть:

OK – сохранение изменений (если они были) и выход из экранной формы.

Сохранить — сохранение изменений без выхода из формы. Если изменений не было, то эта кнопка погашена.

Отмена — выход без сохранения изменений. Если изменения имели место, то от Вас потребуется подтвердить, что их сохранять не надо.

Произвольная Команда (если позволяет редактируемая форма), например, команда вызова контекстной помощи (для любой экранной формы), переход к следующей или предыдущей строке таблицы (только для справочников). Конкретная команда выбирается на закладке Кнопка в группе Источник данных из элементов Массива общих мест, имеющих тип Команда. Так как такие элементы, заранее подготовленные авторами пакета, не увязываются ни с какими полями базы данных, для всех экранных форм формально разрешено выбирать любую из команд. В реальности, однако, следует использовать такую команду, которая действительно может быть связана именно с этой экранной формой.

Рис. 2.31. Мастер экранных форм. Свойства элемента Кнопка

Процедура позволяет приписать нажатию на кнопку выполнение произвольной программы на встроенном языке Basic (см. 2.7. Мастер бизнес - процедур). Вы можете выбрать имя подготовленной в мастере процедуры из выпадающего списка и даже тут же изменить этот текст, нажав кнопку Редактировать.

Нажатие в процессе работы на кнопку Печать заставит программу инициировать стандартную процедуру печати, но только в том случае, если с вызывающей данную экранную форму табличной формой была связана хотя бы одна печат­ная (см. 2.2.1 Закладка «Общие сведения»). Нам кажется, что эта длинная цепочка понятий вообще-то вполне доступ­на. С каждой таблицей, в которой хранятся данные, нужно связать как минимум одно описание ее визуализации в виде «много записей одновременно», полноэкранное представле­ние одной записи и способ ее распечатки в виде документа.

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

На той же закладке в группе Тип кнопки мож­но отметить, должен ли данный элемент активи­зироваться при нажатии на клавиши Enter и/или Esc. Для кнопки, кроме текста, можно предусмотреть изображение, а также подсказку, которая будет высвечиваться при подводе курсора к кнопке. Возможен вариант, при котором текст на кнопке отсутствует, а имеется только изображение и подсказка.

Добавлена возможность использовать объект UsedObject в обработчиках кнопок в экранной форме.

·       Элементы Страницы, Рамка и Группа никаких специфических свойств (и даже второй закладки в окне Свойства) не имеют.

·       Элемент Флажок (рис.2.32) следует, как и Поле ввода (см. выше), связать с каким-либо источником данных. Кроме того, нужно описать, какие значения будут заноситься в этот источник при установленном (нажатом) и снятом (отжатом) флажке. Для элемента Флажок можно указать Выравнивание,  которое определяет, с какой стороны от флажка будет расположен поясняющий текст.

Рис. 2.32. Мастер экранных форм, свойства элемента Флажок

·       Для элемента Переключатели (Рис.2.33.) есть две внутренние закладки. На закладке Прочее можно задать количество коло­нок, в которых будут располагаться переключатели. Если задать одну колонку, то все переключатели будут расположены при работе столбиком. При большем числе колонок програм­ма постарается разделить общее число переключателей на число колонок поровну.

На закладке Основное в поле ввода Тип отображается тип поля – источника данных. Тип может быть одним из двух: Текст или Число.  Он однозначно определяется ти­пом приписанного переключателю источника (см. выше Поле ввода). В таблице значений, расположенной ниже, отображены все пункты редактируемого переключателя. С помощью кнопок Добавить и Удалить, Вы можете, соответственно, добавить и удалить пункт переключателя, приписывая каж­дой его позиции поясняющий текст и значение, которое будет вводиться в поле при выборе данной позиции. С помощью кнопки Правка можно назначить пункту новое имя и значе­ние. Кнопки со стрелками  Вверх и  Вниз позволяют задать выделенной позиции желаемое положение в переклю­чателе.

Рис. 2.33. Мастер экранных форм, свойства элемента Переключатель

·       Редактирование свойств элемента Выпадающий список на закладке Основное полностью совпадает с редактированием свойств Переключателей (см. выше). На закладке Прочее можно сделать элемент либо стандартным выпадающим при нажатии стрелки Вниз или же всегда открытым. В после­днем случае надо самостоятельно позаботиться о том, чтобы границы элементы были достаточно широки, иначе список будет не виден.

·       Наиболее сложный вид имеет окно свойств элемента Таблица. Кроме общих параметров на первой закладке Макет, на второй   закладке (названной по имени таблицы) располагаются не две, а целых три дополнительных:

-       Основное. На этой закладке Вы можете, абсолютно анало­гично Полю ввода (см. выше), выбрать Источник данных. Как и во всех случаях, источником данных является элемент массива общих мест. Однако в этом случае допускается выбирать только элементы типа таблица (программа сама следит за этим, подавая соответствующую выборку элемен­тов эталонного массива). Так как Таблицы не увязываются ни с какими полями базы данных, для любых экранных форм допускается выбирать практически любой из предлага­емых вариантов. В реальности, однако, выбирать следует та­кую таблицу, которая действительно может быть связана именно с этой экранной формой. При выборе таблицы авто­матически подбирается подходящее значение из раскрывающегося списка Табличная форма. Вы можете выбрать другую форму, хотя в большинстве случаев рекомендуется использо­вать ту, которая предлагается по умолчанию. Выбранная табличная форма схематически изображается в нижней части закладки. Заметим, что обозначение группы Таблицы в эта­лонном массиве в поставке имеет вид GRIDS. Здесь же имеется флажок, который позволяет включить таблицу в режиме только для чтения.

-       Ключ. Эта закладка позволяет установить для таблицы огра­ничение по ключу. Для некоторых из таблиц ограничение устанавливается автоматически в соответствии с указаниями в описании табличных форм (см. 2.2.1. Закладка «Общие сведения»). В других случаях ограничение должно быть явно указано на этой закладке. Ограничение описывается в виде перечня полей и формул для вычисления ключевых значений. Для добавления в перечень нового поля следует использо­вать кнопку . После этого поле можно выбрать из списка ключей, уже проставленных в табличной форме (выпадаю­щий список в самом перечне полей), или из полного списка полей таблицы: кнопка . После этого с помощью кнопки  можно вызвать Конструктор формул, с помощью кото­рого записывается формула для вычисления ключевого зна­чения. Следует обратить внимание, что если в процессе ра­боты в результате корректировки полей экранной формы значение, вычисляемое по этой формуле, изменится, то огра­ничение таблицы по ключу будет пересмотрено и в окне таблицы, возможно, появятся совсем другие строки. Если используется такой элемент массива общих мест, который предусматривает корректировку таблицы во временном файле и сохранение изменений одновременно с сохранением всей экранной формы, то значение ключевого поля во всей временной таблице будет заменено на новое, и при сохранении экранной формы такое значение будет переписано в исходную таблицу. Если же элемент массива общих мест предусматривает непосредственную работу с частью таблицы без возможности отказа от сделанных изменений, то при изменении ключевого значения ограничение таблицы по ключу будет пересмотрено, и в окне таблицы, возможно, появятся совсем другие строки.

-       Вычисления. Эта закладка (рис. 2.34) позволяет описать, как следует изменять значения в полях ввода экранной формы при корректировке данных в элементе Таблица. Корректироваться могут сразу несколько элементов формы, располо­женных вне данной таблицы: их перечнем заполняется окно Вычисление в центре закладки. Добавление нового поля осуществляется с помощью кнопки , удаление ошибочно введенного – с помощью кнопки . Изменяемый элемент выбирается из списка с помощью кнопки . При этом в списке Вы увидите не только элементы массива общих мест (см. 2.1.2. Закладка «Поля таблицы») для той таблицы, на кото­рой основана экранная форма (см. 2.3. Мастер экранных форм), но и не связанные с массивом поля. Уже понятно, что сопоставление с полем ввода, в котором должно меняться значение после корректировки данных в настраиваемом эле­менте Таблица, осуществляется именно через выбираемый здесь элемент. Точно такое же наименование нужно указать для связанного с таблицей Поля ввода в качестве источника данных (см. выше).

Вычисление может производить­ся одним из способов, кото­рый выбирается в переключателе Тип источника данных:

·       Сумма по полю. В этом случае дол­жно быть указано Поле данных таблицы. Для его выбора может ис­пользоваться раскрывающийся список, кнопка Выбрать рядом с полем ввода или кнопка  над перечнем.

·       Формула. Формула вводится в специальное окно Источ­ник данных. Фактически, требуется написать даже не фор­мулу, а небольшую программу (бизнес-процедуру) на язы­ке, являющемся разновидностью Basic. Краткое описание правил программирования Вы можете прочитать в 2.7.1. Правила написания программ на встроенном языке Basic. Естественно, что в этом месте программы Вам достаточ­но использовать простые операторы и конструкции, не вда­ваясь во все возможности, предоставляемые языком. Образец программы Вы можете получить прямо в окне ввода с помощью кнопки , который Вам остается только не­много подправить.

o       Для включения в текст в качестве пере­менных имен полей таблицы используйте кнопку , для выбора в тех же целях элементов массива общих мест из самой экранной формы – кнопку .

-       На закладке Главная таблица можно увязать две табличные формы, расположенные на экранной форме, в конструкцию «главный - подчиненный». Элемент, свойства которого редактируются, выступает в качестве подчиненного. В качестве главной таблицы выбирается элемент массива общих мест (см. раздел «Общие правила работы», глава Базовые термины) типа "таблица"; список доступных элементов вызывается нажатием на кнопку "Выбрать". В нижней части формы устанавливается соответствие полей для связи. Перечень полей главной таблицы выводится на экран при нажатии на кнопку , перечень полей подчиненной таблицы - при нажатии на кнопку .

 

Рис. 2.34. Мастер экранных форм, свойства элемента Таблица

2.4.        Мастер печатных форм

Мастер печатных форм, который вызывается с помощью кнопки  на панели инструментов или соответствующего пункта меню Сервис, служит для создания, редактирования и удаления печатных форм, иначе говоря, шаблонов или блан­ков печатных документов. Из перечисления синонимов навер­но уже ясно, что печатная форма, по сути, представляет собой заготовку для формирования текста документа на бумажном носителе, некий бланк первичного документа, дополнитель­ной формы к балансу и т. п., в котором на специальном ус­ловном языке описано, в каком месте листа и какие данные нужно в него впечатывать при использовании в процессе ра­боты. Понятно, что вид печатной формы зависит от того, для каких конкретно первичных документов он предназначен. Поэтому в ERP-системе «КОМПАС» принято связывать печатную форму с конкретной Табличной формой (см. 2.2.1. За­кладка «Общие сведения»). Ведь именно вид табличной (и соответствующей ей экранной) формы определяет те данные, которые Вы помещаете в базу данных при описании того или иного типа документов.

Следует отличать печатную форму от отчета (см. 2.6. Мас­тер отчетов). Под отчетом мы будем понимать ведомость с результатами работы программы. Ведомость собирается по неопределенному количеству записей, позволяет распечаты­вать их перечень в произвольной форме, подсчитывать различ­ного вида итоги и субитоги. Печатная же форма предназначена для создания твердой копии одного документа, карточки одно­го сотрудника и т.п. В крайнем случае, для подсчета итоговых сумм по базе и размещения их в заранее предусмотренных полях листа документа (дополнительные формы к балансу). С одной стороны, мастер печатных форм обладает более узким набором возможностей, а с другой стороны, дает возможность сделать документ более читабельным, удобным и красивым, или соответствующим требованиям различных организаций, принимающих документ, что в отчетах не требуется, а для документов зачастую необходимо.

Рис. 2.35. Мастер печатных форм

После старта мастера все формы, которые уже можно ис­пользовать в задаче, отображаются в списке, состоящем из двух колонок: Псевдоним и Описание (рис. 2.35). Псевдоним печатной формы — это наименование, с которым работает программа. Он может не совпадать с названием Табличной формы, с которой она связана. С одной табличной формой может быть связано несколько печатных форм (см. 2.2.1. За­кладка «Общие сведения»). Выбор конкретной формы производится непосредственно в процессе работы перед печатью. Псевдоним каждой печатной формы должен быть уникальным. Опи­сание (иначе - заголовок) формы не несет служебной информа­ции и нужен пользователю для пояснения ее роли в жизни. Псевдоним печатной формы, ее описание и настройки состав­ляют шаблон. Все шаблоны печатных форм находятся в специ­альном файле с расширением dat. Такой файл в стандартной поставке имеет имя tmpls.dat.

Вы можете видеть, что часть из псевдонимов помечена латинской буквой . Это печатные формы, которые подготов­лены специально для использования совместно с текстовым редактором Microsoft Office Word или OpenOffice Writer. Мы считаем, что на сегодняшний день - это основной способ создания новых бланков документов, т. к. он соответствует современным принципам использования программного обеспечения, которые требуют интеграции с офисными пакетами. Дальнейшее совершенствование инструментария подготовки печатных форм будет связано именно с ним. Все псевдонимы, не помеченные буквой W, относятся к внутренним шаблонам ERP-системы «КОМПАС» и обрабатываются при печати документов непосред­ственно данным мастером. Кнопка с аналогичной картинкой W под списком форм позволяет проверить наличие шаблонов в формате Microsoft Office Word или OpenOffice Writer. Если для каких-то форм шаблон не будет найден, это получить отражение в протоколе проверки.

Специальной пометкой  в списке отмечены те формы, которые основаны на шаблоне в формате MS Word версии старшей, чем та, которая установлена на компьютере (приводится для информации над списком форм). Корректировка и использование таких форм не допускается.

В окне мастера печатных форм расположены кнопки:

·       Новая форма. Нажав на эту кнопку, Вы создадите новую печатную форму. Основные реквизиты создаваемого шаблона следует заполнить в открывающемся при нажатии кнопки окне, которое очень похоже на окно создания новой экранной формы (см. 2.3. Мастер экранных форм). По­следовательно вводятся: имя таблицы, из которой форма будет забирать данные (нужно осуществить выбор из выпа­дающего списка), имя табличной формы (тоже выбирает­ся из выпадающего списка форм, связанных с вышеуказанной таблицей), уже описанные чуть рань­ше псевдоним и заголовок (описание), а также признак документа: MS Office Word / OpenOffice Writer или внутренний. В случае, если Вы соби­раетесь создать документ c использованием офисного приложения, Вам придется еще указать имя файла соответствующего формата (doc), в котором будет храниться шаблон (бланк). После этого на экран будет выведена стандарт­ная заготовка для будущей печатной формы, вид и правила работы с которой зависят от только что установленного типа документа.

·       Новая из текущей. Нажав на эту кнопку, Вы создадите печатную форму по образцу текущей. Вновь созданная таким образом форма является полной копией образца. Для новой формы потребуется указать новый уникальный псевдоним и, может быть, изменить заголовок. В нее можно внести необходимые изменения, выделив шаблон с новым именем и нажав кнопку Редактировать. Для шаблонов MS Office Word / OpenOffice Writer нужно еще указать имя нового файла  соответствующего формата (см. выше) и здесь же указать директорию, где будет храниться файл (разместить его в той же самой папке, где находится файл образца, в стандартной папке Windows, которая носит название Документы, или же в любом другом месте Вашего дискового пространства). Программа позволит Вам указать путь к шаблону (если он не помещается ни в одну из стандартных папок) с помощью стандартного иерархического списка директорий, имеющихся в компьютере.

·       Кнопка Импорт формы предназначена для импорта шаблонов печатных форм из других dat-файлов, содержащих такие шаблоны. Она вызывает диалоговое окно Выбор файла с шаблонами печатных форм. При выборе корректного файла, содержащего шаблоны табличных форм (файл с расширением DAT), появится окно Выбор формы. Выберите в этом окне шаблон или несколько шаблонов - отмечая второй и последующие, удерживайте нажатой клавишу Ctrl.  Нажав на кнопку OK, Вы добавите новый шаблон (или шаблоны) в список. В том случае, если импортируется шаблон  формата Word, вы можете дополнительно указать путь к doc-файлу.

·       Кнопка Удалить шаблон позволяет удалить устаревший шаблон из списка.

·       Кнопка Редактировать отображает основное окно редакти­рования печатной формы (см. ниже), в котором готовится собственно бланк.

·       Кнопка Свойства нужна, чтобы изменить базовые характеристики шаблона: уже упоминавшиеся псевдоним, заголо­вок, табличную форму и (только для шаблонов Word) имя файла формата doc.

·       Наконец, кнопка Наличие шаблонов инициирует процедуру чтения описаний Word-шаблонов и поиска приписанных к ним файлов с расширением doc (см. выше), и если хотя бы одного из doc-файлов не хватает, выдает перечень несоответствий.

2.4.1.     Правила редактирования шаблонов Word

Основное окно редактирования шаблона Word представлено на рис. 2.36. Для того, чтобы возможности ERP-системы «КОМПАС» функционировали в полном объеме, Вам необходимо иметь в папке STARTUP или АВТОЗАГРУЗКА (в зависимости от того, англоязычная или русскоязычная версия операционной системы установлена на Вашем компьютере) один из следующих файлов: kmp_sql7.dot,  kmp_sql8.dot или kmp_sql9.dot (в зависимости от версии MS Office).

Рис. 2.36. Мастер печатных форм, окно редактирования шаблона

В принципе, программа копирует эти файлы в нужную пап­ку автоматически. В любой из задач пакета в пункте Кон­фигурация меню Настройка есть закладка Печать документов, а на ней кнопка Поддержка печати через Word. Если Вы зайдете в Конфигурацию и установите переключатель в положение Включить, то программа попытается определить версию Word, размещение его системных файлов и произвести копи­рование. Однако, в случае сложных конфигураций системы возможны неудачи. Поэтому неплохо знать, что образцы вышеупомянутых файлов находятся в стандартной поставке в папке SHABL, на тот случай, если Вам придется копиро­вать их самостоятельно. Необходимыми условиями успешной автоматической установки связи являются: полноценная ин­сталляция Word или MS Office в целом, без последующего перемещения простым копированием и исправлением ярлыка, а также правильная регистрация в процессе инсталляции Word.

Впрочем, будем считать, что установка уже прошла нор­мально, и вернемся к теме подготовки шаблонов.

В вертикальную панель инструментов входят:

  Формула

  Таблица

  Рисование

  Изображение

  Параметры документа

  Формулы документа

  Сохранить

Для добавления в шаблон документа формулы установите курсор в документе  на нужном месте и нажмите кнопку Формула . При этом будет выведен Конструк­тор формул (см. соответствующую главу раздела «Общие правила работы»), с помощью которого составляется формула. Если нужно откорректировать уже существующую формулу, установите на нее курсор и нажмите ту же кнопку. В этом случае сначала раскроется экран, представленный на рисунке 2.37. Текст форму­лы записывается или непосредственно в поле ввода, или опять же с помощью Конструк­тора формул, который можно вызвать кнопкой Конструктор, расположенной в конце поля ввода формулы. Для полей, расположенных внутри тела таблицы, в формулах могут использоваться поля этой таблицы или запроса.  В конструкторе формул они будут размещаться в отдельной группе параметров, название которой совпадает с названием таблицы или запроса. Кроме текста формулы, Вы можете с помощью кнопки Опции указать дополнительные характеристики данного элемента печати. Остановимся на этом важном моменте поподробнее.

Выбор опций расположен на трех закладках (рис. 2.37.).

 

Рис. 2.37. Мастер печатных форм, редактирование формулы

Пер­вая из них (Для всех) относится к данным любого типа. С ее помощью можно определить необходимость начинать поле с заглавной буквы (даже если подставляемая информация начи­нается с буквы строчной), заканчивать ее точкой (даже если точки в подстановке нет), заменять ли имеющуюся внутри тек­ста точку на любой другой символ. Обратите внимание, что последняя установка относится и к десятичной точке в числах, но гаранти­рованно работает, только когда в качестве разделителя дробной и целой части числа в Панели управления Windows (Языки и стандарты / Числа) задана именно точка! Наконец, можно включить флаг подчеркивания. В этом случае, пустое (и толь­ко пустое) значение поля ввода при формировании документа будет заменяться символами подстрочного подчеркивания. Ну не указали Вы фамилию директора предприятия — партнера, значит, в окончательном тексте письма на этом месте создастся эффект пустой графы. Сколько символов подчеркивания должна ставить программа, можно указать в соседнем поле.

На закладке Число можно установить переключатель печа­ти сумм цифрами или прописью. Пропись может быть определена в рублях или в валюте, и то, и другое — по-русски или по-английски. Для числа прописью можно задать печать слова ровно (в английском варианте only) в том случае, когда оно не содержит дробной части (т. е. число 34.45 при такой установке будет напечатано как тридцать четыре рубля 45 копеек, а 34.00 как тридцать четыре рубля ровно). Кроме того, можно выставить флаг Округлить до целого (заметьте, эта установка относится именно к округлению самого печатае­мого числа, а не к формату его печати) и указать, сколько знаков после десятичной точки надо печатать (только если число печатается не прописью). Заметим, что значение Авто, устанавливаемое в этом параметре по умолчанию, приводит к непропечатыванию всех концевых нулей после десятичной точ­ки, т. е. 1001.40 Вы увидите в документе как 1001.4, а 1001.00 как 1001. Поэтому будьте внимательны, и в тех полях, где Вы хотите видеть копейки, всегда указывайте точность печати 2. Кроме того, установкой еще трех флагов можно задать разбие­ние чисел на триады (берется символ из Панели управления Windows), замену нулевого числа на пустоту или любой другой текст и нулевых копеек на знак равенства (такое требуют некоторые банки при печати платежных поручений).

На закладке Дата можно по аналогии с числом выбрать написание прописью или цифрами. По умолчанию дата пишется пропи­сью, например, 14 июля 99, тем не менее, с помощью трех флажков можно установить написание года с четырьмя цифрами (14 июля 1999 года), заменить слово «года» на «г.», на пусто или вовсе написание года отменить (14 июля). Часть этих установок действует и на запись даты числом. Никаких букв в нее не добавляется, но можно задать написание с двумя циф­рами года, с четырьмя цифрами и вовсе без года. С другой стороны, дату прописью можно напечатать на английском языке.

Ранее введенную формулу и все ее настройки можно отредактировать средствами MS Word. Для этого надо двойным щелчком на формуле вызвать меню, показанное на рисунке 2.38. В этом случае, однако, никакой подсказки ни по формуле, ни по настройкам Вы не получите.

Рис. 2.38. Форма Параметры тестового поля (представлен вид формы в случае установленной англоязычной версии MS Word)

Кнопка  предназначена для работы с таблицами. Для ввода табли­цы достаточно выбрать позицию на экране и нажать соответствующую кнопку на панели инструментов. Тут же появится настроечное окно (рис. 2.39.), в котором вам нужно указать источник данных:

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

·    произвольная таблица. Можно выбрать любую таблицу, а для нее - одну ее из табличных форм. Необходимость в выборе конкретной табличной формы возникает, если Вы хотите использовать в печатном документе описанные в форме вычисляемые поля. Кроме того, нужно описать Условие отбора, которое описывается по-разному, в зависимости от того, указали Вы табличную форму, или нет. Если табличная форма не была указана, то условие отбора состоит из нескольких условий, в каждом из которых значение одного из полей сравнивается со значением, вычисленным по формуле. Формула вводится с помощью конструктора формул, который вызывается кнопкой Значение, или вручную - переведите переключатель в соответствующее положение. Здесь же описывается порядок сортировки строк таблицы. В случае, если табличная форма была задана, то в качестве сортировки используется сортировка по умолчанию для этой табличной формы, а условие отбора может быть описано только с помощью ограничения по ключу и только в том случае, если для табличной формы оно предусмотрено;

·    SQL запрос. Псевдоним запроса можно выбрать из списка. Если запрос располагается не в файле QUERIES.DAT, можно указать другое имя файла. Если запрос имеет параметры, для каждого из них следует обеспечить подходящее значение: в виде константы или формулы. Не следует использовать запросы с макропараметрами, так как механизма постановки их значений в печатных формах не предусмотрено.

Во всех трех случаях вы получите полный перечень полей таблицы или запроса, и надо только расставить флажки, показывающие, какие поля включить в новообразованную таблицу, а какие - нет, а также по каким числовым полям Вам нужны итоги. Кроме того, с помощью специального флажка Вы можете добавить в таблицу колонку с порядковым номером строки. Самое главное, что создается именно таблица в терминах Word, а значит с ней можно работать всеми средствами, предоставленными текстовым процессором. Даже кнопка Автоформат, которую Вы видите на Рис. 2.39, является сугубо Word-овским элемен­том, с помощью которого Вы можете подобрать оформление данной таблицы. Вы можете удалять и копировать таблицу, менять ее размеры, переставлять колонки и добавлять но­вые все теми же стандартными приемами, которыми Вы пользуетесь при создании любых текстовых документов. Не­обходимо только помнить, что количество колонок таблицы, которые можно вставить в шаблон, ограничено: для Microsoft Word из Microsoft Office 95 установлен максимум 31 колонки, для Microsoft Word из Microsoft Office 97и выше — 63 колонки. Кроме того, нельзя вставить одну таблицу внутрь другой.

 

Рис. 2.39. Мастер печатных форм, окно настройки свойств таблицы

 После нажатия кнопки ОК таблица будет вставлена в документ. По умолчанию, она состоит из трех строк: заголовка, самой таблицы и итоговой строки. Вам может понадобиться иметь в таблице заголовок, состоящий более чем из 1 строки. Это можно сделать средствами Word, но после этого надо позаботиться о том, чтобы «КОМПАС» знал, какая именно строка должна размножаться при обработке таблицы или запроса. Для того, чтобы это сделать, установите курсор на идентификаторе таблицы (обычном поле ввода, расположенном непосредственно над таблицей) и снова нажмите ту же кнопку (). При этом появится окошко, позволяющее ввести номер строки, в котором расположен детальный раздел таблицы и который будет дублироваться при печати документа. Этот номер можно установить и заранее, еще перед нажатием кнопки ОК на форме, изображенной на рис.2.39. 

Чтобы изменить настройки поля, в том числе и находящегося внутри таблицы, достаточно щелкнуть по нему левой клавиши мыши и нажать после этого кнопку . Вы тут же окажетесь в форме редактирования свойств поля ввода. Однако для таблицы Вам доступны дополнительные переменные, соответствующие полям этой таблицы (они выделены в отдельную группу), а также вспомогательные переменные, которые Вы можете описать еще на этапе настройки таблицы с помощью кнопки Формулы. При этом откроется окно, правила работы с которым аналогичны правилам работы с  формулами документа (см. ниже). Удаление поля или целой колонки производятся стандартными для работы с MS Word действиями.

Кнопка Рисование  предназначена для перехода (отмены) к  режиму рисования Word.

Кнопка Изображение  предназначена для вставки в документ Word изображения, которое хранится в базе данных (например, логотипа фирмы или логотипа партнера): одно из возможных изображений выбирается как  элемент массива общих мест.

При нажатии на кнопку Формулы документа  на экране откроется  окно с кнопками Закрыть, Новая, Правка, Правка метки и Удалить. В этом окне можно создать сколько угодно строк, в каждой из которых указать текст формулы (с помо­щью все того же Конструктора формул — см. раздел «Общие правила работы»), поясняю­щее описание и ее метку. В дальнейшем эту метку можно будет многократно использовать в участках подстановки (в том числе и в качестве операндов в других формулах), не утруждая себя снова и снова набором длинного выражения. Кроме того, такое краткое имя лучше видно в узких полях шаблона, а это немаловажно при визуальном поиске ошибок. Отметим, что при работе с конструктором введенные Вами формулы будут появляться в специальной группе переменных Формулы документа. Нетрудно догадаться, что кнопки Правка и Правка метки дают Вам возможность исправить текст формулы и имя метки соответственно, а кнопка Новая... до­бавляет пустую строку, в которую надо занести очередную формулу.

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

Кнопка Сохранить  предназначена для сохранения документа Word. Если Вы не внесли изменений и, не нажав эту кнопку, закрываете окно редактирования шаблона, будет выведено предупреждение о том, что документ не был сохранен, с возможностью сохранить его, не сохранять или вернуться к редактированию.

2.5.        Мастер запросов

Данный мастер включен только в версии с полным набором МАСТЕРОВ ERP-системы «КОМПАС». Вся основная работа с занесением данных в базу, их сбо­ром и обработкой проводится в системе «КОМПАС» на основе SQL - запросов.

Эти запросы, по большей части, доступны к изменению пользователем с правами доступа системного администратора во всех подсистемах ERP-системы «КОМПАС». Тем не менее, следует помнить, что большинство стандартных алгоритмов пакета также использует редактируемые запросы, поэтому ошибочная их корректировка или удаление могут привести к нарушению работы отлаженных процедур. По замыслу авторов программы, основная функция мастера запросов, вызываемого с помощью кнопки  панели инструментов или пункта Запросы пользователя меню Сервис, заключается в создании новых запросов для использования в нестандартных отчетах, функциях редактирования данных и бизнес - процедурах (см. 2.7. Мастер бизнес - процедур). Существует даже возможность создания аналогов табличных форм (см. 2.2. Мастер табличных форм), работающих не с реальными таблицами, а с наборами данных (DATASET), полученными в результате выполнения запросов. Для того, чтобы не запутаться во всем этом многообразии, в данном мастере имеется специальная возможность структурирования всего множества используемых запросов и создания новых групп (см. ниже) - специально для работы пользователей. Тем не менее, мы не исключаем и оптимизации существующих текстов, особенно в случае работы с нестандартными SQL - серверами, не предусмотренными в распространяемых версиях системы. Тем не менее, в этом случае умоляем - будьте аккуратны! Кстати, для безопасности в ряде подсистем хранение запросов разделено на несколько dat-файлов, а вызов мастера разделен на отдельные пункты меню, один из которых называется Запросы пользователя. Этот же пункт дублируется с помощью кнопки . Только это подмножество запросов подсказывается при определении пункта в администраторе меню (см. 1.1. Администратор меню).

Еще раз повторим, что редактирование запросов требует хотя бы начальных знания языка SQL (см. соответствующую документацию и учебники) и должно осуществляться только системным администратором.

Все запросы хранятся в файлах с расширениями dat. В стандартной поставке они чаще всего носят имя queries.dat. Файлы запросов разные для всех подсистем ERP-системы «КОМПАС». В некоторых подсистемах запросы разделены на несколько файлов, общей для которых является маска quer*.dat.

После входа в мастер Вы видите перечень всех доступных редактированию запросов (рис. 2.40.).

Рис. 2.40. Мастер запросов

 

Если в строке Группа запросов пусто, то Вы видите перечень всех запросов, доступных в данной подсистеме ERP-системы «КОМПАС». При желании можно облегчить себе поиск нужного варианта, просматривая перечень по группам, которые можно выбирать в верхней строке из раскрывающегося списка.

В правой части панели размещены следующие кнопки:

·       Новый... Выводит на экран окно редактирования (см. 2.5.1 Окно редактирования запроса), пустого текста без названия.

·       Новый из текущего — копирует все характеристики выбранного в списке щелчком левой клавиши мыши запроса и выдает скопированный запрос в окно редактирования для дальнейшего изменения.

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

·       Кнопка Удалить позволяет избавиться от устаревших вариантов.

·       Редактировать открывает данные выбранного в списке запроса в основном окне редактирования (см. 2.5.1).

·       Создать группу выводит Вас в окно редактирования группы (см. ниже) с незаполненным описанием, позволяя не только задать новое имя, но и перенести туда любые существующие запросы.

·       Изменить группу копирует в окно редактирования (рис. 2.41.) данные о выбранной группе запросов.

С помощью кнопок  и  производится перенос из общего перечня запросов (с помощью выпадающего списка можно осуществлять отбор по группам) в редактируемую группу и обратно. С помощью кнопок  и  такой же перенос осуществляется в режиме «все сразу».

 

Рис. 2.41. Мастер запросов, окно редактирования групп

2.5.1.     Окно редактирования запроса

В окне Редактирование запросов в зависимости от конкретного текста (см. ниже), Вы можете видеть от двух до шести закладок (рис. 2.42.).

Укажите псевдоним табличной формы (выберите из списка имеющихся), которая При использовании запроса в качестве справочника вызывается по кнопке Правка.

Возможность установить флажки в правой нижней части окна существует только для тех запросов, которые возвращают множество значений.

Флажок Редактируемый запрос как раз и отличает те из них, которые могут использоваться в качестве табличной формы для корректировки и ввода данных (подробнее см. 2.5.4. Некоторые особенности редактируемых наборов данных).

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

 

Рис.2.42. Мастер запросов

 

Наконец, флажок Использовать как справочник позволяет действительно использовать полученный в результате выполнения запроса набор данных в качестве справочника при редактировании других запросов или табличных форм, т. е. это полный аналог такого же флажка из Мастера табличных форм (см. 2.2.1. Закладка «Общие сведения»).

При нажатии кнопки  Параметры отображается форма, где можно задавать тип параметра (аналогично типу полей - см. 2.1.2. Закладка «Поля таблицы»), его значение и описание. Параметры, добавленные в поле Текст SQL, автоматически будут отображаться и в поле Список параметров. Не забудьте обязательно задать значение параметра по умолчанию, ибо только тогда Вы сможете оперативно тестировать запрос (см. ниже). Если Вы используете SQL-сервер, то можно добавлять и удалять параметры непосредственно кнопками Новый и Удалить. Параметры бывают входные и выходные, но выходные параметры имеют смысл лишь для хранимых процедур.

Макропараметр — это блок текста, подставляемый в запрос без изменений: точно в то место запроса, где этот макропараметр описывается. При нажатии кнопки  Макропараметры отображается форма, где можно задавать порядковый номер макропараметра, подставляемый им в SQL-запрос текст по умолчанию и краткое описание. В тексте запроса место использования макропараметра из передаваемого списка формальных значений помечается символами %S. Обрабо­тав при первом обнаружении такой пары символов первое значение из передаваемого перечня, программа как бы «забывает» о нем, и при встрече со следующей парой %S будет заменять ее на следующее значение. Если же Вам нужно использовать значение повторно, то приходится использовать запись %<номер>:S, где номер — это номер в перечне. Не забывайте: нумерация всегда начинается в списке с 0. Макропараметры появляются в перечне автоматически по мере появления вышеуказанных символов %S в тексте запроса. Тем не менее, после окончания редактирования текста, надо обязательно использовать кнопку , чтобы задать описания (иначе забудете смысл) и значение по умолчанию (в противном случае не будет проходить тест).

Кнопка  Создать процедуру нужна для создания подготовленных хранимых процедур на SQL - сервере (см. 2.5.3. Использование хранимых процедур).

Кнопка  Конструктор позволяет вместо прямого написания текста запроса создавать его в диалоговом режиме (см. 2.5.2. Конструктор запросов).

Кнопка  Обновление активна только при установленном флажке редактируемого запроса, а значит, за описанием мы отсылаем Вас к 2.5.4. Некоторые особенности редактируемых наборов данных.

Нажав на кнопку  Тест запроса, можно посмотреть результаты его работы, если запрос возвращает значение или набор данных.

·       Третья закладка - Поля (рис.2.43.). Как уже было сказано выше, она появляется, если только результатом работы запроса является множество значений. Так как при этом возникает набор данных — некоторый аналог временной таблицы и табличной формы одновременно, стоит задать некоторые его характеристики по аналогии с 2.1.2. Закладка «Поля таблицы». Конечно, тут нет изобилия возможностей мастера таблиц, т. к. набор полей и их тип однозначно определены соответствующими параметрами таблиц, из которых осуществляется выбор. Тем не менее, можно задать точность отображения числовых по­лей и придать им текстовый комментарий (описание), требования уникальности значения. К сожалению, для форм на основе запросов не существует таких развитых возможностей настройки поиска, фильтра и итогов, как для основных табличных форм. Тем не менее, указанные здесь текстовые описания всех полей запроса по Вашему желанию попадают в меню поиска и фильтра, и, кроме того, можно определить включать ли поле в условие поиска и простые итоги по всем записям (без отбора) получившегося DATASET, если установить в одном или нескольких полях соответствующий флажок. Впрочем, хотя эти возможности относятся не только к редактируемым наборам данных, но и к отчетам, и к справочникам, построенным на запросах, подробнее мы поговорим об этом в разделе 2.5.4.

Завершая же описание закладки Поля, отметим, что перечень полей можно получить только из текста запроса одним из двух способов: нажав кнопку Обновить список полей на данной закладке или кнопку  Тест запроса на закладке Текст SQL. Если после нажатия кнопки Обновить Вы получили пустой список, это значит, что запрос содержит ошибку, либо не установлены значения по умолчанию для параметров и макропараметров. Чтобы узнать ее содержание, воспользуйтесь кнопкой Тест. Только в случае заполнения списка полей Вам откроются последние три закладки окна редактирования запроса, связанные с описанием табличной формы.

Рис. 2.43. Мастер запросов, закладка Поля

·       Закладка Колонки служит для того, чтобы описать, как будут выглядеть на экране результаты отработки запроса. Это практически полный аналог настройки колонок табличной формы, разве что возможностей здесь поменьше. Поэтому за основным описанием отсылаем Вас в раздел 2.2.2. Мастер табличных форм. Закладка «Колонки». Обратите внимание на кнопку Права на выгрузку: нажатие на эту кнопку позволяет вывести на экран форму настройки прав доступа пользователей к использованию возможности экспорта данных (результатов выполнения запроса) в формат Excel. При запрещенном доступе к возможности экспорта соответствующая кнопка на панели инструментов табличной формы неактивна.

·       Закладка Инструменты предназначена для связывания с формой, получающейся на основе запроса, различных процедурных кнопок. Сама работа по добавлению и редактированию кнопок абсолютно аналогична той, что была описана в 1.4. Менеджер типов таблиц и 2.1.6. Зак­ладка «Спец. настройка». Отличие заключается в том, что добавлена возможность выбора изображения кнопки путем перетягивания из приведенного тут же стандартного набора.

·       Наконец, последняя закладка Форма (Рис. 2.44.) предназначена в основном для авторов системы, ибо это усложненный вариант визуализации набора данных, полученного в результате запроса. А именно: левая часть окна представляется в виде древовидного списка. Естественно, что осуществить такой показ можно только в том случае, если структура данных в самой исходной таблице (таблицах) уже предполагает такую иерархическую структуру. Поэтому мы будем объясняться на примере стандартной справочной таблицы ERP-системы «КОМПАС», в которой содержатся сведения о внешних партнерах. Она называется PL_TR, и в ней есть поля COD1 с уникальным кодом партнера, SUBCOD, содержащее номер группы, к которой относится тот или иной партнер, и PATH, в котором прописан весь путь по иерархии в стиле 2-7-1, где 2 - номер группы первого уров­ня, 7 - номер группы второго уровня (внутри предыдущей), 1 - номер группы третьего уровня.

Рис. 2.44. Мастер запросов, закладка Форма

Можно написать запрос для создания дерева в левой части окна «вручную», а можно сгенерировать его автоматически с помощью кнопки  Создать запрос, предварительно сделав все необходимые установки, которые осуществляются по номерам полей в результатах запроса. В первую очередь надо указать номер поля с уникальным ключевым значением (Ключевое поле). Так как поле COD1 в созданном нами основном запросе шло на первом месте, мы указали цифру 1. Затем указывается Отображаемое поле, т. е. то, из которого берутся в изображение дерева названия групп. Это у нас поле краткого наименования PYR3, которое стоит в перечне забранных в запрос полей на третьем месте. Номер поля, в котором хранится код группы, иначе Поля группировки, это 2 - номер поля SUBCOD в перечне. Разделитель в обозначении уровней иерархии при таком описании дерева не играет роли, т. к. мы сейчас создаем его двухуровневым. Если бы мы базировали дерево на поле PATH, то стоило бы задать «-», как это показано на рис. 2.44. Наконец, два заголовка — это слова, которые пишутся для того, чтобы обозначить узел, в котором мы можем смотреть полный перечень всех записей, и узел, открыв который мы переходим к работе только с верхним уровнем иерархии, после чего и осуществляем «спуск по дереву» (см.раздел «Общие правила работы», п. Древовидные справочники).

Разграничение доступа пользователей к кнопкам экспорта данных в запросных формах

Нажатие на кнопку Права на выгрузку выводит на экран форму настройки разграничения доступа к возможности экспорта данных для выбранной запросной формы. Описание порядка настройки прав доступа приведено в п.2.2.1.1.

2.5.2.     Использование хранимых процедур

При работе с SQL-серверами очень часто бывает целесообразным использовать вместо формируемых на клиентском компьютере запросов заранее скомпилированные хранимые процедуры. Чтобы указать, что должна использоваться такая процедура, как это ни странно, не надо устанавливать на закладке Общие сведения (см. 2.5.1. Окно редактирования запроса) переклю­чатель Хранимая процедура, нужно выбрать вариант Простой запрос, а в качестве Текста SQL указать буквально одно слово — имя процедуры.

Спрашивается, откуда же тогда возьмется на сервере нуж­ный код? Все очень просто. В мастере Вам придется подгото­вить еще один запрос с другим псевдонимом, для которого как раз переключатель Хранимая процедура и устанавливается в долгожданное положение. После этого в специальном поле ввода указывается имя процедуры - то самое, о котором гово­рилось выше.

Понятно, что данное положение переключателя программа позволяет выбрать только, если Вы определили предварительно работу с базой данных (см. 2.5.1. Окно редактирования запроса), хранящейся на SQL - сервере.

Сам текст запроса начинается с оператора CREATE PROCEDURE <имя процедуры> AS. Далее следует собственно тело запроса. Когда запрос готов, остается только нажать на закладке Текст SQL  кнопку  (см. 2.5.1. Окно редактирования запроса), и процедура готова к использованию.

При установке стандартной поставки серверной версии ERP-системы «КОМПАС» компиляция всех подготовленных авторами хранимых процедур производится автоматически.

2.5.3.     Некоторые особенности редактируемых наборов данных

Особенно подробно стоит поговорить о подготовке запро­сов для редактируемых наборов данных (см. 2.5.1. Окно ре­дактирования запроса), являющихся альтернативой стандартным табличным формам. Их особенность заключается в том, что они не только визуализируют отобранные записи таблицы, но и позволяют записать результаты сделанных изменений. Режим записи необходимо настроить.

Настройка осуществляется после нажатия кнопки  Обновление на закладке Текст SQL (см. 2.5.1. Окно редактиро­вания запроса), которое приводит к открытию окна Обновление запроса (рис. 2.46.) с четырьмя закладками.

Три из них: Модификация, Вставка и Удаление - доста­точно тривиальны. Здесь можно «вручную» написать текст SQL-запроса для изменения откорректированных записей, со­здания новых по результатам добавления строк в процессе редактирования и удаления, указанных пользователем соответ­ственно. Расскажем только об одном соглашении. Для исполь­зования в параметре WHERE при сравнении данных в полях по принципу «было/стало» для старых значений используются те же имена полей запроса, но с префиксом OLD_.

Гораздо интереснее первая закладка Таблицы и поля, кото­рая позволяет автоматизировать процедуру написания всех трех текстов сразу. Здесь в первую очередь необходимо выбрать основную (ведущую) таблицу для модификации. После этого два соседних окна Ключевые поля и Обновляемые поля сразу же заполняются полным перечнем всех полей запроса, причем все они выбраны к использованию, что, естественно, совер­шенно неосмысленно. Поэтому надо выбрать только те ключевые поля (по совпадению старых и новых значений в которых производится принятие решения об удалении и модификации записей), которые действительно таковыми являются. Выбор единственного поля производится щелчком по нему левой кла­виши мыши. Выбор еще одного поля (без изменения состоя­ния остальных) тем же действием, но с одновременным нажа­тием клавиши Ctrl (стандартные соглашения Windows). Аналогичным образом помечаются во втором окне только те поля, в которые действительно надо заносить значения.

Рис. 2.46. Мастер запросов, форма обновления запроса

Когда выбор закончен, следует нажать кнопку  Создать запросы, и после этого на соседних закладках Вы сможете увидеть все три необходимых текста. Естественно, что дей­ствительно интересные случаи полной автоматизации не под­даются. Тут-то Вам и помогут режимы корректировки автома­тически подготовленных SQL-текстов.

Если Вы хотите отложить запись изменений в базу до окон­чания редактирования всей формы запроса в целом, то на закладке Текст SQL (см. 2.5.1. Окно редактирования запроса) надо установить флаг Кэшировать измене­ния. В противном случае они сразу же после ввода в поле формы будут переписаны на сервер и доступны другим пользова­телям.

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

Так же, как и в обычных табличных формах, здесь имеется возможность использовать фильтр  и поиск . Однако в запросных формах нет такой широкой возможности регулировки условий отбора (см. 2.2.3. Закладка «Фильтр/поиск»). В перечень автоматически попадают все поля набора данных, даже те, которые не визуализированы в качестве колонок фор­мы, с теми комментариями, которыми они были снабжены на закладке Поля (см. 2.5.1. Окно редактирования запроса).

Можно также подводить итоги , но без предваритель­ного отбора записей, только по всем строкам набора данных, и в простых выражениях, т.е. выдаются просто суммы значений тех полей, для которых на закладке Поля установлен соот­ветствующий флаг (см. 2.5.1. Окно редактирования запроса).

Зато гораздо лучше обстоит дело с сортировками. Посколь­ку это набор данных, а не реальная таблица, то нет никакой необходимости иметь соответствующие индексы (см. 2.1.3. Закладка «Индексы» и 2.2.4. Закладка «Сортировки»). Поэтому можно переупорядочить DATASET по любой колонке, для чего достаточно щелкнуть левой клавишей мыши на ее заголовке.

Наконец, очень удобной оказывается автоматически под­ключаемая функция поиска набором префикса (иначе говоря, поиска по мере ввода), которая включается кнопкой . После нажатия кнопки встаньте на любую колонку и начинайте наби­рать искомый в ней текст, или число, или дату на клавиатуре.

2.6.        Мастер отчетов

Данный мастер включен в версии с полным набором МАСТЕРОВ ERP-системы «КОМПАС».

Мастер отчетов, который вызывается нажатием кнопки  на панели инструментов или выбором одноименного пункта меню Сервис, служит для создания, редактирования и удале­ния описаний (шаблонов) отчетов, иначе говоря, различного вида ведомостей. Шаблоны отчетов отличаются от шаблонов печатных форм (первичных документов) неопределенным ко­личеством строк данных, переменной шириной печатного до­кумента, которую необходимо делить на поперечные подстраницы (в дальнейшем мы будем называть их фрагменты) при печати на стандартный формат бумаги, неопределенным количеством итогов и субитогов и т. д.  Пожалуй, автомати­ческое разбиение текста на фрагменты и иерархические итоги являются главными отличительными характеристиками Мастера отчетов.

Шаблон отчета состоит из псевдонима, краткого наимено­вания, собственно описания отчета и других настроек.

После запуска мастера все существующие шаблоны отче­тов отображены в списке. Список состоит из двух колонок: Псевдоним и Описание (рис. 2.47.). Щелчок левой клавишей мыши по заголовку любой колонки приводит к переупорядо­чиванию списка по алфавиту ее содержимого. Псевдоним от­чета — это наименование, с которым работает программа. Он может не совпадать с названием таблицы или запроса, по ко­торым строится отчет. Псевдоним отчета должен быть уникальным. Описание отчета — это комментарий, поясняющий назначение отчета. Он может включать в себя любые символы. Все шаблоны отчетов находятся в специальном файле с рас­ширением dat. Такой файл для мастера отчетов в стандартной поставке имеет имя repman.dat. В стартовом окне мастера отчетов расположены следую­щие кнопки:

 

Рис. 2.47. Мастер отчетов

Кнопка Сервис позволяет дополнить список DAT-файлов, из которых будут браться шаблоны отчетов: в дополнение к REPMAN.DAT может быть указан один или несколько файлов. Один из этих файлов назначается файлом по умолчанию: именно в него будут записываться новые шаблоны, а в случае наличия в разных файлах нескольких отчетов с одинаковым псевдонимом для печати будет браться шаблон из файла по умолчанию.

Следует обратить внимание, что перечень DAT-файлов хранится в конфигурации, что позволяет для разных баз данных использовать разный набор шаблонов отчетов. В то же время, файл REPMAN.DAT всегда присутствует в перечне и не может быть удален.

·       Новый отчет. Нажав на эту кнопку, Вы запустите проце­дуру формирования нового отчета. При этом Вам будет предо­ставлена возможность формирования нового простого отчета -  на основе текущего или на основе табличной формы.

Намерение сформировать новый отчет «с нуля» приве­дет Вас в основное окно редактирования отчета (Описание шаблона отчета), состоящее из четырех закладок (см. ниже).

Попытка сформировать новый отчет на основе текущего приведет к копированию всех данных (включая псевдоним) из выбранного мышью в перечне шаблона и к выдаче на экран основного окна редактирования (см. ниже) для коррек­тировки.

Формирование отчета на основе табличной формы (см. 2.2. Мастер табличных форм) начинается с выбора псевдо­нима формы из предлагаемого списка. После этого автоматически формируется шаблон отчета с неиерархической структурой колонок, перечень которых и источники данных полностью совпадают с выбранной табличной формой. Ника­кие итоги там не описаны. После этого получившийся шаб­лон, псевдоним которого совпадает с псевдонимом табличной формы, подается Вам на редактирование все в том же основ­ном окне (см. ниже).

Также можно построить новый отчет с использованием возможностей программы Free Report.

·       Кнопка Импорт шаблона вызывает диалоговое окно Вы­бор файла с шаблонами отчетов, в котором можно выбрать dat-файл, содержащий шаблоны отчетов. При выборе коррект­ного файла появится окно Импорт шаблона отчета. Выбрав в этом окне шаблон или несколько шаблонов – отмечая второй и последующие, удерживая нажатой клавишу Ctrl. Нажав на кнопку ОК, Вы добавите новый шаблон (шаблоны) в текущий перечень. Импорт шаблона — признанное средство обмена результатами труда между разными разработ­чиками.

·       Кнопка Удалить шаблон позволяет очистить список от ненужной информации.

·       Кнопка Редактировать отображает окно Описание шаб­лона отчета (см. ниже), позволяющее произвести все необхо­димые настройки.

·       Кнопка Построить отчет позволяет провести тестовое фор­мирование отчета по шаблону, после чего он будет выведен для просмотра и печати. Если источником данных является программа (см. 2.6.1. Закладка «Общие сведения»), то ре­зультатом теста является только заголовок. Такие же действия позволяет осуществить кнопка  Тест на любой закладке окна Описание шаблона отчета (см. ниже).

2.6.1.     Закладка «Общие сведения»

Первая закладка открывающегося окна Описание шаблона отчета называется Общие сведения (рис. 2.48.) и содержит самые основные параметры отчета: уже опоминавшиеся уникальный псевдоним и текстовое описание, а главное — характеристику источника данных для отчета. В качестве источника данных могут выступать любая Таблица базы данных, SQL-запрос или он Задается программно.

Таблица является самым простым для понимания источником данных для отчета, но и самым малоинтересным, т. к. очень часто для получения действительно ценной информации нужны поля хотя бы нескольких таблиц (впрочем, в 2.6.3. За­кладка «Структура заголовка» Вы увидите, что и в этом смысле кое-какие возможности имеются). Как только Вы устанавливаете эту позицию переключателя, у Вас появляется возможность выбрать нужную таблицу из раскрывающегося списка.

Расположенная рядом кнопка Описание включает основное окно редактирования Мастера таблиц (см.п. 2.1), в котором Вы можете создать недостающий источник данных. А уж как они туда будут попадать, Вам придется решать потом с помощью мастеров табличных (см. п.2.2), эк­ранных (см. п.2.3) форм и Администратора меню (см. п.1.1). Кроме того, Вы можете (для нормального отчета это просто необходимо) задать список (через точку с запятой) полей, по которым будет проводиться сортировка данных. Будьте внимательны при упорядочивании — его нужно тщательно продумать, чтобы затем сформировались красивые субитоги (см. 2.6.4. Закладка «Итоги/субитоги»). С помощью кнопки  эти поля можно выбрать из полного перечня полей ука­занной выше таблицы. В следующем открывшемся поле ввода можно описать условия отбора записей таблицы в отчет. Расположенная рядом кнопка  вызовет Конструктор формул (см.п. 8) для того, чтобы облегчить Вам со­ставление условия, которое, естественно, должно возвращать значение логического типа, а кнопка  позволит тут же проверить синтаксис сделанной записи.

Рис. 2.48. Мастер отчетов. Описание шаблона

Условие объединение в одну строку также записывается с помощью конструктора формул. Записи источника данных, идущие подряд, для которых указанная здесь формула дает одинаковое значение, будут объединены в одну строку отчета. При этом числовые значения, как правило, суммируются, а из других значений берется первое непустое. Конкретный режим заполнения объединенной строки отчета задается при описании колонок отчета. Особенно важен режим объединения в одну строку при формировании отчета в режиме шахматки.

 

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

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

Кнопка Тест позволяет построить отчет по шаблону еще до сохранения сделанных изменений с целью проверки правильности сделанных настроек.

Гораздо большее разнообразие вариантов отчетов дает ис­пользование такого источника данных, как SQL-запрос. С его помощью можно легко собирать данные из нескольких таблиц. При установке переключателя в эту позицию, открывается кнопка  Выбрать. Нажав на нее, Вы попадете в основное окно мастера запросов (см. 2.5), в котором кнопка Выход  заменена на кнопку ОК.  Вы можете тут же подготовить новый запрос (понятно, что он должен возвращать множество значений — см. 2.5.1 Окно редактирования запроса), а можете просто выбрать уже существующий  запрос  из перечня с помощью соответствующей кнопки. Если запрос расположен не в файле с именем QUERIES.DAT, то имя файла должно быть указано в поле Имя DAT-файла. Так же, как и в случае табличного источ­ника (см. выше), Вы можете ограничить отбор записей в отчет с помощью условия в нижнем поле ввода. Хотя, конечно, в данном варианте эта возможность несколько избыточна, ибо в большинстве случаев отбор Вы можете производить непосред­ственно в тексте запроса. Тем не менее, иногда такие вещи могут понадобиться, поэтому к Вашим услугам по-прежнему Конструктор формул. Если у запроса имеются параметры, то в начале формирования отчета на экран будет выводиться окно, в котором им следует задать конкретные значения. На­звания параметров в этом окне будут взяты из текстового ком­ментария к параметрам запроса (см. 2.5.1. Окно редактирова­ния запроса). За счет этого можно, например, собирать в отчет данные за желаемый диапазон дат, не «откачивая» лишние данные с сервера. Параметризация отбора данных — еще одна возможность, выгодно отличающая отчеты, построенные на запросах, от отчетов, построенных на таблицах, где параметры тоже имеются (см. 2.6.2 Закладка «Шапка/подвал»), но уменьшить время формирования отчета с их помощью нельзя.

Источник данных Задается программно предназначен исключительно для авторов пакета. Они пользуются им для самых сложных случаев, когда нужно реализовать неординарный программный алгоритм. Зачем же тогда такие отчеты реализуются через мас­тер и доступны пользователям в общем перечне? Дело в том, что все-таки Вы можете влиять на печать отчета, настраивая его параметры, удаляя те или иные колонки или меняя их визуальное представление (см. 2.6.3. Закладка «Структура заголовка»), а также создать для него специфические подвалы и шапки (см. 2.6.2. Закладка «Шапка/подвал»).

Отметим также, что при модификации главного меню раз­дела (см. 1.1. Администратор меню) и задании отчета в качестве вызываемого объекта, Вы получаете возможность выбрать один из тех отчетов, в которых в качестве источника данных используется  таблица или запрос. Отчеты с источником данных Задается программно  Вам в этом случае недоступны.

Самым нижним элементом на закладке Общие сведения является кнопка  Настройки печати. Вызываемое ею окно позволяет выбрать шрифт для отчета, ориентацию и формат листа, различные виды отступов, а также указать, нужно ли печатать в «теле» текста вертикальные разделительные линии, разделители в шапке страницы и специальную полосу под шапкой, в которую вставляются номера колонок.

2.6.2.     Закладка «Шапка/подвал»

На данной закладке (рис. 2.49.) можно откорректировать печатную форму отчетов за счет настройки некоторых ха­рактеристик, не относящихся к основному содержанию таблицы.

Рис. 2.49. Мастер отчетов, описание шаблонов, закладка Шапка / подвал

 

В верхней части закладки можно установить флажки, опре­деляющие, надо ли предварять отчет в целом заголовком, и должен ли этот заголовок печататься на отдельном листе. Кро­ме того, можно указать, что перед заголовком отчета заголовок страницы не печатается. Таким образом, установив все три флажка, Вы получаете нормальный титульный лист, который потом (см. ниже) можете описать.

Здесь же можно установить наличие «подвала» у отчета в целом, а также подвала и заголовка у каждой отдельно взятой страницы. В зависимости от установки двух соседних флаж­ков, страничные подвал и заголовок могут быть напечатаны на каждом фрагменте страницы или только на самом левом. Напоминаем, что термин «фрагмент» относится к той ситуации, когда страница отчета настолько широка, что не помеща­ется на стандартный лист бумаги. Поэтому «КОМПАС» «разре­зает» ее поперек на фрагменты и печатает их один за другим с тем, чтобы пользователь мог их потом склеить в один широ­кий лист. Характерными представителями этого класса явля­ются, например, бухгалтерские журналы-ордера (см. книгу «Управление финансами и документооборот»).

Для формирования заголовков и подвалов Вы можете со­брать данные из базы с использованием SQL-запроса, имя ко­торого вводится в специальном боксе. Правила работы с этим боксом в точности соответствуют правилам описания SQL-запроса для отчета в целом (см. 2.6.1. Закладка «Общие све­дения»), включая немедленный выход в Мастер запросов с помощью соседней кнопки . Отметим только две особен­ности. Во-первых, если Ваш запрос будет возвращать множе­ство строк, то для формирования заголовков и подвалов все равно будут доступны данные только из самой первой из них. Во-вторых, параметры запроса будут добавлены к параметрам запроса для отчета в целом, и будут появляться на экране перед началом формирования текста. Если же имена параметров в обоих запросах совпадут, то программа в окне ввода даст для каждого такого совпадения ровно одну строчку, а введенное значение будет использовать и там, и там.

Дополнительные возможности по заданию данных для печа­ти подвалов и заголовков открываются при нажатии кнопки Параметры отчета. Здесь Вы можете описать процедуру ввода дополнительных данных, даже если не используете SQL-за­просов ни для описания заголовков, ни для создания текста отчета в целом. Перед Вами открывается окно с перечнем пара­метров, который с помощью кнопок Новый и Удалить Вы можете пополнять новыми строками или очищать от устарев­ших. Вам надо ввести имя параметра, его тип (дата, число и т. п.), текстовое описание, которое будет выдаваться пользовате­лю, и значение по умолчанию. Если имя параметра совпадет с именем какого-нибудь параметра одного из SQL-запросов, то это не приведет к созданию новой строки в окне, появляющем­ся перед пользователем в процессе работы. Если параметры отчета совпадают по имени с параметрами запросов, использованных в отчете, то значения параметров отчета подставляются в запрос перед его выполнением. Значения параметров отчета, а также параметров запросов, которые не совпадают по имени с параметрами отчета, запрашиваются перед формированием отчета. При этом в качестве исходного значения предлагается то, которое установлено при описании параметра отчета. Вы можете исключить некоторые параметры из окна ввода параметров, если при описании параметра установите флажок Скрытый параметр. Кроме того, при печати отчетов из некоторых табличных форм параметрам отчета с предопределенными именами автоматически даются значения с использованием данных из текущей строки табличной формы, и эти параметры также объявляются скрытыми. Если скрытыми оказываются все параметры, то окно для ввода параметров перед формированием отчета не появляется. Еще одна интере­сная особенность - имена параметров можно использовать в качестве переменных условия отбора записей (см. 2.6.2. За­кладка «Общие сведения»). Таким образом, хотя при исполь­зовании таблиц в качестве источника данных, Вы «закачиваете» с сервера информацию в полном объеме, но количество строк на печати с помощью параметров ограничить можно.

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

Как Вы уже догадались, кнопка  Вставить формулу при­зовет Вам на помощь Конструктор формул (см. соответствующую главу раздела «Общие правила работы»), причем в отдельной группе переменных Вы увидите все поля описанно­го выше запроса. Кроме того, в группе Параметры отчета Вам будут предложены такие полезные переменные, как номер страницы, название отчета и номер фрагмента, которые позволят Вам осуществить красивую нумерацию страниц текста и их частей. Кнопка  Проверить даст Вам возможность проконтроли­ровать синтаксис введенных формул, а кнопка  Редакти­ровать в окне даст Вам возможность увеличить поле редакти­рования текущей закладки, что особенно удобно, если Вы про­ектируете красивый титульный лист.

2.6.3.     Закладка «Структура заголовка»

Редактирование основной информации, описывающей вид и заполнение «тела» отчета, производится на закладке Структу­ра заголовка (рис.2.50.), которая отчетливо разделена на две группы. В нижней группе представлен иерархический перечень всех колонок отчета - Дерево заголовка, в котором перечислены все колонки отчета. Некоторые колонки могут быть объединены в группы, имеющие общий вышестоящий заголовок. Такие группы, в свою очередь, могут быть объединены в более общие группы и т.д. Все группы и отдельные колонки, в конечном итоге, включаются в одну условную группу, которая называется Верхний уровень.  Если Вы только приступаете к созданию нового документа, то этот перечень пуст. Подчеркнем еще раз, что очень важным является слово «иерархический», так как это означает, что можно делать объединяющие заголовки. Напри­мер, на рис.2.50 есть колонка От кого, которая делится на колонки Код и Имя, причем и эти колонки, в свою очередь, могли бы делиться на другие.  И таких уровней иерархии может быть сколько угодно, причем, как видите, в каждом конкретном месте отчета число их разное - в общем, все, как в нормальной ведомости. Понятно, что данными заполня­ются только колонки самого нижнего уровня.

С помощью кнопки Добавить элемент можно ввести но­вую колонку текущего  уровня иерархии. С помощью кнопки Удалить - убрать ту колонку любого уровня, которую Вы пред­варительно выделили нажатием клавиши мыши. Не надо уда­лять колонки в отчетах, описываемых программно. Если Вы не хотите их видеть, то существуют другие средства (см. ниже).

Важная кнопка Добавить в подуровень создает новый эле­мент внутри выделенного, т. е., если Вы нажмете ее, предвари­тельно выбрав щелчком левой клавиши мыши элемент первого уровня иерархии, то внутри него будет создан подчиненный ему элемент второго уровня. Если выбран элемент второго уровня, то будет создан элемент третьего и т. д.

 

 

Рис. 2.50. Мастер отчетов, описание шаблонов, закладка Структура заголовка

 

Знакомые нам кнопки  и  позволяют менять взаим­ное расположение колонок, но при этом не дают возможности вывести их за пределы подуровня, т. е. схема подчиненности остается неизменной. Вы можете менять порядок колонок у всех отчетов, даже определяемых программно. Как видите, влияние пользователя на ведомости, написанные авторами системы «КОМПАС», не так уж и мало. Нужно только отметить, что в некоторых «программных» отчетах, например, в бухгалтерском журнале-ордере, одной колонке, описанной в шаблоне, на са­мом деле соответствует неопределенное число колонок в итоговой ведомости. Сколько было корреспондирующих счетов — во столько колонок и превратится счет из шаблона журнала-ордера. Так вот, перемещая одну такую колонку шаблона, Вы перемещаете все колонки формируемой печатной формы. То же касается и всех остальных параметров колонки (см. ниже).

Для отчетов, основанных на таблицах или запросах, акти­вируется еще одна кнопка  Колонки по всем полям, кото­рая включает на самый верхний уровень иерархии все не включенные до сих пор в отчет поля порождающей таблицы или запроса. Заметим, что если в случае использования SQL-запроса описа­ния элементов и тексты заголовков (см. ниже) приравниваются к псевдониму поля, то при использовании таблицы они сразу принимают осмысленный характер, за счет использования ком­ментариев к полям, заданных в мастере таблиц (см. 2.1.2. Закладка «Поля таблицы»).

Верхняя группа закладки Структура заголовка разбита в свою очередь еще на три закладки, позволяющие описать колонку, выбранную нажатием левой клавиши мыши в описан­ном выше древовидном перечне. Сразу скажем, что закладка Спец. настройка предназначена для авторов «КОМПАС» и опи­сывать ее мы не будем.

На левой закладке (рис. 2.50.), которая называется Определе­ние элемента. Вы можете изменить описание элемента (то самое словосочетание, которое Вы видите в иерархическом перечне), разрисовать заголовок колонки, задать способ его выравнивания: к левой границе колонки, к правой или же по центру. Обращаем Ваше внимание, что спо­соб выравнивания относится именно к заголовку, но никак не к печатающимся данным.

Флажок Вертикальная надпись позволяет расположить текст заголовка вертикально. Если Вы хотите, чтобы заголовок элемента автоматически разбивался на несколько строк, в зависимости от ширины колонки, установите флажок Автоматическая разбивка

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

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

Вторая - и самая важная - закладка Колонка отчета (рис. 2.51.) разбита, в свою очередь, еще на три закладки (не волнуйтесь, больше деления не предвидится), причем закладка Спец. на­стройка носит, как обычно, чисто служебный характер. За­метим, что описать можно только элементы самого нижнего уровня иерархии отчета. Колонки верхнего уровня — это всего лишь заголовки, не более.

 

Рис. 2.51. Мастер отчетов, описание шаблона, настройка Структуры заголовка

Закладка Определение имеет смысл только для отчетов по таблицам и запросам. Прежде всего, здесь указывается источник данных для колонки:

·       поле таблицы/запроса. Конкретное поле нужно выбрать из раскрывающегося списка. Если для поля предусмотрен список допустимых значений с расшифровкой, то вместо значения поля в отчет можно включить расшифровку: для этого имеется флажок Расшифровка значения;

·       выражение. Формула для вычисления значения формируется с помощью конструктора формул. Если установлен флажок По колонкам, то формула не задается, а значением в колонки является порядковый номер колонки отчета;

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

-       Флажок Суммировать активен, если в шаблоне отчета определено условие объединения строк. Если флажок установлен, то числовое значение в колонке будет получено суммированием по всем значениям полей или по результатам вычисления выражения для всех записей источника данных, включенных в строку отчета. Если флажок не установлен, будет взято первое непустое значение.

-       Флажок Округлять включает режим округления числового значения в колонке. Уровень округления задается в виде целого числа. Положительные числа указывают число десятичных знаков после запятой в округленном значении, отрицательные числа позволяют округлять значения до десятков, сотен и т.д. При нулевом значении округление производится до целых.

Редактирование закладки Вид имеет смысл и для про­граммно определенных отчетов. Здесь можно определить ши­рину колонки в символах (кстати, если Вы зададите для текстовой колонки маленькую ширину, то, встретив во время формирования отчета не помещающееся в отведенное место значение, программа «разнесет» его на несколько строк), спо­соб выравнивания данных (по центру, влево, вправо и по умолчанию) и шаблоны вывода (см. 2.2.8. Форматирование представления данных) для нормального, нулевого и отрицательного значения колонки с числовым содержимым. Заме­тим, что по умолчанию все числа выравниваются направо, даты — по центру, а символьные строки — налево. Кроме того, следует знать, что ноль в боксе ширины означает бук­вально «сколько получится», т. е. ширина колонки определя­ется размерностью поля в базе данных или запросе. Прият­ную возможность приукрасить отчет дает нам переключатель Повторяющиеся значения. При желании Вы можете заме­нить повторяющее предыдущую строку значение колонки на пустоту или на символы -//-.

Настройки на закладке Шахматка позволяют размножить текущую колонку или группу колонок в нескольких экземплярах, в зависимости от содержания отчета. Для того, чтобы размножение было возможно, для каждой такой колонки или группы колонок следует указать псевдоним SQL-запроса: выбирается из перечня с помощью соответствующей кнопки. Если запрос расположен не в файле с именем QUERIES.DAT, то имя файла должно быть указано в поле Имя DAT-файла. Количество колонок или групп колонок в отчете будет равняться числу записей, которое будет получено этим запросом. При написании запроса следует учитывать, что автоматической подстановке подлежат лишь те параметры запроса, которые совпадают по имени с параметрами отчета. Если размножаемая колонка сама входит в размножаемую группу, то запрос будет выполняться для каждого экземпляра группы. Для того, чтобы результаты запроса при этом отличались, в запросе можно использовать параметр, совпадающий по имени с ключевым полем источника данных, указанным для вышестоящей размножаемой группы.

Дополнительно при описании шахматки следует заполнить следующие настройки:

·       Ключевое поле таблицы указывает то поле источника данных, значение в котором будет сравниваться с первым по порядку полем в запросе для размножения колонок. В зависимости от того, в какой записи запроса найдется значение, равное значению ключевого поля в источнике данных, будет заполняться один из экземпляров колонки или группа колонок. Если совпадения не будет ни с одной из записей запроса, то ни один из экземпляров колонок не будет. Иногда такой вариант является вполне подходящим, но если для некоторого отчета он является недопустимым, следует очень внимательно подходить к написанию запроса для размножения колонок: в нем должны быть записи для всех данных, которые будут включены в отчет.

Следует учитывать, что если для шаблона отчета не указано условие объединения записей, то размножение колонок приведет к тому, что в каждой строке отчета будет заполняться только один из экземпляров колонки или группы колонок. Указав условие объединения, Вы можете получить шахматку в привычном виде: в каждой строке будут заполнены несколько колонок, для которых среди объединяемых записей источника данных нашлись подходящие данные.

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

2.6.4.     Закладка «Итоги/субитоги»

Редактирование данной закладки (рис. 2.52.) также имеет смысл только для отчетов с источником данных таблица или SQL-запрос.

Рис. 2.52. Мастер отчетов, описание шаблона, закладка Итоги / субитоги

Для дальнейшего изложения материала нам, прежде всего, следует ввести понятие группы итогов. Под этим термином понимается некое подмножество записей отчета, объединенное одинаковыми значениями определяющих полей таблицы или запроса. Например, мы печатаем платежную ведомость по всем сотрудникам предприятия. Тогда в группу итогов по от­делу будут входить все строки отчета, в которых поле Отдел заполнено одним и тем же номером. Ярко выраженный случай — это группа итогов по отчету в целом. В нее входят все записи отчета.

Очевидно, что все группы итогов иерархически вложены друг в друга. Поэтому для наглядности итогов очень важно, как это уже говорилось в 2.6.1. Закладка «Общие сведения», правильно выбрать порядок сортировки записей отчета. Если Вы хотите подводить итоги начислений по отделу, а внутри каждого отдела по табельным номерам, то на закладке Общие сведения должен быть выбран порядок сортировки «Отдел; табельный номер», иначе в том случае, когда сотрудник работает по совместительству в нескольких отделах, итоги по подразделениям окажутся неправильными. Если же Вам важнее итоги по каждому сотруднику, а уж во вторую очередь Вам хочется знать, сколько он получил в том или ином отделе, нужно выбрать сортировку «табельный номер; от­дел» и по-другому определить вложенность групп итогов.

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

В каждом заголовке и подвале может быть сколько угодно полос, иначе говоря, строк. В самом деле, иногда удобно быва­ет разместить номер все того же отдела в верхней строке, а наименование под ней. Точно так же итоги: в верхней полосе подвала группы мы размести разместим сумму начислений, а под ней текстовый комментарий или разделительную строку.

Наконец, каждая полоса может состоять из нескольких эле­ментов. Можно было бы сказать, что один элемент соответ­ствует одной колонке. В некотором роде это верно, вот только содержание элемента, может быть и не связано с конкретной колонкой (например, текст «Итого»), а располагаться он будет на «территории» сразу нескольких колонок отчета. Можно ска­зать и так: элемент - это кусочек итоговой полосы.

 Окно закладки Итоги/ субитоги разбито, как это видно на рис. 2.52, на две части. В левой из них перечень групп итогов, размещаемый по принци­пу: самые общие итоги находятся в самой верхней строчке. Кнопка Новая группа позволяет пополнить перечень, а Уда­лить — избавиться от неудачно продуманных итогов. Кнопки  и  перемещают выбранную мышью группу итогов в иерархии групп. Наконец, кнопка  Итоги по всем колон­кам позволяет оперативно, без долгого редактирования, опи­санного ниже, создать итоговую группу с однополосным под­валом, в который для всех числовых колонок будет включено суммирование, а поясняющий текст будет отсутствовать.

В правой части окна расположены три закладки. Закладку Спец. настройка мы рассматривать не будем, А вот на за­кладке Определение группы можно задать название и вы­ражение, определяющее группу. Если с названием все ясно, то понятие определяющего выражения стоит раскрыть поподроб­нее. Здесь задается способ вычисления того значения, при из­менении которого подводятся итоги, печатается подвал закры­ваемой и заголовок открываемой группы записей. Чаще всего в данном боксе просто набирается имя поля, при изменении которого надо печатать итоги. Для итогов по отделу из приве­денного выше примера это будет имя поля, содержащего номе­ра отдела. Для итогов по всем записям отчета принято ставить 1. Это выражение неизменно для любой записи. Как Вы уже догадались, кнопка  вызывает Конструктор формул (см.книгу «Общие правила работы»), а кнопка  – проверку набранного выражения.

Здесь же имеется поле ввода для Условия включения итоговых полос и поле ввода для Условия включения полос заголовков. Если в этих полях записана формула, то она должна возвращать логическое выражение: итоговые полосы или полосы заголовков будут включены в отчет только в том случае, если хотя бы для одной записи, включенной в группу, формула даст значение ИСТИНА.

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

На закладке Заголовок/подвал размещены два окна: одно для редактирования заголовка выбранной группы итогов, а вто­рое, соответственно, для подвала. Каждое из окон состоит из перечня полос и кнопок Новая, добавляющей еще одну поло­су и автоматически открывающей при этом окно редактирова­ния (см. ниже), Удалить, значение которой ясно из названия, Пробел, добавляющей пустую полосу, которая служит исключительно для отделения одной группы от другой, и Редактировать, открывающей окно редактирования полосы, выбранной в перечне щелчком левой клавиши мыши. Подробности можно найти в следующем разделе «Окно редактирования полосы заголовка или подвала».

Окно редактирования полосы заголовка или подвала

Окно редактирования полосы подвала группы, как уже отмечалось выше, можно открыть по кнопке Редактировать и состоит из трех закладок (рис. 2.53.). По уже сложившейся доброй традиции мы опустим описание закладки Спец. настройка, на которой содержится служебная информация.  На странице Определение полосы расположен ряд настроечных флажков. Первая группа флажков используется как для полосы заголовка, так и для итоговой полосы. Эти флажки определяют, следует ли для данный полосы печатать разделительные линии между колонками, рамку таблицы, а также линию сверху и снизу.

Вторая группа флажков используется только для итоговой полосы:

·       флажок итоги по всем записям действует в том случае, если в шаблоне отчета задано условие отбора записей. Как правило, итог подводится по тем записям, которые включены в отчет. Однако, если установлен данный флажок, то итоги подводятся по всем записям источника данных без учета условия отбора строк;

·       флажок не подводить итоги под группой из одной строки позволяет установить это условие для каждой полосы отдельно, тогда как аналогичный флажок при описании группы действует одновременно для всех полос;

·       флажок не подводить итоги под пустой группой дополняет флажок итоги по всем записям: если все записи, включенные в группу, не удовлетворяют условию отбора записей, то для того, чтобы итог не подводился под такой пустой группой, наряду с флажком итоги по всем записям надо установить данный флажок;

·       назначение флажка не подводить итоги в конце отчета понятно из названия;

 

Рис. 2.53. Мастер отчетов, настройка отображения итогов подвала группы

Закладка Список элементов полосы состоит из трех частей. В левом нижнем окошке виден перечень уже введенных элементов полосы. В правом нижнем расположен перечень колонок отчета и признаки их связи с элементами итогов. Между этими окнами расположен ряд кнопок, с помощью которых задается расположение элементов полосы под/над конкретны­ми колонками отчета. Кнопка Удалить позволяет убрать лиш­ний элемент. Кнопка Новый - вводит еще один. Впрочем, без нее можно обойтись. Гораздо удобнее вводить новые элементы следующим образом.

Если Вам нужно определить итог по какой-либо числовой колонке, щелкните по ней в правом окне. Сразу станут актив­ными несколько кнопок, среди которых Вы обнаружите  Добавить итог по колонке. Нажмите ее, и программа сгенери­рует новый элемент полосы, который будет содержать сумму по группе записей и располагаться ровно под выбранной ко­лонкой, которая тут же будет помечена красной стрелкой.

Для размещения текста под одной колонкой щелкните по кнопке  Вставить текстовый элемент. Вас попросят ввести размещаемый текст, и после этого будет создан новый эле­мент, содержащий простое текстовое выражение (см. ниже). Если Вам мало одной колонки для размещения этого элемента (что особенно актуально для полос заголовков, которые зача­стую размещаются посередине листа), то выберите щелчком левой клавиши мыши в левом окне его, а в правом — ту колонку, за счет которой Вы хотите расширить этому элементу поле печати. После чего нажмите кнопку  Присоединить. И Вы сразу увидите, как поле печати расширится. Если между уже выбранной и вновь выбираемой колонками есть свободные, то они выберутся авто­матически.

Наконец, для уничтожения связи между элементом и ко­лонкой используйте кнопку  Освободить.

Однако описанными выше приемами не ограничиваются возможности редактирования полос заголовка и подвала итого­вых групп. В верхней части окна редактирования расположены три закладки с описаниями свойств выбранного в левом нижнем списке элемента. Описание закладки Спец. настрой­ка мы по традиции опускаем.

На закладке Определение элемента можно не только задать его название, но и определить тип: колонка отчета или выраже­ние. Тип Колонка отчета используется для элементов - итого­вых сумм. Выражение - для элементов заголовков и поясняю­щих итоги текстов. Помимо собственно текста в кавычках в элементах типа Выражение можно использовать значения по­лей источника данных, а также другие общедоступные переменные, которые Вам подскажет вызываемый кнопкой  Конструктор формул (см. книгу «Общие правила работы»). Отметим, что текст в выраже­ние всегда включается в кавычках, а его конкатенация (соеди­нение) с другими частями формулы обозначается знаком «плюс». Например, «Отдел»+NAZN.OTD. Наконец, нижний пе­реключатель на закладке Определение элемента устанавлива­ется в положение Итоги по всем записям группы или По произвольной записи группы (используется для всех элементов полос заголовка и текстовых элементов подвала).

Вторая закладка Вид на печати позволяет определить формат выбранного элемента. А именно:

Выравнивание — влево, вправо, по центру или по умолча­нию (см. 2.6.3 Закладка «Структура заголовка»);

Шрифт. Хотя шрифт (и его размер) един для всего отчета и потому выбирается на закладке Общие сведения (см. 2.6.1), здесь мы можем выбрать для каждого элемента полосы итогов в отдельности его жирный или курсивный вариант. Таким образом, Вы сможете регулировать вид каждого эле­мента итоговой полосы независимо от всех остальных. Напри­мер, слова «Итого» напечатать жирным шрифтом, а итоговую сумму курсивом;

Справа можно задать шаблоны для обычного, нулевого и отрицательного значе­ний итоговых элементов (см. 2.2.8. Форматирование пред­ставления данных).

Флажок Округлять включает режим округления числового значения в итоговом элементе. Уровень округления задается в виде целого числа. Положительные числа указывают число десятичных знаков после запятой в округленном значении, отрицательные числа позволяют округлять значения до десятков, сотен и т.д. При нулевом значении округление производится до целых.

2.6.5.     Окно редактирования параметров построения диаграммы

На закладке Диаграмма можно настроить параметры построения отчета в виде диаграммы, которые будут предлагаться по умолчанию каждый раз при нажатии на кнопку Диаграмма в форме, определяющей представление результатов построения отчета (рис.2.54.).

Диаграмма Ганта формируется не с ближайшего прошедшего понедельника, а с начала самой ранней работы.

Рис.2.54. Мастер отчетов, описание шаблона, настройка параметров диаграммы

Форма Параметры диаграммы имеет две закладки: Оси координат и Заголовки диаграммы.

Прежде всего нужно выбрать тип диаграммы с помощью переключателя, установив нужный, Обычная или Ганта.

Далее, на закладке Оси координат определяются:

·       Колонка отчета по оси Х – выбором из раскрывающегося списка;

·       Колонка отчета по оси Y – выбором из раскрывающегося списка. Обратите внимание, что для оси Y могут выбираться параметры только числового типа. Если выбран параметр, имеющий другой тип данных, на экран будет выводиться соответствующее уведомление;

·       Управление сериями. Диаграмма может быть построена с учетом нескольких однородных параметров (по оси Y) для сравнения (например, сумм поступлений и сумм платежей), которые будут отображены внутри одной диаграммы. Один параметр в данном случае и является серией. Для добавления и удаления серий предназначены кнопки:  Добавить серию,   Удалить серию и   Очистить список.

Порядок добавления серий:

-      Выбрать параметр построения отчета по оси Y;

-      Нажать кнопку . Наименование параметра переместится в поле Список серий графика;

-      Выбрать параметр для сравнения из раскрывающегося списка колонка отчета по оси Y;

-      Нажать кнопку . Параметр также попадет в поле Список серий графика.

Для удаления серии необходимо выделить ее щелчком левой клавиши мыши и нажать кнопку .

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

Нажав кнопку , можно очистить весь список серий графика.

Отображение серий в графике зависит также от того, проставлены ли флажки рядом с наименованием каждой серии. Если флажок не проставлен, колонка в графике отображена не будет.

На закладке Заголовки диаграмм можно определить заголовок диаграммы, надписи в нижней части формы, а также подписи параметров справа и слева.

2.6.6.     Использование дизайнера Free Report для построения и редактирования отчетов

Отдельные отчеты в некоторых модулях ERP-системы «КОМПАС» созданы с использованием возможностей генератора отчетов Free Report. Для того, чтобы иметь возможность редактировать эти отчеты, к Мастеру отчетов ERP-системы «КОМПАС» подключен дизайнер отчетов Free Report.

Для удобства подключения к наборам данных и более полного использования возможностей системы КОМПАС, к дизайнеру отчетов подключены дополнительные активные элементы.

Общий порядок работы с дизайнером отчетов Free Report описан авторами этой программы.

Дополнительные возможности, разработанные в рамках использования Мастера отчетов ERP-системы «КОМПАС», включают в себя:

-       Возможность управления наборами данных отчета непосредственно в дизайнере отчета Free Report. Наборы данных формируются с помощью запросов;

-       Возможность управления параметрами отчета;

-       Дополнительный визуальный объект Текст с возможностью ввода выражений, написанных на языке формул и форм.

Наборы данных отчета формируются на основе запросов. Поэтому необходимо, чтобы к моменту настройки отчета такой запрос был создан в Мастере запросов.

Форма для назначения набора (наборов) данных для формирования отчета вызывается нажатием на кнопку   на панели инструментов.

В форме Наборы данных отчета представлен список используемых при формировании отчета наборов данных.

В форме расположены функциональные кнопки:

  – добавить набор данных;

  – удалить набор данных;

  – редактировать набор данных.

При нажатии кнопки  или кнопки  на экран выводится форма Свойства запроса, в которой можно выбрать или изменить:

-       Dat-файл, в котором хранится описание запроса – выбирается из раскрывающегося списка, в котором представлены dat-файлы модуля, содержащие запросы;

-       Псевдоним запроса – из перечня запросов указанного dat-файла. Перечень запросов вызывается на экран нажатием на кнопку   справа от поля Псевдоним.

-       В поле Имя по умолчанию подставляется псевдоним указанного запроса, но это значение можно изменить.

Кнопка   в левой верхней части формы открывает Мастер запросов, где можно произвести выбор или отредактировать  (создать новый) запрос.

Форма для работы с параметрами отчета вызывается нажатием кнопки  на панели инструментов.

На экран выводится форма Параметры отчета, в которой перечислены:

-       Реквизиты отчета: псевдоним и заголовок. Эти реквизиты могут быть изменены непосредственно в соответствующих полях формы;

-       Параметры отчета – перечень параметров;

-       Свойства параметра – просмотр свойств того параметра, который отмечен в списке.

Добавление и редактирование параметров отчета производится в  форме Редактор значений переменных (в терминологии Free Report, «Параметры отчета» являются категорией переменных, а сами параметры – переменными), которая вызывается нажатием кнопки .

В левой части формы расположен список, в котором отображаются переменные в зависимости от выбранной из раскрывающегося списка категории. В правой части – поля выбранного из раскрывающегося списка набора данных.

Создать новую категорию или переменную можно, нажав на кнопку Переменные…

На экран выводится список категорий и переменных. Добавление новых строк в этот список, редактирование или удаление уже существующих производится с клавиатуры.

Обратите внимание! Наименования категорий вводятся сразу с начала строки, перед наименованием переменной ставится пробел.

В форме Редактор значений переменных можно соотнести параметр (переменную) и поле набора данных. Для этого в левом раскрывающемся списке выбирается категория переменных, а в правом - набор данных. Затем в левой части щелчком левой клавиши мыши отмечается параметр (цвет фона строки при этом изменяется),  в правой части – поле набора данных (цвет фона строки также будет изменен). Таким образом устанавливается соответствие между параметром и значением в поле набора данных.

Обратите внимание! Если параметры в запросе и отчете совпадают, то значение параметра запроса устанавливается равным значению параметра отчета.

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

На панель визуальных объектов добавлен объект Вставить прямоугольник с текстом с возможностью ввода выражений ЯФПК. При редактировании этого объекта доступны все те же возможности, что и при редактировании объекта текст, и добавлена новая: возможность использования Конструктора формул. Конструктор формул вызывается нажатием на кнопку ЯФПК. В перечне функций и переменных Конструктора в дополнение к имеющимся, доступны поля выбранных для отчета наборов данных.

2.7.        Мастер бизнес - процедур

Данный мастер включен в версии с высокими настроечными возможностями.

Мастер бизнес-процедур, вход в который осуществляется вызовом одноименного пунк­та меню Сервис, предназначен для написания индивидуальных алгоритмов обработки и визуализации данных. С его помощью можно, например, создать пункт меню (см. 1.1. Администратор меню), в котором табличная форма будет вызываться под фильтром, можно организовать в панели инструментов кнопку, с помощью которой будет производиться массовое удаление за­писей (см. 2.1.6. Закладка «Спец. Настройка»), можно написать нестандартную процедуру сохранения данных в базе по окончании редактирования экранной формы (см. 2.3.8. Изменение свойств экранной формы)… Короче говоря, индивидуальные бизнес - процедуры, написанные на встроенном в ERP-систему «КОМПАС» языке класса Basic, приходят на помощь в тех случаях, когда все остальные средства управления данными не справляются с поставленной в процессе внедрения системы задачей. Наличие мастера бизнес-процедур делает ERP-систему «КОМПАС» абсолютно открытым пакетом.

Все подготовленные бизнес-процедуры хранятся в файле с расширением dat. В стандартной поставке это файл bp.dat.

После входа в мастер на экране разворачивается окно с перечнем имеющихся бизнес-процедур (рис. 2.55.), который можно просматривать целиком, а можно выбрать только одну группу из раскрывающегося списка в верхней части окна.

Рис.2.55. Мастер бизнес-процедур

В правой части окна расположены следующие кнопки:

·       Новая - вводит в список еще одну бизнес-процедуру, и сразу же открывает для нее основное окно редактирования (см. ниже).

·       Новая из текущей — делает то же, что и предыдущая, но с предварительным копированием содержания и заголовков бизнес- процедуры, выделенной в перечне.

·       Импорт описания — позволяет скопировать процедуру из другого содержащего бизнес-процедуры файла. После нажатия кнопки на экране открывается окно выбора, найдя в котором корректный вариант, Вы получите на экран перечень для импорта. Под перечнем расположен флажок, установив который, можно получить в свое распоряжение целую группу процедур за один прием.

·       Удалить - убирает выбранную бизнес - процедуру из списка.

·       Редактировать – представляет параметры выбранной в списке бизнес-процедуры в основном окне редактирования (см. ниже).

·       Создать группу выводит Вас в окно редактирования груп­пы (см. ниже) с незаполненным описанием, позволяя не толь­ко задать новое имя, но и перенести туда любые существую­щие процедуры.

·       Изменить группу копирует в окно редактирования групп, абсолютно аналогичное окну редактирования групп запросов данные о выбранной группе процедур. С помощью кнопок  и  производится перенос из общего перечня процедур  (с помощью выпадающего списка можно осуще­ствлять отбор по группам) в редактируемую группу и обратно. С помощью кнопок  и  такой же перенос осуществля­ется в режиме  «все сразу».

·       Кнопка Удалить группу. Название этой кнопки говорит само за себя. Лучше ей без особой нужды не пользоваться.

·       Кнопка Тексты. При нажатии на эту кнопку на экран выводятся все тексты бизнес-процедур. 

Основное окно редактирования процедуры выглядит пре­дельно просто. (рис.2.56.).

Рис.2.56. Мастер бизнес-процедур, окно редактирования

В верхней части окна размещаются поля для ввода уникального псевдонима процедуры, ее текстового описа­ния и выбора группы, к которой она относится, из выпадаю­щего списка. Кнопка  на панели инструментов окна с текстом бизнес-процедуры позволяет осуществить поиск по тексту. Если установить флажок Использовать ENTER для поиска следующего вхождения текста, то найденный в тексте бизнес-процедуры фрагмент остается подсвеченным, но фокус возвращается в форму поиска. В центральной части расположено поле для ввода текста процедуры, реализуемого на встроенном языке Basic пакета «КОМПАС». В нижней части имеется набор стандартных управляющих кнопок, среди которых выделим кнопку  Тест. С ее помощью осуществляется синтаксиче­ская проверка текста процедуры и ее контрольный запуск.

Краткое описание языка бизнес-процедур ERP-системы «КОМПАС», правила его использования, а также небольшой пример приведены в Приложении 1 к Руководству системного администратора.

            Более подробная информация о работе с Матером БП приведена далее в разделах 2.7.1 Назначение мастера бизнес-процедур по 2.7.5 Классы объектов.

2.7.1.     Назначение мастера бизнес-процедур

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

В текущей версии программы вызов внутренних подпрограмм, оформленных с помощью мастера бизнес-процедур, предусмотрен в следующих случаях:

·       в табличных формах - с помощью дополнительных кнопок, а также автоматически - при возникновении некоторых событий, если реакция на события предусмотрена в виде бизнес процедуры;

·       в экранных формах - с помощью специальных кнопок, а также автоматически - при изменении данных в таблицах, включенных в состав экранной формы, если реакция на изменение записи оформлена в виде бизнес-процедуры на закладке Вычисления окна редактирования свойств таблицы;

·       в качестве отдельного пункта главного меню, если выполняемым объектом для этого пункта является бизнес-процедура.

2.7.2.     Как добавить новую бизнес-процедуру

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

В обоих случаях на экран выводится окно редактирования бизнес-процедуры. Для новой процедуры необходимо указать уникальный псевдоним и дать краткое словесное описание. Можно отнести процедуру к одной из существующих групп или включить в новую группу. Основную часть окна редактирования бизнес-процедуры занимает собственно текст процедуры. Нажав на кнопку ОК, Вы сохраните новую процедуру в списке и вернетесь к списку процедур. Сохранить процедуру без закрытия окна редактирования можно с помощью кнопки Сохранить. При нажатии на кнопку Отмена все изменения, внесенные с момента последнего сохранения, будут отменены. Кнопка Тест позволяет запустить процедуру на выполнение.

2.7.3.     Редактирование бизнес-процедуры

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

Язык бизнес-процедур пакета КОМПАС похож на широко распространенный язык Бэйсик. Каждый оператор пишется на отдельной строке, то есть в качестве разделителей операторов используется перевод строки.

Общее описание языка бизнес-процедур:

Выражения см. раздел 2.7.3.1

Переменные см. раздел 2.7.3.2

Встроенные переменные см. раздел 2.7.3.3

Конструкции см. раздел 2.7.3.4

Классы объектов см. раздел 2.7.5

Операторы и функции

Ввода/Вывода см. раздел 2.7.4.2

Математические см. раздел 2.7.4.3

Строковые см. раздел 2.7.4.4

Для работы с датами см. раздел 2.7.4.5

Для работы с объектами см. раздел 2.7.4.6

2.7.3.1.          Выражения

В выражении допускается использовать:

·       константы. В качестве констант могут применяться все константы, используемые в конструкторе формул, например в качестве логических констант определены true, false, да, нет, ...;

·       функции и переменные;

·       операции:

-        вычитание:        a-b

+        сложение:        a+b

*        умножение:        a*b

/        деление:        a/b

%        остаток от деления:        a%b

^        возведение в степень:        a^b

<        меньше:        a<b

<=        меньше либо равно:        a<=b

<>        не равно:        a<>b

>=        больше либо равно:        a>=b

>        больше:        a<b

=        равно:        a=b

MOD        остаток от деления:        a MOD b

NOT        логическое НЕ:        NOT a

OR        логическое ИЛИ:        a OR b

XOR        исключающее ИЛИ:        a XOR b

AND        логическое И:        a AND b

Все бинарные операции необходимо использовать с переменными одного типа.

Приоритеты операций:

1        NOT

2        ^

3        *, /, %, MOD

4        +, -

5        <, <=, <>, >=, >, =

6        AND

7        OR, XOR

2.7.3.2.          Переменные

Переменная - это единица данных определенного типа.
Каждая переменная имеет ИМЯ и ТИП.
Имя переменной необходимо, чтобы отличать переменные друг от друга.
Имя может состоять из любых символов латинского и русского алфавитов, @ и _
Имя переменной должно начинаться только с символа, _ или @.

Типы переменных:

·   число: целое, вещественное

·   строка

·   дата/время

·   логическое

·   массив

·   объект некоторого класса

Переменные могут быть существующими уже при запуске процедуры либо переменные могут создаваться операторами самой процедуры.

Обратите внимание! Указание объекта “m” позволяет отличить переменную от поля в процедурах-событиях на табличную форму или элемент МОМ. Если префикс “m.” Есть, то это переменная, если нет - то это поле.

Номенклатура переменных, существующих при вызове, зависит от того, из какого контекста вызвана бизнес-процедура. В большинстве случаев существующими являются переменные, совпадающие с именами полей той табличной формы, из которой вызвана бизнес-процедура. При этом правила использования свойств и методов этой табличной формы аналогичны случаю, когда текущий объект Табличная форма назначается специально с помощью функции Use.

При вызове процедуры для следующих событий в экранной форме:

·       нажатие на кнопку,

·       модификацию данных в таблице, входящей в экранную форму,

в виде переменных дополнительно становятся доступными элементы массива общих мест.

Например:

_FIELDS@TEST=10
_FIELDS@TEST=_FIELDS@TEST+1

Особые правила действуют для элементов массива общих мест, имеющих тип "дата". Обычно таким элементам надо присваивать другое значение типа "дата". Исключение составляет случай, когда необходимо очистить дату. В этом случае следует присвоить элементу любое пустое значение: ноль или пустую строку, например:

_FIELDS@DATE_N=""

Следует учитывать, что для того, чтобы изменения в элементе массива общих мест отразились в экранной форме, следует использовать не прямое присвоение элементу массива, а специальный метод SetValue, например:

_FIELDS@TEST.SetValue(10)
_FIELDS@TEST.SetValue(_FIELDS@TEST+1)

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

Если процедура назначена в качестве реакции на события в табличной форме, которая может использоваться как в экранной форме, так и за пределами экранной формы, в тексте процедуры важно знать, являются ли доступными элементы массива общий мест. Для этого можно использовать функцию FindELMOM. В качестве параметра в функцию передается текст, являющийся именем элемента массива общих мест. Если элемент доступен функция возвращает значение истина. Иначе функция возвращает значение ложь. Элементы массива общих мест, являющиеся таблицами, считаются доступными только в том случае, если соответствующая таблица имеется в экранной форме и уже была инициализирована.

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

 

2.7.3.3.          Встроенные переменные

Помимо пользовательских переменных в системе есть встроенные переменные, предоставляющие информацию из системы.

ТЕКПОЛЕ

текущая ячейка / поле

КОД_ПОЛЬЗОВАТЕЛЯ

логин текущего пользователя

 

2.7.3.4.          Конструкции

Конструкция - это последовательность операторов, управляющих порядком выполнения строк программы. У всех конструкций характерной чертой является наличие проверяемого выражения. В зависимости от его значения, выполняются те или иные действия:

·       FOR varname=число TO число1 [STEP число2]

...Операторы...

NEXT [varname]

Операторы, выполняются в цикле пока переменная varname не станет равна числу1 (TO), при этом переменная varname за каждый проход увеличивается на число2 (STEP).

·       WHILE выражение

...Операторы...

WEND

Операторы цикла будут выполняться если и пока выражение будет справедливо.

·       DO

...Операторы...

LOOP WHILE выражение

Операторы цикла будут выполняться до тех пока выражение будет справедливо.

·       DO

...Операторы...

LOOP UNTIL выражение

Операторы цикла будут выполняться до тех пока выражение будет не справедливо.

·       DO WHILE выражение

...Операторы...

LOOP

Операторы цикла будут выполняться если и пока выражение будет справедливо.

·       DO UNTIL выражение

...Операторы...

LOOP

Операторы цикла будут выполняться если и пока выражение будет не справедливо.

·       IF выражение

THEN

Операторы находящиеся здесь будут выполняться если выражение справедливо.

[ ELSE ]

Операторы находящиеся здесь будут выполняться если выражение не справедливо.

END IF

·       SELECT CASE выражение

CASE выражение1

Операторы, находящиеся здесь, выполняются, если выражение = выражение1

[CASE выражение2]

Если требуется более сложная проверка, то следует использовать слово IS, которое заменяет собой выражение, например: case IS > 10

[CASE выражениеN]

Операторы, находящиеся здесь, выполняются, если выражение = выражениеN

END SELECT

·       ' Комментарий

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

2.7.4.     Операторы и функции

2.7.4.1.          Стандартные функции

Встроенные функции могут использоваться в качестве команд и/или в качестве функций, возвращающих значение (в этом случае данная функция может встречаться только как часть выражения).

Параметры функции заключаются в скобки, либо идут сразу после имени функции. В последнем случае считается, что параметрами функции является всё вплоть до конца строки. Параметры отделяются друг от друга запятой или точкой с запятой. При этом в зависимости от конкретной функции данные разделители могут иметь разное назначение.

Если функция не имеет параметров, то после ее имени можно (не обязательно) указывать пару скобок ().

Имена функций нельзя использовать в качестве имен переменных.

В процедуре доступны также все функции и переменные, используемые конструкторе формул, а также дополнительные функции следующих типов:

·       математические (возвращают число)

·       строковые (возвращают текст)

·       для работы с типом "дата/время"

·       ввода/вывода

·       для работы с объектами

2.7.4.2.          Функции ввода/вывода

AskChoice заголовок, текст, варианты

выбор вариантов (см. также Список).

Параметры:

1. Текст: заголовок окна выбора.

2. Текст: поясняющий текст, который располагается в окне выбора над перечнем вариантов.

3. Текст: определяет перечень вариантов, разделенных переводами строки или возвратами каретки. Для вставки в перечень вариантов символа перевода каретки можно использовать функцию char

Возвращаемое значение: номер варианта, который выбрал оператор, начиная с нуля. Если оператор нажал кнопку Отмена, возвращается -1. Например:

Variants = "Вариант 1"+char(13)+"Вариант 2"

a = AskChoice("Выбор","Выберите вариант",Variants)

В этом случае будет выведено следующее окно:

Примечание: в некоторых случаях могут не отображаться строчные кириллические символы (например, лидирующий строчный символ "я"). Для разрешения этой ситуации рекомендуется использовать капитализацию первой буквы (функция proper)

BatchMove получатель, набор данных [, флаг]

копирует данные в таблицу.

Параметры:

1. Текст: псевдоним таблицы, являющейся получателем данных.

2. Набор данных, являющийся источником данных.

3. Число. Может принимать значения:

1 - если таблица уже существует, она будет удалена и создана заново;

Иначе - таблица создается только, если она не существует.

Третий параметр можно не указывать, значение по умолчанию 1.

Пример:

TR = SQL("SELECT * FROM MOVIES")

BatchMove("MY_TEMP_MOVIES", TR)

TableExist таблица - проверка существования таблицы с псевдонимом, заданным текстовым параметром.

Возвращаемое значение: логическое. Например:

A = TableExists("MY_SUPER_TABLE")

IF A THEN

PRINT "Таблица уже существует!"

ELSE

T = CreateTable("MY_SUPER_TABLE").

END IF

ExecCmd программа, параметры, режим

вызывает программу операционной системы.

Параметры:

1. Текст: имя программы. Если имя задано с полным путем, то папка, в которой расположена программа, будет текущей при вызове программы.

2. Текст: передается вызываемой программе в качестве параметра (параметров) командной строки.

3. Текст: определяет режим, в котором вызывается программа. Может принимать значения:

HIDE - программа вызывается в скрытом режиме;

SHOWMAX - программа вызывается в максимизированном виде;

SHOWMIN - программа вызывается в минимизированном виде;

Иначе - программа вызывается в нормальном виде.

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

ExecQuery запрос

выполняет запрос

FormatImpExp набор данных, флаг1, конфигурация, флаг2, заголовок, признак, имя файла

используется для экспорта и импорта произвольных данных в следующих форматах:

1) *.dbf - база данных FoxPro;

2) *.txt - текстовый файл без разделителей;

3) *.txt - текстовый файл с разделителями (табуляцией).

Параметры:

1 Набор данных, из которого осуществляется экспорт или в который осуществляется импорт. В качестве набора данных в данном случае указывается табличная форма.

2. Логический: следует ли выполнять импорт (истина) или экспорт (ложь).

3. Текст: имя файла конфигурации, в котором описан формат данных. Если значение параметра не указано или пусто, будет открыт стандартный диалог выбора файла конфигурации.

4. Логический: надо ли показывать протокол после завершения операции. Допустимые значения: "истина" - показывать протокол, "ложь" - не показывать протокол.

5. Заголовок окна просмотра протокола.

6. Признак, показывающий действия в случае, если при экспорте файл уже существует. Может принимать следующие значения:

0 - переспросить у оператора (умолчание);

1 - перезаписать файл (таблицу) новыми данными;

2 - дописать в конец файла (таблицы).

7. Имя файла – если указано, то задает имя файла, из которого производится импорт или в который производится экспорт данных. В этом случае имя файла, указанное в первой строке файла конфигурации, не учитывается.

Возвращаемое значение: числовое, признак успешного (0) или неуспешного (минус 1) завершения операции. Например:

MyTable = ServerTempTable("MY_SUPER_TABLE")

IniFile = "C:\KompSQL\SKLAD\IMPORT\MyTable.ini"

i = FormatImpExp(MyTable,true,IniFile,false,"Импорт данных")

IF i = 0 THEN

MyTable.Refresh

ELSE

PRINT "Не удалось выполнить импорт!"

RETURN

END IF

Input строка, переменная

ввод значения: переменной присваивается тип "строка

InputVal значение

ввод значения.

Позволяет выполнить диалог по вводу значения в формате FInpAll. Параметры: заголовок, текст на метке, собственно значение (на входе - умолчание и определяет тип значения, на выходе - результат ввода), текст на разрезе группы, текст на кнопке "ОК", название параметра (метка). Обязательными являются первые три параметра. Функция возвращает true, если была нажата кнопка ОК, и false, если была нажата кнопка "Отмена".

При использовании функции для поля (полей) ввода предусмотрен выбор и проверка значения, если в тексте меток используется фрагмент "ггггмм".

Если 6-й параметр имеет значение true, вводимый текст отображается в виде звездочек.

Mail получатель, приложение, тема, содержание

посылает сообщение по электронной почте. Все параметры - текстовые. Данная функция может работать только в некоторых задачах пакета КОМПАС

MessageBox заголовок, сообщение, режим вывода сообжения

выдает сообщение. При использовании в качестве функции возвращает логическое значение, показывающее, нажал ли оператор кнопку "Да" ("Yes"). Предусмотрена возможность управления переводом строки с помощью символа '\n'

В качестве третьего параметра можно задать специальные режимы вывода сообщения:

  H - скрыть WaitBox на время сообщения;

  I - использовать иконку MB_ICONINFORMATION;

  Q - использовать иконку MB_ICONINQUESTION;

  S - использовать иконку MB_ICONINSTOP;

  W - использовать иконку MB_ICONWARNING;

  2 - по умолчанию на вторую кнопку.

Режимы Q и 2 действуют только при использвании функции в выражении, а режим S - только при использовании функции в виде оператора.

Print список

выводит список значений, разделенных символами:

, - значение выводится на следующей строке;

; - значение выводится на сразу за предыдущим

Spawn программа, параметры, признак

вызывает внешнюю программу.

Параметры:

1. Текст: имя программы. Если имя задано с полным путем, то папка, в которой расположена программа, будет текущей при вызове программы.

2. Текст: передается вызываемой программе в качестве параметра (параметров) командной строки.

3. Текст: показывает, нужно ли ждать окончания работы внешней программы. Может принимать значения:

WAIT - нужно ждать завершения;

NOWAIT - продолжать выполнение процедуры, не дожидаясь завершения внешней программы.

Возвращаемое значение: 0 в случае успешного завершения внешней программы. В противном случае ненулевое число, возвращаемое внешней программой. Например:

i=Spawn("C:\BHT\tu3.exe", "C:\BHT\referenc.dat", "WAIT")

IF i<>0 THEN

PRINT i

END IF

------

Необязательные параметры

Если при вызове функции Spawn значение 5-го параметра равно "PATH", поиск подпрограммы выполняется не только в текущей папке, но также и учетом переменной окружения PATH.

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

WaitBox [строка], строка

выводит окно ожидания, если строка не задана - скрывает.

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

WaitBox2 строка

позволяет изменить вторую строчку окна ожидания

 

2.7.4.3.          Математические функции (возвращают число)

abs(число)

модуль (абсолютное значение) числа.

cos(число)

косинус

DecRound(число,дес)

округление до ближайшего числа с числом десятичных знаков, заданных вторым параметром (аналогично функции ОКРУГ в трансляторе).

fix(число)

округление вниз (отбрасывает дробную часть числа)

int(число)

округление к ближайшему целому

Length(массив)

размер массива

Length(строка)

длина строки

Pos(строка1,строка2)

позиция строки2 в строке1 (ищет подстроку в строке).

rnd(число)

генерирует случайное целое число в диапазоне от нуля до параметра функции

round(число)

округление вверх (к ближайшему целому, которое не меньше заданного)

sgn(число)

знак (возвращает -1, если число отрицательное, 0, если число равно 0, 1, если число положительное)

sin(число)

синус

StrToInt(строка)

привести строку к числу

 

2.7.4.4.          Строковые функции (возвращают текст)

Char(число)

строка из одного символа по его коду

CreateGuid

получение 36-символьного уникального идентификатора

Date2SQL(дата,флаг)

преобразует аргумент типа "дата" в строку, пригодную для использования в запросах. Флаг (логический) показывает, нужно ли заключать результат в кавычки. Например:

D = Date2SQL(Now, true)

CheckDateOuery = SQL("SELECT * FROM MY_TABLE WHERE DATA <= %D%")

FormatFloat ("Формат", Число)

преобразует число в строку в соответствии со спецификатором формата, содержащимся в параметре Формат. Описание спецификаторов формата приведено в уточнении

Left(строка,число)

заданное числом кол-во символов слева

Lower(строка)

привести к нижнему регистру

Ltrim(строка)

удалить пробелы слева

PARSEDELIM (строка1, строка2, число)

Позволяет получить один из фрагментов строки, в которой фрагменты разделены определенным разделителем.

Параметры:

1.

Строка: исходная строка, фрагмент из которой требуется.

 

2.

Строка: разделитель. Должна состоять из одного символа.

 

3.

Число: порядковый номер фрагмента. Если меньше 1 или больше общего числа фрагментов, результатом вызова функции будет пустая строка.

Результат: строка, содержащая текст фрагмента.

RandomString

                   Строка "случайных" символов указанной длины, обязательно включающая одну цифру и один специальный символ. Может использоваться для получения пароля по умолчанию

Right(строка,число)

заданное числом кол-во символов справа

Rtrim(строка)

удалить пробелы справа

Str(число)

привести число к строке

StrEncode

 кодирование строки. Параметр: кодируемая строк

StrDecode

декодирование строки. Параметр: декодируемая  строка

String2SQL

Приводит строку к виду, пригодному для использования в SQL-предложениях, в частности, одинарные кавычке в строке удваиваются.

Параметры:

1.

текст:  исходная строка;

 

2.

логическое:  следует ли заключать строку во внешние кавычки

Substring(строка,число1,число2)

часть строки с позиции число1, длиной число2

Trim(строка)

удалить пробелы справа и слева

Upper(строка)

привести к верхнему регистру

 

2.7.4.5.          Функции для работы с датами

BP_period

создает и возвращает объект класса Период времени.

DateFormat (строка,дата)

изображение даты, форматированное строкой

DateSerial (день, месяц, год)

сборная дата

DaysInPeriod (дата1,дата2, номер)

- позволяет получить число дней в указанном диапазоне времени.

Тип значения: число.

Параметры:

1. Дата начала периода.

2. Дата окончания периода.

3. Режим подсчета дней. Может принимать следующие значения:

5 - по 5-дневной рабочей неделе;

6 - по 6-дневной рабочей неделе;

7 - в календарных днях за вычетом праздников;

0 - просто в календарных днях.

Now

текущая дата/время

PeriodPart (дата1, дата2, номер)

- получение расстояния между двумя датами в годах, месяцах и днях. Функция возвращает числовое значение, смысл которого определяется третьим параметром:

1-лет;

2-месяцев;

3-дней.

Если даты отстоят друг от друга на целое число лет (например, 15.06.2003 и 15.06.2005), в результате получится целое число лет (в данном примере - 2), 0 месяцев и 0 дней. Если даты отстоят на целое число месяцев (например, 15.06.2003 и 15.10.2005), в результате получится некоторое число лет (в данном примере - 2), целое число месяцев (в данном примере - 4) и 0 дней. Следует особо обратить внимание, что функция расшифровывает расстояние между датами, а не период времени, включающий обе даты. Если нужно получить расшифровку для периода времени, включающего обе даты, следует ко второй дате добавить единицу.

TstRgm (параметр1, параметр2, параметр3)

проверяет введенный месяц в формате ггггмм.

Параметры:

1) строка - введенный месяц (обязательный параметр);

2) логическое - должно ли значение обязательно быть заполненным. По умолчанию - да;

3) логическое - выводить ли сообщение об ошибке. По умолчанию: да.

Возвращаемое значение: логическое - показывает, является ли значение допустимым.

В  язык формул и форм добавлена функция КОНЕЦ_ПЕРИОДА (PeriodEnd), которая позв

 

2.7.4.6.          Функции для работы с объектами

AskGod, параметры

-организует диалог по выбору года.

Параметры:

1) строка - год, с которого нужно начинать выбор (параметр не обязателен). Если параметр не указан или пуст, выбор начинается с того года, который соответствует текущему расчетному месяцу.

2) "Набор данных" - используется для позиционирования формы по отношению к полю ввода (параметр не обязателен).

Возвращаемое значение: строка - содержит номер года, если выбор сделан, или пустую строку, если выбор не сделан.

AskRgm, параметры

- организует диалог по выбору месяца в формате ггггмм.

Параметры:

1) строка - месяц, с которого нужно начинать выбор (параметр не обязателен). Если параметр не указан или пуст, выбор начинается с текущего расчетного месяца.

2) "Набор данных" - используется для позиционирования формы по отношению к полю ввода (параметр не обязателен).

Возвращаемое значение: строка - содержит месяц, если выбор сделан, или пустую строку, если выбор не сделан

BP_Config, параметры

Функция для создания объектов класса "Конфигурационный параметр"

Параметры:

  1) строка - имя конфигурационного параметра - не должно быть пустым;

  2) целый - тип конфигурационного параметра (0-целый, 1-вещественный, 2-строка, 3-дата, 4-логический). По умолчанию: 0;

  3) логическое - признак оператора. По умолчанию: false - конфигурационный параметр имеет одинаковое значение для всех операторов;

  4) значение по умолчанию - значение этого параметра преобразуется к типу, указанному вторым параметрам. Если не задано, то значение конфигурационного         параметра по умолчанию будет пустым.

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

Call "имя процедуры", параметры

вызов другой бизнес-процедуры. В вызываемой процедуре переданные параметры доступны через массив @Arg; доступна переменная @ArgCount, содержащая количество переданных параметров

ClearIns

снимает отметки со всех строк

Connect, параметр

позволяет выполнить переключение на другую базу данных (псевдоним BDE задается параметром)

CreateTable псевдоним [, признак1 [, признак2]]

создает таблицу.

Параметры:

1. Текст: псевдоним таблицы.

2. Логический: нужно ли пересоздавать таблицу в случае, если она уже существует. Значение по умолчанию "истина".

3. Логический: нужно ли создавать индексы. Значение по умолчанию "истина".

Возвращаемое значение: объект класса Набор данных. Например:

T = CreateTable("MY_SUPER_TABLE")

EnumerateID (кол-во параметров – 5)

позволяет заполнить в заданном наборе данных (1-й параметр) заданное поле (2-й параметр) монотонно возрастающими значениями с заданным шагом (5-й параметр). При этом значение, с которого начнется заполнение определяется как max+1 для заданного поля (4-й параметр) заданной таблицы (3-й параметр).

Evaluate

создает и возвращает объект класса Транслятор формул

ExcludePathFromFileName "имя папки", "полное имя файла"

Если файл расположен в указанной папке, функция возвращает имя файла без полного пути. Иначе функция возвращает без изменения имя файла, которое задано вторым параметром.

FieldByMesto (2 параметра)

 

имя поля по элементу МОМ

Параметры (все параметры обязательны):

1) строка - псевдоним таблицы;

2) строка - элемент МОМ.

Возвращает: имя поля, соответствующее указанному элементу МОМ, или пустую строку, если такого поля в таблице нет.

FileDelete “файл”

удаляет указанный файл

FileExists “файл”

проверяет, существует ли указанный файл

FillBPList “параметр 1” “параметр 2”

заполняет список именами бизнес-процедур

FindELMOM, параметр

ищет элемент в списке доступных переменных. В качестве параметра в функцию передается текст, являющийся именем элемента массива общих мест. Если элемент доступен, функция возвращает значение истина. Иначе функция возвращает значение ложь. Элементы массива общих мест, являющиеся таблицами, считаются доступными только в том случае, если соответствующая таблица имеется в экранной форме, и уже была инициализирована

GenUniqFileName "путь к файлу"

по заданному в параметре пути возвращает имя файла с уникальным суффиксом

GetAbsenceList (5 параметров)

Используется в модуле "Управление персоналом". Предназначена для получения списка видов неявок, исключаемых из стажа. Параметры:

1. Строка: табельный номер;

2. Целое: код трудовых отношений;

3. Дата: дата начала рабочего периода;

4. Дата: дата окончания рабочего периода;

5. Целое: код условий труда (необязательный).

Возвращаемое значение - строка со списком видов неявок через запятую.

GetComputerName

возвращает имя компьютера, на котором запущен модуль

GetDir "путь к исходной папке", "текст сообщения на форме выбора"

позволяет вывести диалог по выбору папки. Оба параметра необязательны. Функция возвращает полный путь к выбранной папке или пустую строку, если оператор нажал кнопку "Отмена"

GetELMOM

возвращение значения элемента МОМ по его имени

GetOtpOstAndFill (6 параметров)

Используется в модулях кадрово-зарплатного блока для расчета остатка отпуска и заполнения таблицы периодов.

Параметры:

1. Строка: табельный номер;

2. Целый: вид отпуска;

3. Дата: дата расчета остатка;

4. Целый: код трудовых отношений;

5. Целый: признак расчета;

6. Набор данных: таблица PERIOD_PARTS (необязательный).

Возвращаемое значение: вещественный - остаток отпуска.

GetUserFilter "префикс таблицы, используемый в SQL-выражении"

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

InsertToExcel

выгрузка в Excel. Параметры:

1) выгружаемый набор данных;

2) текст, помещаемый в первую строку страницы Excel.

Если параметр 2 не задан или пуст, используется заголовок табличной формы.

При использовании обеих функций набор данных должен быть табличной формой, в том числе допускается использовать элемент МОМ, соответствующий таблице в составе экранной формы.

InsCount

позволяет узнать число отмеченных строк

IsFloat "строка"

Возвращает логическое значение true, если строка может быть преобразована к числу с плавающей точкой. При невозможности преобразования возвращает false

IsInt  "строка"

возвращает логическое значение true, если строка может быть преобразована к целому числу. При невозможности преобразования возвращает false

ListBox

создает и возвращает объект класса Список

LockOpers

для блокировки объектов на время монопольных операций, которые выполняются из бизнес-процедур. Какие именно объекты блокируются, зависит от настройки монопольных операций (настраивается в соответствующем пункте меню «Настройка / Операции»).

Normativ (5 параметров)

Используется в модуле "Управление персоналом". Позволяет получить значение норматива для указанного месяца, отдела, категории персонала.

Параметры:

1. Текст:  обозначение норматива;

2. Текст: месяц в формате “ггггмм”;

3. Текст: номер отдела. По умолчанию – пусто;

4. Число: код категории персонала. По умолчанию – ноль;

5. Число: режим работы. По умолчанию – ноль. При ненулевом значении этого параметра учитываются только нормативы, заданные для указанного месяца. При нулевом значении параметра норматив может быть взят из ближайшего предыдущего месяца, в котором данный норматив указан.

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

Возвращаемое значение: числовое.

OpenDialog

диалог выбора файла

PostIf “имя поля”

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

PrintReport "псевдоним","фильтр","параметры"

[,"формат"[,"макропараметры"]]

четвертый параметр "формат" может принимать значения:

1 - стандартный формат;
2 - формат MS Excel;
полное имя файла. Имя файла должно быть нечисловым, так как числовое значение воспринимается как указание на формат В случае указания только имени файла (без полного пути) используется каталог, заданный по умолчанию для сохранения отчетов в формате Excel в Конфигурации на закладке Печать. Отчет формируется в формате Excel, сохранение производится в файл с заданным именем. Если имя файла не заканчивается символами “.xls”, эти символы автоматически добавляются к имени файла. Добавление расширения не производится, если имя файла уже имеет расширение, то есть заканчивается точкой, за которой следует не более 3-х символов. Диалог с пользователем по корректировке параметров на экран не выводится. При этом все настройки, кроме имени файла, сохраняют значения по умолчанию. Предусмотрена возможность указать имя страницы, в которую будет выгружаться отчет. Имя страницы отделяется от имени файла с помощью вертикальной черты, например: "ФайлОтчета.xls | Страница 2". Если вертикальной черты в тексте параметра нет, используется имя "Страница 1". Если файл уже существует, в него добавляется или замещается страница с указанным именем. Если файл не существует, формируется новый файл с такой страницей.

В варианте с параметрами отчета в виде объекта класса Список можно передать список макропараметров для запросов, используемых в отчете.

QForm псевдоним [,параметры]

создает и возвращает объект класса Запросная форма по ее псевдониму. Значения параметрам присваиваются в порядке их описания в запросе (не по именам). Если указано меньше параметров, чем имеется в запросе, то остальные сохраняют значения, указанные в описании запросной формы. Если в запросе имеются макропараметры, в качестве первого параметра может быть указан объект типа Список. Элементы списка используются для заполнения макропараметров. Если элементов списка меньше, чем число макропараметров, оставшиеся макропараметры сохраняют значения, указанные в описании запросной формы.

QFormLive псевдоним [,параметры]

создает и возвращает объект класса Запросная форма (с возможностью редактирования)  по ее псевдониму. Значения параметрам присваиваются в порядке их описания в запросе (не по именам). Если указано меньше параметров, чем имеется в запросе, то остальные сохраняют значения, указанные в описании запросной формы. Если в запросе имеются макропараметры, в качестве первого параметра может быть указан объект типа Список. Элементы списка используются для заполнения макропараметров. Если элементов списка меньше, чем число макропараметров, оставшиеся макропараметры сохраняют значения, указанные в описании запросной формы.

QFWizard

вызывает Мастер запросов

Reestr "тип документа", "фильтр", "режим"

- создает и возвращает объект класса Реестр документов.Тип документа задается числовым параметром функции.
Строковый параметр "режим" может принимать следующие значения или их произвольное сочетание (например, “123”):
1 - задает режим установки фильтра (третий параметр) как серверного. Это надо учитывать при составлении текста для условия фильтрации. Во избежание двусмысленности рекомендуется поля основной таблицы снабжать префиксом MAIN. С другой стороны, в этом фильтре можно использовать сложные условия, которые применимы только в SQL, например, вложенные SELECT и т.п.;
2 - перед открытием табличной формы выводится диалог установки серверного фильтра. Если для табличной формы задан фильтр по умолчанию, он сразу же используется для фильтрации записей с помощью серверного фильтра, то есть табличная форма открывается без диалога. Следует также учитывать, что во всех случаях фильтр, заданный третьим параметром, действует одновременно с фильтром, заданным по F6;
3 - используется только для реестров и позволяет отключить режим вывода реестра, заданный в описании типа документа (помесячно, поквартально, по годам, реестр целиком). Следует учитывать, что при использовании таких режимов после выполнения функции TForm в табличной форме не будет ни одной записи, пока не будет выполнен метод Show, ShowModal или ShowLookup. Параметр “3” позволяет преодолеть эту проблему, если в бизнес-процедуре предполагается выполнять какие-либо действия с табличной формой без ее показа или еще до показа. Параметр “3” рекомендуется использовать в сочетании с тем или иным серверным фильтром, чтобы избежать открытия большой таблицы реестра целиком;

4 - учитывать фильтр по умолчанию. Если этот режим не задан, то при открытии табличной формы из бизнес-процедуры фильтр по умолчанию не учитывается, а в диалоге настройки фильтра отсутствует флажок “Использовать по умолчанию”. Если режим задан, работа с табличной формой из бизнес-процедуры в этом отношении идентична обычной работе с той же табличной формой, то есть фильтр по умолчанию учитывается и может быть установлен пользователем в процессе работы с табличной формой;
0 - используется только для табличных форм LIC_CH (Лицевые счета) и ESN_BASE (Налоговая база ЕСН и суммы налогов) и позволяет отменить предварительный диалог по установке фильтра при открытии этих табличных форм без отбора по табельному номеру или коду получателя. Параметр “0” рекомендуется использовать в сочетании с тем или иным серверным фильтром, чтобы избежать открытия большой таблицы целиком

Cледует учитывать, что не все значения параметра “режим” действуют при использовании метода ShowLookup:

2 - не действует, так как работа с фильтром по F6 в форме выбора не предусмотрена;

3 - не действует для формы выбора, но является обязательным при создании табличной формы реестра с целью последующего использования метода ShowLookup. Если режим 3 не задан, для некоторых реестров в момент использования метода ShowLookup в таблице не будет ни одной записи, что вызовет ошибку позиционирования на выбранную запись. В версии 11.85.01 при использовании метода ShowLookup в таких случаях предусмотрено сообщение об ошибке c указанием, что необходимо использовать режим 3. В более ранних версиях выводится обычное сообщение “Выбранная запись не найдена в табличной форме” либо никакого сообщения не выводится, но далее возможны самые разные ошибки при работе с этим реестром, в том числе – за пределами бизнес-процедуры;

4 - не действует, так как работа с фильтром по F6 в форме выбора не предусмотрена;

0 - не действует, так как работа с фильтром по F6 в форме выбора не предусмотрена

RefreshCache "псевдоним таблицы"

используется в модуле “Управление персоналом”. Обновляет кэшированные данные, используемые для открытой расчетной ведомости. Функция имеет один параметр: псевдоним таблицы, которую необходимо обновить в кэше. При пустом параметре (подразумевается по умолчанию), обновляется кэш для всех четырех таблиц (справочник видов оплаты KODTAB, кадровая картотека KADRY, штатная расстановка NAZN, табель учета рабочего времени TABRAB). Если табличная форма расчетной ведомости не открыта, функция ничего не делает.

Report

создает и возвращает объект класса Отчет

ResrictValue “параметр”

значения полей в ограничении по ключу

RestrictField “параметр”

имена полей в ограничении по ключу

RunQuery псевдоним [,параметры]

аналогично RunSQL с параметрами, но имеет следующие особенности:

- псевдоним запроса или группы может содержать пробелы;

- если параметров меньше, чем предусмотрено в запросе, перед выполнением запроса выводится стандартный диалог ввода параметров запроса. Отказ от ввода параметров приводит к отказу от выполнения запроса;

- может выполняться не только одиночный запрос, но и скрипт, состоящий из нескольких последовательно выполняемых запросов.

RunSQL "Текст Sql-запроса"

просто выполнение запроса (не возвращает результата).

RunSQL псевдоним [,параметры]

аналогично предыдущему, но вместо текста запроса указывается псевдоним запроса, сформированного с помощью Мастера запросов. Для того, чтобы эта конструкция отличалась от предыдущей, псевдоним запроса (включая группу) не должен содержать пробелов. Значения параметрам присваиваются в порядке их описания в запросе (не по именам). Если указано меньше параметров, чем имеется в запросе, остальные параметры сохраняют значения, указанные в описании запроса. Если в запросе имеются макропараметры, в качестве первого параметра может быть указан объект типа Список. Элементы списка используются для заполнения макропараметров. Если элементов списка меньше, чем число макропараметров, оставшиеся макропараметры сохраняют значения, указанные в описании запроса.

RV_OTDEL

Используется в модуле "Управление персоналом".

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

SaveDialog

диалог выбора и сохранения файла. Если ввести имя существующего файла, то выдается запрос о перезаписи файла

SelectField (2 параметра)

выбор поля таблицы или табличной формы

Параметры (обязателен только первый параметр):

1) строка - псевдоним таблицы;

2) строка - ранее выбранное поле (для позиционирования формы выбора). Если не задано, форма выбора позиционируется на первом поле.

SelectPF

вызывает стандартный диалог по выбору одной из печатных форм в списке

Параметры:

1) текст - список печатных форм, разделенных символом ";" – обязательный параметр;

2) текст - имя конфигурационной переменной для хранения последней выбранной формы из этого списка. Если параметр не задан, последний выбор не запоминается.

Возвращаемое значение: псевдоним выбранной формы или пустая строка, если выбор не сделан (нажата кнопка "Отмена").

ServerTempTable псевдоним

создает и возвращает объект класса Серверная временная таблица. Псевдоним таблицы задается текстовым параметром функции

SetConfigParam (2 параметра)

функция предназначена для изменения значения конфигурационной переменной.
Параметры: 
1) имя конфигурационной переменной;
2) значение.

SetELMOM

изменение элемента МОМ по его имени

SetNULL

Предназначена для задания полю пустого значения.

Пример использования:

a=TFORM"<имя ТФ>"

a.SetNULL("DATA_D")

(DATA_D - поле таблицы)

Show форма

показывает табличную или запросную форму

ShowLookup форма

отображает табличную или запросную форму в виде справочника и позволяет выбрать из него. Если заголовок формы не передан в качестве параметра, то используется заголовок, заданный свойством Caption. Возвращаемое значение - логическое: показывает, произвел ли оператор выбор. Для запросной формы в функцию может быть передан параметр, который используется в качестве заголовка формы. Пример:

QF = QForm "Справочники.DOPODR_TAB_N",POL@TAB_N

IF QF.ShowLookup("Договора подряда работника: "+POL@PYR3)

THEN

DOCUM@DOC_TYPE.SetValue(QF.TYP_D)

DOCUM@DOC_ID.SetValue(QF.ID)

DOCUM@DOC_NOM.SetValue(QF.N_DOK)

DOCUM@DOC_DATE.SetValue(QF.DATA_D)

SUM@SUM_ZPL.SetValue(QF.SUM_D)

END IF

ShowModal форма

показывает табличную или запросную форму модально. Например:

ShowModal TForm "SPR_DOK"

Sleep "число"

Позволяет выполнить задержку на заданное количество миллисекунд

SQL "Текст Sql-запроса"

возвращает объект класса Набор данных: результат выполнения запроса. В тексте запроса допустимо в качестве параметров использовать переменные Бейсика. Для этого нужно заключить имя переменной в проценты. Например:

select * from %TableName% where Field1='%Value%'

SQL псевдоним [,параметры]

аналогично предыдущему, но вместо текста запроса указывается псевдоним запроса, сформированного с помощью Мастера запросов. Для того, чтобы эта конструкция отличалась от предыдущей, псевдоним запроса (включая группу) не должен содержать пробелов. Значения параметрам присваиваются в порядке их описания в запросе (не по именам). Если указано меньше параметров, чем имеется в запросе, остальные параметры сохраняют значения, указанные в описании запроса. Если в запросе имеются макропараметры, в качестве первого параметра может быть указан объект типа Список. Элементы списка используются для заполнения макропараметров. Если элементов списка меньше, чем число макропараметров, оставшиеся макропараметры сохраняют значения, указанные в описании запроса.

SQLPost

сохраняет запись, находящуюся в режиме редактирования или добавления, с помощью динамически генерируемого запроса. Может применяться вместо метода Post.

SysLog "название события",  "текст сообщения с описанием события", "Дополнительная информация"

добавляет запись о событии в системный протокол.

Можно использовать третий параметр, с помощью которого заполняется новая колонка аудита "Дополнительная  информация".

TableExist “таблица”

проверка существования таблицы с псевдонимом, заданным текстовым параметром

TableVersion “таблица”

версия ядра системы КОМПАС

TblAliasByTF (параметр)

псевдоним таблицы по табличной форме

Параметры (все параметры обязательны):

1) строка - псевдоним табличной формы.

Возвращает: псевдоним таблицы или пустую строку, если указанная табличная форма не найдена.

TForm "псевдоним ТФ", "тип документа", "фильтр", "режим"

Все параметры, кроме первого, являются необязательными.
Параметр "тип документа" учитывается только для реестров и позволяет обойти диалог по выбору типа документа для тех табличных форм, которые связаны с несколькими типами документов. При нулевом значении второго параметра табличная форма реестра открывается по общим правилам.
Строковый параметр "режим" может принимать следующие значения или их произвольное сочетание (например, “123”):
1 - задает режим установки фильтра (третий параметр) как серверного. Это надо учитывать при составлении текста для условия фильтрации. Во избежание двусмысленности рекомендуется поля основной таблицы снабжать префиксом MAIN. С другой стороны, в этом фильтре можно использовать сложные условия, которые применимы только в SQL, например, вложенные SELECT и т.п.;
2 - перед открытием табличной формы выводится диалог установки серверного фильтра. Если для табличной формы задан фильтр по умолчанию, он сразу же используется для фильтрации

записей с помощью серверного фильтра, то есть табличная форма открывается без диалога. Следует также учитывать, что во всех случаях фильтр, заданный третьим параметром, действует одновременно с фильтром, заданным по F6;
3 - используется только для реестров и позволяет отключить режим вывода реестра, заданный в описании типа документа (помесячно, поквартально, по годам, реестр целиком). Следует учитывать, что при использовании таких режимов после выполнения функции TForm в табличной форме не будет ни одной записи, пока не будет выполнен метод Show, ShowModal или ShowLookup. Параметр “3” позволяет преодолеть эту проблему, если в бизнес-процедуре предполагается выполнять какие-либо действия с табличной формой без ее показа или еще до показа. Параметр “3” рекомендуется использовать в сочетании с тем или иным серверным фильтром, чтобы избежать открытия большой таблицы реестра целиком;

4 - учитывать фильтр по умолчанию. Если этот режим не задан, то при открытии табличной формы из бизнес-процедуры фильтр по умолчанию не учитывается, а в диалоге настройки фильтра отсутствует флажок “Использовать по умолчанию”. Если режим задан, работа с табличной формой из бизнес-процедуры в этом отношении идентична обычной работе с той же табличной формой, то есть фильтр по умолчанию учитывается и может быть установлен пользователем в процессе работы с табличной формой;
0 - используется только для табличных форм LIC_CH (Лицевые счета) и ESN_BASE (Налоговая база ЕСН и суммы налогов) и позволяет отменить предварительный диалог по установке фильтра при открытии этих табличных форм без отбора по табельному номеру или коду получателя. Параметр “0” рекомендуется использовать в сочетании с тем или иным серверным фильтром, чтобы избежать открытия большой таблицы целиком.        
Возможности  функции Tform по указанию параметров фильтрации ("фильтр", "режим") неприменимы для табличных форм SHTRAS (штатное расписание); NAZN (штатная расстановка); OTPUSK (журнал неявок); TABRAB (табель учета рабочего времени); CH_70_S (расчетная ведомость); SPR_70 (свод по заработной плате); LIC_CH (лицевой счет с отбором по одному работнику). Напомнинаем, что для таких табличных форм функцию TForm вообще нельзя использовать, так как для них эта функция только открывает табличную форму в немодальном режиме, но получить доступ к табличной форме нельзя. Если необходимо использовать такую табличную форму для выбора из справочника, следует вместо функции TForm использовать функцию TLookupForm.

Если в параметре "режим" используется символ R (регистр существенен) - табличная форма выводится в режиме "Только чтение".

TFWizard

вызывает Мастер табличных форм

ThrowException

генерирует исключение, которое может быть обработано за пределами бизнес-процедуры

TLookupForm "псевдоним ТФ", "тип документа", "фильтр", "режим"

создает объект TForm для выбора из справочника. Если в бизнес процедуре необходимо осуществить выбор из табличной формы как из справочника, рекомендуется создавать объект класса “Табличная форма” не с помощью функции TForm, а с помощью функции TLookupForm. Объект, созданный с помощью функции TLookupForm, может использовать только для выбора из справочника с помощью метода ShowLookup, тогда как методы Show, ShowModal и ShowSF у него отсутствуют. С другой стороны, такой объект ведет себя одинаково для любых табличных форм, в том числе - для перечисленных выше в настоящей статье. Кроме того, таблица для такого объекта открывается в режиме только для чтения, что ускоряет работу программы.
Все параметры, кроме первого, являются необязательными.
Параметр "тип документа" (числовой) учитывается только для реестров и позволяет обойти диалог по выбору типа документа для тех табличных форм, которые связаны с несколькими типами документов. При нулевом значении второго параметра табличная форма реестра открывается по общим правилам.
Строковый параметр "режим" может принимать следующие значения или их произвольное сочетание (например, “123”):
1 - задает режим установки фильтра (третий параметр) как серверного. Это надо учитывать при составлении текста для условия фильтрации. Во избежание двусмысленности рекомендуется поля основной таблицы снабжать префиксом MAIN. С другой стороны, в этом фильтре можно использовать сложные условия, которые применимы только в SQL, например, вложенные SELECT и т.п.;
2 - перед открытием табличной формы выводится диалог установки серверного фильтра. Если для табличной формы задан фильтр по умолчанию, он сразу же используется для фильтрации записей с помощью серверного фильтра, то есть табличная форма открывается без диалога. Следует также учитывать, что во всех случаях фильтр, заданный третьим параметром, действует одновременно с фильтром, заданным по F6;
3 - используется только для реестров и позволяет отключить режим вывода реестра, заданный в описании типа документа (помесячно, поквартально, по годам, реестр целиком). Следует учитывать, что при использовании таких режимов после выполнения функции TForm в табличной форме не будет ни одной записи, пока не будет выполнен метод Show, ShowModal или ShowLookup. Параметр “3” позволяет преодолеть эту проблему, если в бизнес-процедуре предполагается выполнять какие-либо действия с табличной формой без ее показа или еще до показа. Параметр “3” рекомендуется использовать в сочетании с тем или иным серверным фильтром, чтобы избежать открытия большой таблицы реестра целиком;

4 - учитывать фильтр по умолчанию. Если этот режим не задан, то при открытии табличной формы из бизнес-процедуры фильтр по умолчанию не учитывается, а в диалоге настройки фильтра отсутствует флажок “Использовать по умолчанию”. Если режим задан, работа с табличной формой из бизнес-процедуры в этом отношении идентична обычной работе с той же табличной формой, то есть фильтр по умолчанию учитывается и может быть установлен пользователем в процессе работы с табличной формой;
0 - используется только для табличных форм LIC_CH (Лицевые счета) и ESN_BASE (Налоговая база ЕСН и суммы налогов) и позволяет отменить предварительный диалог по установке фильтра при открытии этих табличных форм без отбора по табельному номеру или коду получателя. Параметр “0” рекомендуется использовать в сочетании с тем или иным серверным фильтром, чтобы избежать открытия большой таблицы целиком.        

Use объект

указывает, что методы и свойства объекта будут использоваться по умолчанию. Если объектом является табличная или запросная форма, то как только выполнится этот оператор, появятся переменные через которые можно работать с полями задействованной рабочей формы. Их имена совпадают с именами полей. Например:

use TForm "SPR_DOK"

print TIP

В результате выведется значение поля TIP для первой строки таблицы. Или аналогично:

a = TForm "SPR_DOK"

print a.TIP

ViewDoks

просмотр документа.

Параметры:

1) набор данных, содержащий реквизиты документа;

2) часть сообщения о том, что нет реквизитов документа.

Если параметр 2 не задан или пуст, используется текст "таблицы".

XFile “таблица”, “ключевое поле”, “значение ключевого поля”

позволяет выполнять операции с файлами, хранимыми в поле таблицы (3 параметра)

XFileEx (6 параметров)

Функция для работы с файлами.

Параметры:

1. [Псевдоним таблицы] - псевдоним таблицы с файлом;

2. [Имя ключевого поля] - имя ключевого поля таблицы с файлом (для идентификации строки);

3. [Значение ключевого поля] - значение ключевого поля таблицы с файлом (для идентификации строки);

4. [Имя поля файла] - имя поля, в котором хранится файл, если пустая строка, то определяется автоматически;

5. [Действие] - код действия (0 - Открыть файл, 1 - Сохранить в файл на диск, 2 - Сохранить файл в БД, 3 - Удалить файл из БД);

6. [Имя файла] - если выполняется действие 1, то папка для сохранения файла (например 'c:\my dir\') или пустая строка (тогда будет диалог с пользователем). Если выполняется действие 2, то путь к файлу (например 'c:\autoexec.bat'). Для других действий игнорируется.

xRefresh псевдоним

выполняет обновление данных во всех табличных формах, связанных с указанной таблицей.

XML (3 параметра)

принимает три параметра:

1. путь к файлу,

2. режим работы (0 - выгрузка xml-файла, 1 - загрузка xml-файла),

3. кодировка xml-файла.

2.7.5.     Классы объектов

2.7.5.1.          Понятие класса

Переменные языка могут иметь тип: объект некоторого класса. Такая переменная создается одной из функций языка и имеет свойства (аналогичны переменным) и методы (аналогичны функциям). Доступ к отдельным свойствам и методам осуществляется с помощью имени переменной, точки и имени свойства или метода, например:

a=TForm "SPR_DOK"
a.goFirst
ShowModal a

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

·       Набор данных

·       Табличная форма

·       Запросная форма

·       Запросная форма с возможностью редактирования данных

·       Реестр документов

·       Серверная временная таблица

·       Отчет

·       Список

·       Транслятор формул

·       Период времени

·       Текстовый файл

·       Транзакция

·       Работа с почтой

·       Блокировки

·       XML

·       XML Node

·       Служебные классы

2.7.5.2.          TTfInfoНаборы данных

Объекты этого класса создаются функцией SQL.

Свойства:

Bof

переменная равна 1, когда курсор стоит на первой записи

Eof

переменная равна 1, когда курсор стоит на последней записи

Count

количество записей

CountWithFilter

отличие от свойства count заключается в том, что новая учитывает все наложенные на набор данных фильтры

Filter

фильтр, доступен для чтения и для записи

ServerFilter

серверный фильтр. Обратите внимание, что использование этого свойства возможно только в том случае, если набор данных связан с какой-либо табличной формой: созданной с помощью функции TForm или полученной в качестве UsedObject при вызове бизнес-процедуры в качестве реакции на события табличной формы, либо при нажатии на кнопки табличной формы. Значением  свойства является текст, написанный по правилам языка SQL, который может быть использован в предложении WHERE запроса на выборку данных для табличной формы. Во избежание двусмысленности, рекомендуется все поля основной таблицы в тексте серверного фильтра снабжать префиксом "MAIN."

Любое изменение свойства ServerFilter приводит к перезагрузке данных в табличной форме. Если для свойства задано пустое значение, выборка данных при перезагрузке осуществляется без дополнительных условий. Иначе используется условие отбора, описанное в серверном фильтре

TableName

имя таблицы, по которой построена форма. Это свойство может быть использовано только для табличных форм

State

текстовая строка, характеризующая состояние набора данных:

                 "dsInsert" - состояние добавления записи;

                 "dsEdit" - редактирование старой записи;

                 "dsBrowse" - перемещение по записям;

                 "dsUnknown" - остальные состояния.

@Temp.Value

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

Posted

устанавливается значение “true”, если во временную таблицу в составе экранной формы изменения вносились запросами. Если использовался только метод SQLPost, данное свойство можно не использовать

 

Методы:

goFirst

перемещение в начало

goLast

перемещение в конец

goNext

перемещение на следующую запись

goPrev

перемещение на предыдущую запись

Insert

переход в режим вставки

Delete

удаление записи

Edit

 перевод записи в состояние редактирования

Post

сохранение изменений

Cancel

отмена изменений

Refresh

обновление данных

Close

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

Find "имя поля", значение

поиск

HasTable "имя элемента МОМ"

Метод используется только в выражениях.

Если набор данных является таблицей, для таблицы открыта экранная форма и на ней имеется таблица, соответствующая этому элементу МОМ, метод возвращает имя (временной) таблицы. Метод предназначен для бизнес-процедур, назначенных для событий ТФ (перед и после сохранения, удаления), если требуется получить информацию о содержании таблицы в составе экранной формы. Метод работает для справочников и для реестров.

SetMaxStr "имя поля", значение

параметры: имя поля с номерами строк, максимальный номер, записанный в поле. Вызывается, если изменения во временную таблицу в составе экранной формы вносились запросами или с помощью SQLPost, а в таблице имеется поле с номерами строк

RestrictField , значение

позволяет получить имя поля, которое используется для ограничения по ключу. Параметр: порядковый номер поля в ограничении (начиная с 1). Если ограничение не установлено или число полей меньше указанного, функция возвращает пустую строку

RestrictValue , значение

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

LoadBLOB, "имя поля", "имя файла"

чтение из файла. Параметры: имя ля, имя файла. Этот метод следует использовать только когда  Dataset находится в режиме Edit или Insert.

SaveBLOB, "имя поля", "имя файла

запись значения BLOB-поля в файл

PrintForm, "псевдоним печатной формы", "число копий при печати", "3-й параметр (необязательный)"

формирование печатной формы по шаблону с последущим диалогом. По завершении процесса формирования документа производится стандартный диалог с оператором. Процедура продолжает работу только после закрытия диалогового окна.

В качестве необязательного третьего параметра можно использовать список параметров печатной формы. Параметры, упомянутые в этом списке, исключаются из диалога ввода параметров. Если все параметры упомянуты в списке, диалог ввода параметров не выводится.

MakeForm, "псевдоним печатной формы", "полное имя файла", "3-й параметр (необязательный)"

формирование печатной формы и сохранение в заданном файле.По завершении процесса формирования документа окно мониторинга закрывается, файл с указанным полным именем сохраняется, выполнение процедуры продолжается

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

При использовании MS Word 2007 или выше функция MakeForm сохраняет печатную форму в формате Office Open XML, если вторым параметром передано имя файла с расширением docx.

В качестве необязательного третьего параметра можно использовать список параметров печатной формы. Параметры, упомянутые в этом списке, исключаются из диалога ввода параметров. Если все параметры упомянуты в списке, диалог ввода параметров не выводится.

GetValue, "имя поля"

получение и изменение значения поля даже в том случае, если его имя совпадает с именем свойства или функции

SetValue, "имя", "значение" 

изменение значения поля даже в том случае, если его имя совпадает с именем свойства или функции

GetCheckIns, " список"

Метод заполняет параметр списком уникальных ключей для отмеченных строк набора данных. Метод заполняет список только в том случае, если набор данных является табличной формой на основе компонентов TTfWndForm или TTfCtl. В остальных случаях переданный список очищается.

 

2.7.5.3.          Табличная форма

Объекты этого класса создаются функцией ТForm.

Наследует все свойства и методы класса Набор данных.

Дополнительные свойства:

 

Caption

заголовок табличной формы

CheckIns

проверка отметки строк: возвращает true, если строка в ТФ отмечена, и false, если строка не отмечена

SelectedField

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

IsOpen

возвращает true, если табличная форма открыта, и false - если закрыта

CalendarView

вид "календарь". Позволяет разместить в левой части формы элемент календарь для фильтрации записей табличной формы по датам. Может принимать значения от 0 до 4:

0 = Один день;

1 = Рабочая неделя (5 дней);

2 = Неделя;

3 = Месяц;

4 = Два календаря.;

Calendar1Date

дата в первом календаре

Calendar2Date

дата во втором календаре

Дополнительные методы:

 

Show

отобразить не модально

ShowModal

отобразить модально

ShowLookup

выбрать значение

MultiLookup

В отличие от метода ShowLookup  метод имеет параметр, которым должен быть объект класса "Список". При этом в диалоге выбора допускается отметка строк. Если выбор сделан, переданный в качестве параметра список содержит перечень первичных ключей отмеченных записей.

ShowSF

открыть экранную форму

Order строка

сортировка

Restrict "поле1=значение1" [, "поле2=значение2"]

накладывает ограничение по ключу. Наряду с именами полей можно использовать служебные имена:

HideKeyColumns        -        следует ли скрывать колонки с ключевыми полями;

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

Значениями для этих служебных имен могут "0" (ноль) - нет, или "1" - да. Любое другое значение воспринимается как "1".

Mail получатель, приложение, тема, содержание

посылает сообщение по электронной почте, использующее текущую строку табличной формы. Все параметры - текстовые. Данная функция может работать только в некоторых задачах пакета КОМПАС

RefreshTree

обновляет дерево в табличной форме (если дерево имеется). Обновление производится по тем же правилам, как при использовании пункта "Обновить" в локальном меню дерева.

ShowDetail идентификатор кнопки, для которой настроена связь с подчиненной табличной формой

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

ShowMemo псевдоним поля

при вызове этого метода  для указанного в качестве параметра поля открывается многострочный редактор

ShowFilterDlg [префикс]

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

xRefresh псевдоним

выполняет обновление данных в табличных формах, связанных с указанной таблицей. Текущая табличная форма при этом не обновляется, даже если она связана с той же таблицей. При необходимости обновить текущую табличную форму, следует использовать метод Refresh.

Обратите внимание

Использование класса “Табличная форма” имеет особенности для некоторых табличных форм, для которых в пакете предусмотрена специальная обработка. К таким табличным формам относятся следующие формы:

табличная форма CH_70_S (расчетная ведомость);

табличная форма FONDRAB (фонды рабочего времени);

табличная форма GRIDN (перечень назначений работника);

табличная форма GRIDOTP (перечень отпусков и неявок работника);

любые табличные формы, основанные на таблице LIC_CH (лицевой счет работника), в том числе - расчетный листок (табличная форма LIC_CH_M);

табличная форма NAZN (штатная расстановка);

табличная форма OTPUSK (журнал отпусков и других неявок);

табличная форма SHTRAS_M (штатное расписание по работникам);

табличная форма SHTRAS_W (штатное расписание по должностям);

табличная форма SPR_70 (свод по заработной плате);

табличная форма TABRAB (табель учета рабочего времени).

Хотя объект для указанных табличных форм может быть создан с помощью функции TForm, большинство методов класса “Табличная форма” для такого объекта не действуют. Допускается использование только метода Show, который, однако, никаких действий не выполняет, так как показ формы в немодальном режиме осуществляется сразу после вызова функции TForm. У такого объекта отсутствуют свойства, соответствующие полям таблицы, а использование свойств Caption, Filter и некоторых других не оказывает никакого влияния на открытую табличную форму.

Если в бизнес процедуре необходимо осуществить выбор из табличной формы как из справочника, рекомендуется создавать объект класса “Табличная форма” не с помощью функции TForm, а с помощью функции TLookupForm. Объект, созданный с помощью функции TLookupForm, может использовать только для выбора из справочника с помощью метода ShowLookup, тогда как методы Show, ShowModal и ShowSF у него отсутствуют. С другой стороны, такой объект ведет себя одинаково для любых табличных форм, в том числе - для перечисленных выше в настоящей статье. Кроме того, таблица для такого объекта открывается в режиме только для чтения, что ускоряет работу программы.

2.7.5.4.          Запросная форма

Объекты этого класса создаются функцией QForm.

Наследует все свойства и методы класса Набор данных.

Дополнительные свойства:

 

Caption

заголовок запросной формы

Дополнительные методы:

 

Show

отобразить не модально

ShowModal

отобразить модально

ShowLookup строка

выбрать значение

Order строка

сортировка

 

2.7.5.5.          Запросная форма с возможностью редактирования данных

Объекты этого класса создаются функцией QFormLive.

Наследует все свойства и методы класса Запросная форма.

От базового класса QForm отличается тем, что запрос открывается с параметром RequestLive=true.

2.7.5.6.          Серверная временная таблица

Объекты этого класса создаются функцией ServerTempTable.

Объект соответствует таблице, указанной при вызове функции. Таблица существует до конца выполнения бизнес процедуры.

Объект наследует все свойства и методы класса Набор данных.

Дополнительные свойства:

TableName

-имя временной таблицы.

 

KeyField

-имя поля для первичного ключа.

Пример:

Trsh = ServerTempTable("TMPRASHR")

RunSQL "INSERT INTO " + Trsh.TableName + " (PART_NO, STR_NO, NOM_NO, SKL_NO, MOL) SELECT PART_NO,STR_NO, NOM_NO,MOL FROM RASHOD"

2.7.5.7.          Реестр документов

Объекты этого класса создаются функцией Reestr.

Имеет аналоги методов класса Табличная форма. В качестве свойств вместо имен полей используются элементы массива общих мест.

Дополнительные свойства:

Table

псевдоним таблицы

TForm

псевдоним табличной формы

Type

тип документов в реестре

DocName

название типа документа реестра

DocsName

название типа документов во множественном числе