Общая информация о консольном и визуальном клиентах

From SunFlurry wiki
Jump to: navigation, search

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

Визуальный клиент представляет собой программу с простым и понятным графическим интерфейсом с помощью которой пользователи выполняют повседневные задачи. Для бизнес проектов эти задачи обычно связаны с вводом и получением информации из базы данных, используемый при этом проект позволяет это делать максимально удобно и эффективно. Если проект не используется для бизнес системы, а представляет собой, например, сайт в Интернете, визуальный клиент может использоваться для доступа к статистике, редактору контента сайта и административным функциям. В отличие от консольного клиента перед визуальным клиентом не стоит задача круглосуточной работы, несмотря на то, что по возможностям (в том числе серверного типа -- открытие TCP/IP портов, отсылка пакетов и пр.) он не уступает консольным клиентам. Наличие интерфейса делает визуальный клиент менее предпочтительным для серверной работы. Сообщения (к примеру, функции Message), которые визуальные клиенты выводят во временный лог на экране, консольные клиенты добавляют в лог-файл на диске, этот лог может хранить важную информацию для администраторов системы; при наличии отказов в программе (к примеру, во внешних библиотеках или при зависаниях в момент вызова OLE-функций) или при необходимости (например, по расписанию в полночь), консольные клиенты быть могут автоматически перезапущены, тогда как визуальные клиенты не перезапускаются автоматически, и при сбоях выводят на экран диалог с сообщением, после закрытия которого, клиент заканчивает работу; кроме того, функции сторожевого пса для них недоступны.

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

Интерфейс и визуальных клиентов

