31 января 2011 г.

Запросы к Dabacon. Часть 2

Пример нахождения элементов по определенных условиям и вывод информации.

Задача:
    найти и вывести все элементы типа EQUI, у которых в атрибуте Desc встречается слово "Насос"

Вариант 1.Запрос типа без фильтра и фильтрация в цикле (долгий вариант)
 
--запрашиваем элементы типа EQUI
VAR !equi COLLECT ALL EQUI FOR CE
--запускаем цикл с конечной точкой - размер полученного массива элементов
do !x from 1 to !equi.Size()
  $( пропускаем элемент и переходим к следующему, если условие не выполнилось
  используется метод Matchwild, применяемый к строке, для поиска вхождения подстроки
  метод .Matchwild возвращает логическое значение "да" или "нет"
  соответственно следующая команда трактуется как "если в атрибуте Desc --НЕ встретилось
  значение Насос, тогда пропустить $)
     SKIP IF (!equi[!x[.Dbref().Desc.Matchwild('*Насос*').Not())   

    --выводим на печать
    $P $!equi[$!x]

enddo

28 января 2011 г.

Базовые конструкции языка. Работа с циклами. Часть 2

Пример вложенных циклов.

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

Итак, есть ряд цифр от 1 до 9.
Задача:
    вывести на экран результаты умножения цифры из ряда на все цифры из ряда по очереди.

Решение:

          --Вводим массив цифр. Далее приведен один из способов генерации массива из строки
!digitString = '1 2 3 4 5 6 7 8 9'
$( с помощью метода .Split(), который применен к строковой переменной, мы получаем массив данных. Если .Split() применен без параметров, тогда применяется разделитель по умолчанию - пробел $)
!digitArray = !digitString.Split() 

26 января 2011 г.

Базовые конструкции языка. Работа с циклами. Часть 1

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

Синтаксис:

do !x from ИНДЕКС_СТАРТА to КОНЕЧНАЯ_ТОЧКА
  --действия, которые выполняются с элементами относительно индекса !x
enddo
Пример:
   Печать значений от 1 до 10

25 января 2011 г.

Запросы к Dabacon. Часть 1

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

Базовый синтаксис:
    VAR !arr COLLECT ALL ТИП FOR ГДЕ_ИСКАТЬ

Результат:
    В переменную !arr запишется массив значений (типа STRING) референтных номеров найденных элементов. При отсутствии элементов размер массив будет равен 0 (для использования с условными операторами)

Пример:
    Запрос элементов определенного типа

24 января 2011 г.

Базовые конструкции языка. Условия

Условия:

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

if ( УСЛОВИЕ ) then
 --код, выполняемый при выполнении УСЛОВИЯ
 --если УСЛОВИЕ не выполняется, код тоже не будет выполнен
endif
Пример:
    Выполнение действие в зависимости от типа текущего элемента

Открытие блога

Всем здравствуйте!!
24 января запущен  блог, посвященный встроенному прикладному макроязыку программирования PML.
Данный язык применяется для написания процессов автоматизации действий пользователя при работе в среде AVEVA PDMS (проектирование промышленных объектов) и AVEVA MARINE (проектирование судов).
Обе среды обеспечивают работу в трехмерном пространстве, являются многопользовательскими и построены на собственной базе данных - Dabacon.