Через диалоговое окно пользователь может изменить ширину самого текстового окошка и/или максимальную длину вводимого текста. При этом подчеркивается, что нажатие на клавишу Enter будет сигналом на передачу измененных данных на MAS. Повторяем, кнопка «Пересчитать может быть лишней. Но в этом случае не будет лишним вставить в документ соответствующий комментарий. Иначе пользователь может не дождаться ответа – глобус в верхнем правом углу браузера не будет крутиться.
В диалоговом окне форматирования галочки (рис. 2.12) есть собственная «галочка», «постановка» которой создателем MAS-приложения будет означать, что изменение в «галочке», поставленной в самом Mathcad-документе, будет тут же передаваться на MAS. Такие же галочки имеются и в диалоговых окнах форматирования радиокнопок.
В диалоговом окне списка есть окошко (правый верхний угол), фиксирующее число элементов, которые будут одновременно показаны в списке. Если это число меньше числа элементов в списке, то они будут показаны с прокруткой. В «радиокнопках» всегда показаны все элементы (кнопки). В этом, как мы уже отметили, и состоит единственное отличие списка от радиокнопок.
Внимание! Элементы управления интерфейсом «Список» и «Радиокнопки» могут работать неправильно, если в них введены некоторые спецсимволы – символ градусов (°), например. Это относится (увы) и к буквам кириллицы.
Программа (макрос), вшитая в Mathcad-документ, как отмечено выше, и была причиной отказа от Controls и перехода к WebControls. Из-за этого в списке WebControls не оказалось такого удобного элемента интерфейса как «бегунок» (Slider). Зато сетевые радиокнопки устроены более правильно, чем их несетевые аналоги. В несетевых элементах интерфейса нет радиокнопок, а есть радиокнопка. А это ошибка – радиокнопок может быть три и более, но никак не одна или две.
«Бегунок» удобен тем, что он позволяет мышкой выставить нужное значение переменной в заданном диапазоне и с заданной размерностью. Но бегунок можно сымитировать, отформатировав определенным образом список – оставив в окне только один элемент, а в таблице форматирования (Name – Value: записав нужное количество дискретных значений, присваиваемой переменной: 0.1, 0.11, 0.12…0.2.
Высота выпадающего списка не должна превышать высоту экрана дисплея. В противном случае работать с таким списком становится неудобно и его приходится заменять на текстовое окошко. Правее свернутого списка можно указать, что в нем будет раскрыто: диапазон и шаг дискретных значений. Если вводятся тексты, то их следует отсортировать по алфавиту.
В идеале можно (и нужно!) так спроектировать интерфейс для пользователя MAS, что он не будет касаться клавиатуры, а будет работать только с мышкой.
Мы говорили о том, что в сетевом Mathcad-документе, может и не быть кнопки Submit. Но в документ можно вставить и несколько таких кнопок, если документ объемный и исходные данные нужно менять в разных местах. В этом случае такие места нужно «отмечать» такой кнопкой Submit (пример с двумя такими кнопками показан на рис. 2.18). Хорошим решением будет разбивка расчета на отдельные блоки, окончание которых фиксируется кнопкой Submit. Расчеты по последующему блоку будут заблокированы до тех пор, пока пользователь не введет нужные исходные данные в предыдущих блоках, не проверит правильность решения и не нажмет очередную клавишу Submit.
Те, кто проектировал интерфейс пользователя на языках программирования (Visual C, Visual Basic, Delphi и др.), отметят, что интерфейс MAS довольно скудный. Мы уже отмечали, что там нет Combo box – окошка, совмещающего текстовое окошко и список. Не предусмотрена возможность «гашения» некоторых элементов интерфейса, если какая-либо переменная принимает определенное значение (частичное решение этой проблемы http://twt.mpei.ac.ru/MAS/Worksheets/Smart_Input.mcd) и т.д. Но здесь нужно принимать во внимание, что WebControls – это не разработка MathSoft, а стандартные средства передачи данных в Интернет, которые пока не очень богатые. Это некие заготовки (полуфабрикаты), которые можно доработать.
Можно скомбинировать текстовое окошко и список, и получить Combo box. Такое комбинированное окошко, сочетающее текстовое окошко и список, задействовано в документе по адресу http://twt.mpei.ac.ru/mas/worksheets/VPU_4_1.mcd – пользователь имеет возможность выбрать значения диаметра фильтра из списка (1.0, 1.5, 2.0, 2.6, 3.0 и 3.4 м) или ввести свое значение.
Все знают, что, составляя Mathcad-документ, нужно не лениться – не скупиться на комментарии: текстовые и графические вставки, не влияющие на сам расчет, но помогающие в нем разобраться не только другому человеку, но и самому разработчику.
Это правило требует существенной коррекции при подготовке Mathcad-документа к работе в сети. Дело в том, что объемный документ с большими графическими вставками будет «тормозиться» в сети. Поэтому основные комментарии (история создания документа, его подробное описание, инструкция по работе и др.) целесообразно поместить в отдельный (не Mathcad) документ (в html-файл, созданный в Word’е, например), а в самом Mathcad-документе поместить только минимум комментариев и ссылку на «большие», дополнительные комментарии, которые открываются в отдельном окне браузера. По этой же причине не рекомендуется перегружать Mathcad-документ сложными графиками. С другой стороны, следует помнить, что в Mathcad-документе, открытом на MAS, нет возможности мышкой вращать трехмерный график, например. Поэтому следует дублировать такой график в разных ракурсах. Другое решение: можно запрашивать углы ориентации графика вокруг осей и делать пересчеты перед выводом трехмерного графика на дисплей – см. пример на сайте http://twt.mpei.ac.ru/mas/worksheets/3D_Plot_Rotate.mcd.
Следует отметить, что технология MAS, предоставляя пользователю возможность доступа к операторам и функциям Mathcad, отсекает он него команды меню.
Публикуя документ в Интернете, следует думать и о его многоязычности. Для этого, во-первых, все комментарии можно продублировать на нескольких языках – по-русски, по-английски и т.д. Есть и другое решение – давать пользователю возможность выбора языка.
Если пользователя английский язык (умолчание) не устраивает, то он может перед началом расчета выбрать из списка другой и нажать на клавишу Choose. Документ вернется с комментариями на выбранном языке. Операторы, выводящие ответ, стоит отметить цветом. Другим цветом можно выделить WebControls, через которые меняются исходные данные.
Разноязычные комментарии вводятся в вектор, элементы которого выводятся на дисплей в зависимости от выбранного языка (первый язык – первый элемент, второй язык – второй элемент и т.д.). Есть и третье решение – дать возможность пользователю открывать несколько вариантов одного расчета (несколько файлов) с комментариями и переменными (Vinput и Vвх, например) на различных языках. Так построены документы http://twt.mpei.ac.ru/mas/worksheets/Tests/Test_Cone.mcd и http://twt.mpei.ac.ru/mas/worksheets/Tests/Test_Cone_Eng.mcd, например.
И последнее. При открытии MAS-приложений в Интернете могут возникать проблемы с показом букв кириллицы не только в WebControls, но и в простых текстовых комментариях Mathcad-документов. Поэтому можно рекомендовать заменять текстовые комментарии именами переменных, где спецсимволы вставлены после взятия аккорда «Ctrl + Shift + j», помня о том, что их должен быть минимальное количество (см. выше). Здесь будет одно ограничение – нельзя использовать точку, т.к. она становится невидимой и выделяет последующую часть имени переменной в нижний индекс Vвх, например.
В Mathcad-документ можно внедрить фрагменты Excel, MatLab, LabView и обмениваться данными с этими программами. Excel, например, часто внедряют, чтобы удобнее было вводить и выводить таблицы (вектора и матрицы) или задействовать специфические функции электронных таблиц.
Список зависит от программ, которые установлены на компьютере. Mathcad-документ с «чужепрограммными» вставками можно размещать на MAS только после решения лицензионных вопросов с разработчиками соответствующих программ. Ведь программы приобретались для использования только на рабочей станции, а не для открытия в Интернете. Если вообще приобретались.
В Mathcad-документе, подготовленном для публикации в сети, могут быть сделаны Mathcad-вставки, дублирующие некоторые фрагменты расчетов. Дело в том, что часто у графика могут находиться операторы глобального присваивания переменным, значения которых «закидываются» в начало расчета. Глобальное присваивание, к сожалению, невозможно в Controls и WebControls. В этом случае приходится часть Mathcad-документа дублировать и скрывать этот дубль в захлопнутой области.
Об именах переменных и функций
При подготовке Mathcad-документа к публикации в сети может оказаться так, что имя переменной или функции, нормально работающее в среде Mathcad, дает сбой при открытии этого документа в сети. Обычно это случается, если используются русские буквы в именах. Вообще-то в именах объектов программирования русские буквы нежелательны не только в «работающих» именах переменных, функций, файлов и т.д., но даже и в комментариях (см. выше). Тем не менее, их приходится использовать особенно в специфических расчетах, где те или иные объекты уже давно получили русские имена и которым пользователи привыкли. У многих этих переменных есть латинские аналоги, но у некоторых нет. Если русские буквы необходимы в формулах, то можно посоветовать прием нивилирования «русскости» этих переменных. Автор заметил, что, например, переменные ч (час), мг-экв (миллиграмм-эквивалент) и некоторые другие – Ц. баз (базовая цена, где баз – это нижний текстовый индекс) при открытии Mathcad-документ в сети дают сбой – переменные «краснеют» с сообщением об ошибке «Переменная или функция не определена». «Подлечить» такие переменные можно, поставив первым их символом пробел. Вид переменной не изменится (она только чуть сдвинется вправо), а расчет восстановится. «Лечить» переменные также можно заменой (подправкой) их имени через команду Edit/Replace, проставив галочку у слова Math в диалоговом окне настройки замены.