Элементы интерфейса визуального клиента показаны на рис. 1. Интерфейс включает:

  1. Заголовок окна приложения показывает информацию о редактируемом в данный момент объекте и его состоянии (в заголовок включается статус объекта -- обработан, удален, дата отображения периодических реквизитов, если таковые имеются на форме, флаг наличия изменений на форме и пр.), либо наименование формы обработки, таблицы или текстового файла открытых в данный момент.
  2. Главное меню визуального клиента является полностью настраиваемым и задается в Студии. В Студии можно задать несколько версий меню, нужная из которых будет загружаться по указанию из программы. При создании нового проекта, Студия автоматически создает меню по умолчанию с заданными системными функциями, но разработчик может изменить любой из пунктов этого меню. Стандартные функции меню обычно включают такие функции, как вызов калькулятора, календаря или административной панели и пр. Вызов системных диалогов осуществляется с помощью программы посредством функции Invoke. Большинство остальных пунктов меню обычно представляет собой вызовы соответствующих модулей с помощью функций LoadModule или OpenObject. Поведение пунктов меню задается в обработчиках событий пунктов меню на встроенном языке.
  3. Панели инструментов добавляются и удаляются автоматически в зависимости от активных в данный момент окон. Кроме стандартных системных панелей существуют также панели, создаваемые разработчиком в Студии. Панели могут загружаться автоматически при запуске клиента, изменении текущего окна, либо программно с помощью функций, типа ShowControlPanel, Form.ShowControlPanel, HideControlPanel, Form.HideControlPanel. Причем, система позволяет отображать или прятать панели не только для всех открытых окон, но и для каждого из окон в отдельности (панель будет автоматически спрятана, когда пользователь перейдет к редактированию другого окна и снова отображена, когда пользователь возвратится к текущему окну). Каждая панель содержит набор кнопок и других простых элементов, позволяющих вызвать функции, связанные с редактированием текущего окна, функции задаются в обработчиках событий кнопок на встроенном языке. Ниже дается краткое описание функций и возможностей системных панелей (панелей, которые не задаются и не редактируются разработчиками):
    • Стандартная системная панель (Common) содержит следующие функции:
      • Новая таблица или файл (Ctrl+N) -- создает новую электронную таблицу или текстовый файл для редактирования.
      • Открыть таблицу или файл (Ctrl+O) -- выводит диалог открытия новой электронной таблицы или текстового файла для редактирования.
      • Сохранить (Ctrl+S) -- в зависимости от открытого в данный момент окна, позволяет сохранять изменения, внесенные в него пользователем. Эта функция перехватывается программно с помощью предопределенного события OnSave. Кнопка будет неактивной, если текущее окно не имеет статуса "изменено".
      • Предварительный просмотр -- кнопка активна, если активным визуальным элементом в данный момент является электронная таблица. Кнопка позволяет вызвать диалог предварительного просмотра печати этой электронной таблицы.
      • Печать -- кнопка активна, если активным визуальным элементом в данный момент является электронная таблица. Кнопка позволяет вызвать диалог печати этой электронной таблицы.
      • Свойства страницы -- кнопка активна, если активным визуальным элементом в данный момент является электронная таблица. Кнопка позволяет вызвать диалог свойств печати этой электронной таблицы.
      • Загрузить установки текущей формы -- кнопка активна, если пользователь работает с какой-либо формой, и позволяет вызвать диалог загрузки настроек этой формы. Кроме загрузки сохраненных настроек формы (особенно удобных при работе с отчетами с большим количеством фильтров), форма выбора настройки имеет возможность экспортирования, импортирования или удаления настроек. Эта функция перехватывается программно с помощью предопределенных событий типа OnLoadSettings.
      • Сохранить установки текущей формы -- кнопка активна, если пользователь работает с какой-либо формой, и позволяет вызвать диалог сохранения настроек этой формы. Кроме сохранения текущих настроек формы (особенно удобных при работе с отчетами с большим количеством фильтров), форма выбора настройки имеет возможность экспортирования, импортирования или удаления настроек. Эта функция перехватывается программно с помощью предопределенных событий типа OnSaveSettings.
      • Найти в текущей таблице... (Ctrl+F) -- для табличных элементов, текстов и электронных таблиц кнопка позволяет вызвать диалог поиска текста внутри визуального элемента.
    • Стандартная панель свойств электронной таблицы (Table) используется для изменения свойств открытой в данный момент электронной таблицы. Если активным в данный момент элементом формы не является таблица, панель обычно не отображается. Панель содержит следующие функции:
      • Включение и отключение режима редактирования -- выведенные на экран формы обычно имеют запрет редактирования, оператор может включить режим редактирования, с помощью этой кнопки.
      • Включение и отключение режима отображения сетки -- в выведенных на экран формах и отчетах сетка обычно не отображается, но если оператору необходимо провести изменения, включение сетки может сделать процесс редактирования более удобным.
      • Выбор масштаба таблицы -- кнопка позволяет выбрать масштаб отображения таблицы из выпадающего меню.
      • Выбор цветовой схемы отображения таблицы -- выпадающее меню позволяет выбрать цветовую схему отображения таблицы из списка доступных цветовых схем (см. Редактор электронных таблиц).
      • Поле суммы чисел в выделенных ячейках -- поле содержит сумму чисел в выделенных ячейках и меняется автоматически при изменении выделения таблицы. Поле также содержит кнопку калькулятора, которая будет вызывать калькулятор в виде инструментального окна, передавая ему текущее число, содержащееся в поле.
    • Стандартная панель редактора электронной таблицы (Table) используется для доступа к возможностям редактирования открытой в данный момент электронной таблицы. Если активным в данный момент элементом формы не является таблица, панель обычно не отображается. Кнопки панели недоступны, если редактирование текущей электронной таблицы запрещено. Панель содержит следующие функции:
      • Линия, Прямоугольник, Текст, Картинка, OLE-объект -- кнопки позволяют инициировать режим добавления соответствующего объекта таблицы. После нажатия кнопки, пользователь должен выделить мышью прямоугольник в таблице, в который будет вписать доставляемый объект. См. также Панель инструментов электронных таблиц.
      • Наименование шрифта, Размер шрифта, Полужирный, Курсив, Подчеркнутый -- группа элементов управления для выбора свойств текста выделенных ячеек. См. также Панель инструментов электронных таблиц.
      • Шаблон настроек текста -- выпадающее меню, позволяющее выбрать шаблон текста (назначение) выделенных ячеек. См. также Панель инструментов электронных таблиц.
      • Объединить/разъединить ячейки, Прижатие текста к левому краю, середине, правому краю, или форматирование по ширине ячейки, Прижатие текста к верхнему краю, середине или нижнему краю ячейки, Кнопки типа контроля границы текста ячеек, Кнопки изменения горизонтального отступа текста -- группа элементов управления для выбора свойств форматирования текста выделенных ячеек. См. также Панель инструментов электронных таблиц.
      • Цвет текста, Цвет фона, Цвет линий -- группа элементов управления для выбора цветовых параметров выделенных ячеек и текста. См. также Панель инструментов электронных таблиц.
      • Границы, Разбиение страницы, Закрепление областей -- группа элементов управления для выбора рисунка границ выделенных ячеек и изменения дополнительных свойств таблицы. См. также Панель инструментов электронных таблиц.
  4. Рабочая область формы содержит элементы интерфейса, электронную таблицу или текст, в зависимости от того, какое окно открыто в данный момент.
  5. Особая группа стандартных системных диалогов или созданных разработчиком форм содержит формы, которые могут быть открыты в инструментальном режиме, они будут находиться на экране над всеми остальными формами или могут быть прикреплены к границам рабочего окна (см. статью ниже). В данном примере показан инструментальный диалог калькулятора.
  6. Визуальный клиент имеет двухуровневую панель задач, каждая кнопка нижнего уровня которого отвечает за группу окон и модулей, работающих в одном потоке. Т.е., задачи, выполняемые окнах, отделенных в разные группы, работают параллельно и одновременно. При выборе кнопки в нижнем ряду кнопок панели задач, верхняя панель заполняется кнопками окон, открытых для выбранного потока в данный момент. Обычно в одном потоке может быть открыта форма и некоторое количество таблиц с результатами отчета (если форма является отчетом), но могут быть открыты и другие формы (к примеру, в инструментальном режиме или формы выбора элементов, открытые модально и т.д.). При нажатии на кнопку верхней группы, соответствующее ей окно будет активировано. Дополнительные замечания при работе с окнами в визуальном клиенте:
    • Любое окно (кроме инструментальных окон и окон, модальных к основному окну клиента (см. LoadModule со способом вызова 10) может быть выведено на экран в развернутом режиме (это режим по умолчанию, на рис. 1 показано окно таблицы в этом режиме), при этом размер окон будет подгоняться под размер основного окна, и компактном режиме, когда пользователь может изменить размер окна вручную и под этим окном видны другие окна потока (этот режим обычно менее удобен, но может использоваться в случаях, когда пользователю необходимо сравнить содержимое двух или более окон одновременно), данный режим, при его включении, работает для всех окон одного потока, для его включения достаточно нажать на кнопку прямоугольника (свернуть окно), находящуюся в панели главного меню (см. пункт 2).
    • При переводе окон потока в компактный режим, окна других потоков под ними обычно не отображаются. Это сделано для того, чтобы большое количество лишних окон не мешало работе пользователя. В редких случаях, однако, пользователю необходимо видеть одновременно несколько окон из разных потоков. Для этого в системе есть специальная функция, включаемая программно (InterThreadWindowsMode), эту функцию можно оформить, как пункт главного меню или вызывать другим удобным для пользователя образом.
    • Для переключения окон с помощью клавиатуры в системе задана серия горячих клавиш. Для активации первых 10 кнопок нижней панели задач (кнопок потоков), используются сочетания клавиш от Alt+1 до Alt+9Alt+0 для десятого окна). Для активации первых 10 кнопок верхней панели задач (кнопок окон), используются сочетания клавиш от Ctrl+1 до Ctrl+9Ctrl+0 для десятого окна). Если какие-то из этих сочетаний клавиш, используются, как горячие клавиши на формах, предпочтение будет отдаваться событиям формы. Сочетания Ctrl+<цифра> используются в текстовом редакторе для перехода на закладку в тексте. Для окон с тестовыми редакторами, использующими закладки, предпочтение будет отдаваться переходам на закладку в тексте.
    • Меню правой кнопки мыши на кнопке панели задач может включать следующие пункты (и соответствующие им комбинации горячих клавиш):
      • Закрыть (Ctrl+F4) -- закрывает текущее окно или группу окон.
      • Следующее, Предыдущее (Ctrl+Tab, Shift+Ctrl+Tab) -- активизация следующего (предыдущего) окна или группы окон (для нижней панели).
      • Прервать выполнение (Ctrl+C) -- позволяет инициировать прерывание исполнения модуля, который занят работой в данный момент. Для таких модулей на кнопках панели задач будет присутствовать индикация выполнения, чтобы пользователь понимал, что программа все еще не окончила работу. Вплывающая подсказка при наведении мыши на кнопку, может быть модифицирована программно (к примеру, для индикации процесса выполнения) с помощью функций объекта формы (к примеру UpdateProgress).
      • Дополнительные пункты меню кнопки панели задач могут быть добавлены программно с помощью функций объекта формы.
  7. В нижней группе кнопок задач каждая кнопка соответствует своему потоку, см. п. 6 для более детального описания.
  8. Панель статуса содержит как разнообразные иконки статуса клиента (текущий язык ввода информации, статус соединения с сервером и т.д.), как и текстовый статус выполнения обработки, заданный разработчиком (см. функцию StatusText).

Инструментальный режим интерфейса для диалогов

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

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

Стандартные диалоги визуальных клиентов

Большинство диалогов и форм, с которыми работает пользователь, созданы разработчиком для специфических нужд проекта, такие формы не могут быть описаны в данной статье, так как для каждого проекта они свои. Однако, в системе существует набор стандартных форм диалогов, созданный для облегчения создания проекта. Эти формы могут вызываться автоматически при использовании связанных элементов или вызваться из программы (к примеру AskPeriod). Разработчик имеет возможность заменить все стандартные диалоги своими, если первые не удовлетворяют его по каким-то параметрам, но обычно это не требуется. Три диалога заслуживают особого упоминания:

  • Диалог календарь может открываться как в глобальном инструментальном режиме, в локальном инструментальном режиме, так и режиме всплывающего окна. Пользователю позволяется изменять размер диалога, при этом, диалог будет показывать календарь на большее число месяцев. Вызов календаря в режиме всплывающего окна можно осуществить с помощью функции AskDate, вызов календаря в глобальном инструментальном режиме осуществляется с помощью функции Menu.Invoke. На рис. 3 показан общий вид календаря с увеличенным окном (обычно окно открывается с размером, достаточным чтобы вместить один месяц). Верхняя панель с кнопками и текущей датой позволяет изменить текущий (отображаемый самым верхним левым) месяц на предыдущий или такой же месяц прошлого года, либо следующий или такой же месяц следующего года. При левом клике мышью на текущую дату, открывает всплывающее меню, позволяющее переместить текущий месяц и текущий выделенный день на одно из заданных граничных значений.
  • Диалог выбор периода может открываться только как модальное окно выбора. Для вызова диалога из программы используется функция AskPeriod. Пользователю предоставляется инструментарий для быстрого выбора периода (см. рис. 4 и 5). Период можно выбрать с помощью ввода начальной и конечной даты с клавиатуры (самая верхняя панель). Выбранный период будет отображен во второй сверху панели, которая также позволяет перейти на соответствующий период назад или вперед. Нижняя панель диалога состоит из двух закладок: закладка со списком заранее подготовленных часто используемых периодов и закладка визуального выбора начала и конца периода в виде двух независимых календарей.
    • Рис. 4. Диалог выбора периода, закладка со списком периодов, заданных заранее
    • Рис. 5. Диалог выбора периода, закладка выбора визуального периода
  • Диалог калькулятор может открываться как в глобальном инструментальном режиме, в локальном инструментальном режиме, так и режиме всплывающего окна. Пользователю позволяется изменять размер диалога, что позволяет увеличить размер поля ввода выражения и поля отображения ответа вычисления. Вызов калькулятора в режиме всплывающего окна осуществляется автоматически при нажатии на связанный элемент поля редактирования со значком калькулятора, вызов калькулятора в глобальном инструментальном режиме осуществляется с помощью функции Menu.Invoke. На рис. 6 показан общий вид калькулятора. Верхнее поле ввода используется для ввода произвольных выражений для вычисления (при этом можно использовать функции встроенного языка). Результат вычисления отображается во втором сверху поле -- поле результата. При нажатии клавиши Enter в поле ввода выражения, его содержимое заменяется текущее значение поля результата, также это можно осуществить с помощью кнопки со значком калькулятора в поле результата или кнопки = на нижней панели кнопок. Нижняя панель содержит цифровые кнопки, позволяющие добавить одну цифру в создаваемое выражение, а также кнопки:
    • . -- добавить в выражение знак десятичной точки (для создания вещественного числа).
    • + -- добавить в выражение знак сложения.
    • ÷ -- добавить в выражение знак деления (добавляется как /).
    • × -- добавить в выражение знак умножения (добавляется как *).
    • - -- добавить в выражение знак вычитания.
    • -- удалить предыдущий (перед курсором) знак в выражении.
    • C -- очистить текущее выражение.
    • M→ -- перенести текст из буфера обмена в текущее выражение.
    • M← -- поместить результат вычисления в виде текста в буфер обмена.
    • -- поместить текущее вычисляемое выражение внутрь функции Sqr (для вычисления квадрата выражения).
    • -- поместить текущее вычисляемое выражение внутрь функции Sqrt (для вычисления квадратного корня выражения).
    • (, ) -- добавить в выражение знаки открывающейся и закрывающейся скобок.
    • |X| -- поместить текущее вычисляемое выражение внутрь функции Abs (для вычисления абсолютного значения выражения).
    • [X] -- поместить текущее вычисляемое выражение внутрь функции Trunc (для отбрасывания дробной части выражения).
    • .0 -- поместить текущее вычисляемое выражение внутрь функции Round (для округления до целой части выражения).
    • .2 -- поместить текущее вычисляемое выражение внутрь функции Round с параметром 2 (для округления выражения до двух десятичных знаков после точки).

Диалог панели управления визуальных клиентов

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

  • Закладка Текущие сеансы содержит список пользователей, зарегистрированных в данный момент на сервере. Для администраторов доступны дополнительные столбцы, содержащие информацию по статистике нагрузки на сервер базы данных каждого из пользователей. Таблица может быть отсортирована по любому из столбцов, она обновляется автоматически через определенный промежуток времени, для форсирования обновления, можно использовать клавишу F5 или кнопку Обновить.
    • В таблице присутствуют следующие столбцы:
      • Права -- столбец показывает тип прав текущего пользователя. Для обычных пользователей он будет пустым.
      • Имя -- столбец задает имя регистрации (учетной записи) пользователя.
      • Компьютер -- столбец задает наименование компьютера на котором работает пользователь в данный момент.
      • Время входа -- столбец задает дату и время регистрации пользователя на сервере.
      • Количество потоков (информация доступна только для администраторов) -- столбец отображает количество потоков, с которыми работает пользователь в данный момент (в визуальном клиенте отчеты, обработки, документы и справочники открываются в отдельных потоках, которые могут работать параллельно друг-другу). Это статистическая информация.
      • Принято (информация доступна только для администраторов) -- столбец отображает размер данных (в Кб. или Мб.), которые получил сервер от пользователя за время работы. Это статистическая информация.
      • Передано (информация доступна только для администраторов) -- столбец отображает размер данных (в Кб. или Мб.), которые отправил сервер пользователю за время работы. Это статистическая информация.
      • Запросов всего (информация доступна только для администраторов) -- столбец отображает количество запросов серверу, которые создал пользователь за время работы (сюда входят любые запросы в т.ч. запросы к СУБД и query, к примеру, для обновления данного списка пользователей, визуальный клиент отправляет на сервер запрос). Это статистическая информация.
      • Время запросов всего (информация доступна только для администраторов) -- столбец отображает фактическое время, затраченное сервером на исполнение запросов, созданных пользователем за время работы (сюда входят любые запросы в т.ч. запросы к СУБД и query, к примеру, для обновления данного списка пользователей, визуальный клиент отправляет на сервер запрос). Время увеличивается в момент окончания выполнения запроса, а не постоянно в процессе его исполнения. Так как пользователь может работать с несколькими потоками одновременно, затраченное время может увеличиваться быстрее, чем фактически прошедшее время. Это статистическая информация.
      • Запросов базы данных (информация доступна только для администраторов) -- столбец отображает количество запросов к базе данных (запросов к СУБД и query), которые создал пользователь за время работы (данный тип запросов исполняется медленнее и увеличивает нагрузку на СУБД). Это статистическая информация.
      • Время запросов всего (информация доступна только для администраторов) -- столбец отображает фактическое время, затраченное сервером на исполнение запросов к базе данных, созданных пользователем за время работы (сюда входят любые запросы к СУБД и запросы типа query). Это статистическая информация.
      • Запросов Query (информация доступна только для администраторов) -- столбец отображает количество запросов типа query (программные запросы или запросы к временным таблицам базы данных), которые создал пользователь за время работы (данный тип запросов исполняется медленнее и увеличивает нагрузку на СУБД). Это статистическая информация.
      • Время запросов всего (информация доступна только для администраторов) -- столбец отображает фактическое время, затраченное сервером на исполнение запросов типа query, созданных пользователем за время работы (сюда входят программные запросы или запросы к временным таблицам базы данных). Это статистическая информация.
    • Правое меню мыши таблицы позволяет:
      • Послать сообщение -- создает сообщение выделенному пользователю или пользователям. Пользователи могут ответить на полученное сообщение. Получаемое сообщение открывается в виде отдельного окна в визуальном клиенте пользователя. Сообщения, отправленные консольным клиентам, игнорируются.
      • Завершить сеанс (функция доступна только для администраторов) -- инициирует завершение сеанса и закрытие визуального клиента. Пользователю будет задан вопрос, и он имеет возможность отменить процесс завершения для сохранения данных. Если пользователь не отвечает на вопрос в течение определенного времени, сеанс будет завершен автоматически. Данная функция может использоваться, к примеру, при обновлении базы данных для завершения сеансов пользователей, находящихся в данный момент не за рабочим местом.
      • Завершить сеанс (без сохранения) (функция доступна только для администраторов) -- инициирует мгновенное завершение сеанса и закрытие визуального клиента. Так как пользователю не будет задан вопрос о завершении, есть вероятность потерять несохраненные данные, поэтому, такой функцией нужно пользоваться осторожно. Данная функция может использоваться, к примеру, при обновлении базы данных для завершения сеансов пользователей, находящихся в данный момент не за рабочим местом.
    • Дополнительный набор кнопок на нижней панели окна включает следующие функции:
      • Обновить -- позволяет обновить список пользователей с сервера базы данных.
      • Сообщение всем -- создает сообщение, которое будет отправлено всем текущим пользователям одновременно.
      • Завершить (функция доступна только для администраторов) -- инициирует завершение сеанса и закрытие визуального клиента для выделенных пользователей. Пользователю будет задан вопрос, и он имеет возможность отменить процесс завершения для сохранения данных. Если пользователь не отвечает на вопрос в течение определенного времени, сеанс будет завершен автоматически. Данная функция может использоваться, к примеру, при обновлении базы данных для завершения сеансов пользователей, находящихся в данный момент не за рабочим местом.
      • Запрет входа (функция доступна только для администраторов) -- кнопка-переключатель инициирует режим в котором регистрация новых пользователей на сервере базы данных будет невозможна. Для отключения режима, можно нажать на кнопку повторно. Данная функция может использоваться, к примеру, при обновлении базы данных для исключения возможности регистрации новых пользователей. При отправке обновления из Студии, этот режим инициируется автоматически.
  • Закладка Учетные записи доступна только администраторам и позволяет добавлять или изменять свойства существующих учетных записей сервера. Обычно новые учетные записи пользователей создаются автоматически при синхронизации данных по пользователям с сервером домена (или локальным компьютером) по NTLM, однако, какие-то группы пользователей, возможно, требуют ручного создания, либо система используется для ограниченного числа пользователей, информация о которых заводится вручную. Страница также может применяться для отключения доступа пользователей, изменения их прав и т.п. Для информации об автоматической регистрации пользователей, см. статью Общая информация о сервере базы данных. Таблица с учетными записями содержит минимальную полезную информацию для идентификации пользователей, она может быть отсортирована по любому столбцу. Важно также понимать, что в начале любых изменений в данных о регистрации пользователей, администратор блокирует таблицу регистрации пользователей на сервере. При этом, другие администраторы не смогут получить доступ к этой таблице до окончания редактирования и записи или отмены изменений в таблице текущим администратором. После выполнения требуемых изменений в таблице, администратору необходимо нажать на кнопку "Сохранить", которая сохранит изменения и автоматически освободит таблицу учетных записей на сервере.
    • В таблице присутствуют следующие столбцы:
      • Флаги -- столбец показывает тип прав и свойства учетной записи текущего пользователя. Информация состоит из знаков, каждый знак отвечает за свое свойство. Заданы следующие знаки:
        • A -- запись является учетной записью администратора.
        • a -- запись является учетной записью ограниченного администратора.
        • D -- учетная запись отключена.
        • Cp -- пользователю необходимо будет вменить пароль при следующей регистрации на сервере.
        • R -- пользователю запрещено менять пароль.
        • P -- запись не синхронизируется с NTLM, пароль, заданный для этой записи, может не совпадать с паролем пользователя операционной системы.
      • Имя -- столбец задает имя регистрации (учетной записи) пользователя.
      • Первый вход -- столбец задает дату и время первого входа пользователя на сервер. Если пользователь еще не регистрировался на сервере, это поле будет пустым.
      • Последний вход -- столбец задает дату и время последнего входа пользователя на сервер. Если пользователь еще не регистрировался на сервере, это поле будет пустым.
    • Правое меню мыши таблицы позволяет:
      • Редактировать -- выполняется блокировка таблицы учетных записей на сервере (если она не активна в данный момент) и открытие текущей учетной записи на редактирование (см. ниже). Также же действие будет произведено при двойном клике мышью.
      • Добавить пользователя -- выполняется блокировка таблицы учетных записей на сервере (если она не активна в данный момент) и открытие пустой формы новой учетной записи для редактирования. Администратор может таким образом создавать учетные записи не привязанные к записям операционной системы.
      • Удалить пользователя -- выполняется блокировка таблицы учетных записей на сервере (если она не активна в данный момент) и удаление выделенных учетных записей.
      • Добавить копированием -- выполняется блокировка таблицы учетных записей на сервере (если она не активна в данный момент) и открытие формы новой учетной записи для редактирования, поля и элементы формы редактирования будут заполнены из учетной записи, выделенной в данный момент.
      • Отключить учетную запись -- выполняется блокировка таблицы учетных записей на сервере (если она не активна в данный момент) и на выделенных учетных записях будут установлены флаги запрета входа.
      • Сменить пароль... -- выполняется блокировка таблицы учетных записей на сервере (если она не активна в данный момент) и будет выведен диалог изменения пароля для текущей учетной записи. Пароль также может меняться из формы редактирования учетной записи, но изменение пароля таким образом часто удобнее, если необходимо сменить пароли для множества пользователей.
    • Дополнительный набор кнопок на нижней панели окна включает следующие функции:
      • Обновить -- позволяет прочитать заново таблицу учетных записей пользователей с сервера.
      • Сохранить -- кнопка доступна только если таблица находится в режиме редактирования (заблокирована для других администраторов на сервере) и в ней были произведены изменения. Кнопка позволяет сохранить изменения в текущей таблице на сервере и отменяет блокировку таблицы после успешного сохранения.
      • Редактировать -- кнопка-переключатель инициирует блокировку таблицы учетных записей пользователей на сервере для осуществления ее редактирования. Если другой администратор в данный момент уже заблокировал эту таблицу, в блокировке будет отказано, и система покажет информацию о том, какой администратор и когда создал блокировку. Для отмены блокировки необходимо либо сохранить изменения с помощью кнопки "Сохранить", либо отменить изменения повторно нажав кнопку "редактировать".
  • Закладка Вычисление и исполнение доступна только администраторам и используется для исполнения фрагментов кода (code snippets) без необходимости создавать отдельный модуль в Студии. Таким образом могут исправляться ошибки в данных, производиться сложные модификации данных и т.п. Закладка представляет собой редактор исходных текстов и набор кнопок на нижней панели окна. Исходные тексты используют такое же цветовыделение, как и тексты в модулях в Студии. Исходные тексты закладки сохраняются на сервере для текущей учетной записи. При открытии панели, текст автоматически загружается с сервера и администратор может продолжить работу с ним.
    • Дополнительный набор кнопок на нижней панели окна включает следующие функции:
      • Объекты -- позволяет открыть новый объект или форму списка объектов. Произвольный объект выбирается с помощью диалога выбора типа данных. Эта возможность может использоваться администраторами для инициации создания объектов или открытия форм списков, обычно не доступных из главного меню или панели инструментов.
      • Выполнить -- кнопка вызывает компиляцию текущего исходного текста, содержащегося на странице в среде, нового рабочего потока с доступом к глобальным модулям проекта. Если компиляция успешна, код будет запущен на исполнение. До окончания исполнения кода, невозможно будет запустить новый код таким же образом, однако, код исполняется не в корневом потоке системы, поэтому, запуск пунктов меню и работа с глобальными инструментариями может продолжаться в время исполнения этого кода. Если код в данный момент исполняется, для кнопки панели управления будет использована такая же индикация занятости, как и для кнопок формы при исполнении кода модулей. При возникновении исключения, будет выведено окно отладчика с исходным текстом, если режим отладки в данный момент активен и функция остановки на исключениях включена.
      • Остановить -- данная кнопка будет активной только в случае, если исходный текст страницы в данный момент запущен на исполнение и не завершил работу. С помощью этой кнопки администратор может попытаться прервать исполнение модуля. Также этого можно добиться с помощью комбинации клавиш Ctrl+C.
      • Режим отладки -- кнопка-переключатель инициирует включение или отключение режима отладки. В этом глобальном, для визуального клиента, режиме администратор сможет вызывать отладчик с помощью комбинации клавиш Ctrl+Alt+C и, если разрешена остановка при исключениях, отладчик будет выведен автоматически при возникновении исключения в любом модуле системы.

Диалог свойств учетной записи пользователя

Диалог свойств учетной записи пользователя используется администратором при создании новой учетной записи или редактировании существующей. Окно диалога показано на рис. 4. В диалоге используются следующие поля и элементы:

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

Глобальные комбинации клавиш для визуальных и консольных клиентов

При работе с визуальным и консольным клиентами доступны следующие комбинации клавиш:

  • Ctrl+C (только для визуального клиента) -- осуществляет остановку, выполняющейся в данный момент обработки.
  • Ctrl+Alt+C (только при наличии административных прав и включенном режиме отладки) -- открывает окно встроенного отладчика.
  • Ctrl+<цифровая клавиша> (только для визуального клиента) -- переключается между первыми 10 окнами верхней панели задач.
  • Alt+<цифровая клавиша> (только для визуального клиента) -- переключается между первыми 10 группами окон нижней панели задач.
  • Ctrl+F4 (только для визуального клиента) -- закрыть текущее окно.
  • Ctrl+Tab (только для визуального клиента) -- активировать следующее окно текущего потока.
  • Shift+Ctrl+Tab (только для визуального клиента) -- активировать предыдущее окно текущего потока.
  • Shift+Alt+Ctrl+O или Shift+Alt+Ctrl+P (только для визуального клиента) -- инициировать создание текстового файла лога отказа и закрыть визуальный клиент. Эта функция может использоваться для создания логов отказа для разработчиков, если клиент работает неверно или не отвечает.