Запрос данных из Номенклатуры

Материал из K3-Macro
Макро | Мебельные команды и функции | Работа с заказом | Длинномеры | Комната | Мебельная панель | Профиль | Каркас | Виды и фильтры | Расчёт стоимости | Мебельные объекты | Работа с изделиями в сцене | Работа с мебельными состояниями | Запрос данных из Номенклатуры | Получение информации о положении вспомогательных файлов | Создание отчётов FastReport | Работа с чертежами | Пользовательские подстановки | Параметризация кривых | Приписывание мебельных позиций | Состояние мебельных пунктов меню и панелей инструментов | Определение мебельных габаритных координат | Заполнение массива параметрами отверстий | Поиск прототипа | Информация о линии свободного крепежа | Хэш-код объекта | Выгрузка информации в мебельную базу

PriceInfo[править | править код]

variant PriceInfo(int <PrMater>, string <FieldName>, variant <N>[, INTEGER <TableID>[, STRING <ArrName>]])

Функция возвращает информацию из поля или свойства с именем <FieldName> записи (материала) с номером <PrMater> справочника номенклатуры. Если данное поле для данной записи содержит NULL, функция возвращает значение по умолчанию <N>.

Необязательный параметр <TableID> определяет источник данных:

  • 1 — номенклатурный справочник;
  • 2 — справочник сборочных единиц.

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

<ArrName> — имя создаваемого массива, в который будут занесены все элементы перечисляемого или множественного свойства. Каждый элемент заполняет два элемента массива:

  • первый значение элемента (число или строка в зависимости от типа значений свойства);
  • второй название элемента (строка);

Если задано <ArrName>, то <FieldName> должно задавать идентификатор перечисляемого или множественного свойства, а функция возвратит количество элементов у этого свойства (размерность массива <ArrName> будет в два раза больше)

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

Из номенклатурного справочника:

  • COD — ID материала
  • MATTYPE — ID типа материала
  • UNITS — ID единицы измерения материала
  • PRICE — цена материала
  • MATTYPENAM — название типа материала
  • MATNAME — название материала
  • ARTICLE — артикул материала
  • UNITSNAME — название единицы измерения
  • GROUPID — ID группы материала
  • GROUPNAME — название группы материала
  • PARENTID — ID "родителя" данной номенклатурной единицы.

Из справочника сборочных единиц

  • NAME — название сборочной единицы
  • FURNTYPE — Furntype сборочной единицы
  • GROUPID — ID группы сборочной единицы
  • GROUPNAME — название группы сборочной единицы

NPGetByWhere[править | править код]

INTEGER NPGetByWhere(INTEGER <TableID>, { STRING <Where> | STRING ARRAY <Where>}, STRING <ArrName>[, INTEGER <SubsID>])

Функция извлекает из справочника "Номенклатура" или справочника "Сборочные единицы" записи, удовлетворяющие условию, заданному в строке или массиве строк <Where>. Строка или массив строк <Where> содержит логическое выражение, задающее условие отбора. При этом идентификаторы свойств должны быть заключены в квадратные скобки ([]). Синтаксис выражения должен удовлетворять синтаксису предложения WHERE части SQL-запроса/ Строка с условием должна быть не длиннее 255 символов. Если необходимо условие большей длины, то вместо одной строки необходимо использовать массив строк, каждая из которых не должна превышать 255 символов.

<TableID> — источник данных:

  • 1 — Извлечь из справочника "Номенклатура";
  • 2 — Извлечь из справочника "Сборочные единицы".

<ArrName> — строка с именем массива, в который надо положить результат. Массив создается или пересоздается внутри функции.

<SubstID> — код подстановки или 0: если задан код номенклатурной подстановки, то выбираем только из этой подстановки

Функция возвращает количество извлеченных записей. Если их больше ноля, то создается массив с именем <ArrName>, в котором находятся ID найденных записей.

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

NPGetByProps[править | править код]

INTEGER NPGetByProps(INTEGER <GoodsID>, VARIANT <GoodsProp>, VARIANT <MatProp>, DOUBLE <ValProp>[, STRING <Filter>])

INTEGER NPGetByProps(INTEGER <GoodsID>, VARIANT <GoodsProp>, VARIANT ARRAY <MatProp>, DOUBLE <ValProp>[, INTEGER <Number>[, INTEGER <Start>]][, STRING <Filter>])

Функция ищет номенклатурную единицу из множества, назначенного сборочной единице <GoodsID> свойством <GoodsProp>, с наибольшим значением свойства <MatProp> (или группы свойств, заданной массивом <MatProp>), которое меньше либо равно заданного значения <ValProp>.

<Number> — количество номенклатурных свойств. Используется если <MatProp> — массив. Если не задано, то <Number> равно размерности массива <MatProp>

<Start> — индекс первого номенклатурного свойства в массиве <MatProp>. Используется если <MatProp> — массив. Если не задано, то <Start> равно единице.

<Filter> – строка-условие фильтрации, в которой можно использовать идентификаторы свойств, заключенные в квадратные скобки

  • >0ID найденной номенклатурной единицы
  • 0 — номенклатурной единицы с таким значением свойства <MatProp> не существует
  • -1 — нет сборочной единицы с заданным <GoodsID>
  • -2 — нет свойства <GoodsProp> или оно не является множественным
  • -3 — нет такого свойства <MatProp> или оно имеет не вещественные значения


Примечание 1. Свойства <GoodsProp> и <MatProp> могут быть заданы строкой — идентификатором свойства, или числом — кодом свойства.

Примечание 2. Свойству <MatProp>[i] соответствуют значение <ValProp>[i] для i от <Start> до <Start>+<Number>–1



Пример 1:

GoodsID=DoorPict; // ID фасада в справочнике изделий
GoodsProp="ListMat";
MatProp[1]="Height";
MatProp[2]="Width";
ValProp[1]=dz;
ValProp[2]=dx;
IDFas=NPGetByProps(GoodsID,GoodsProp,MatProp,ValProp);

Пример 2:

=NPGetByProps(475,”Guide”,”Length”,350.,”[PriceCoeff] > 1.”);

NPGetByPropN[править | править код]

INTEGER NPGetByPropN(INTEGER <EntityID>, VARIANT <MultiProp>, VARIANT <MatProp>, VARIANT <ValProp>[, INTEGER <Number>[, INTEGER <Start>]][, STRING <Filter>])

Функция ищет номенклатурную единицу из множества, назначенного номенклатурной единице <EntityID> свойством <MultiProp>, с наибольшим значением свойств <MatProp>, которые меньше либо равны заданным значениям <ValProp>.

<EntityID> — ID номенклатурной единицы

<MultiProp> — идентификатор или код многозначного свойства, задающего номенклатурное множество

<MatProp> — идентификатор или код номенклатурного свойства. Может быть массивом

<ValProp> — вещественное значение номенклатурного свойства. Должен быть массивом, если <MatProp> — массив

<Number> — количество номенклатурных свойств. Используется если <MatProp> — массив. Если не задано, то равно размерности массива <MatProp>

<Start> — индекс первого номенклатурного свойства в массиве <MatProp>. Используется если <MatProp> — массив. Если не задано, то равно 1

<Filter> — дополнительный фильтр отбора номенклатурных единиц

  • >0 — ID найденной номенклатурной единицы
  • 0 — номенклатурной единицы с таким значением свойства <MatProp> не существует
  • –1 — нет такой номенклатурной единицы
  • –2 — нет такого свойства <MultiProp> или оно не является множественным
  • –3 — нет такого свойства <MatProp> или оно имеет не вещественные значения


Примечание Cвойству <MatProp[i]> соответствуют значение <ValProp[i]> для i от <Start> до <Start>+<Number>–1



FixDets[править | править код]

INTEGER FixDets(INTEGER <FixTypeID>, STRING <ArrName>)

Функция создает массив с именем <ArrName> и заполняет его параметрами типа крепежа типа <FixTypeID>. Функция возвращает количество деталей крепежа с данным типом. Если чисто деталей с данным типом больше нуля, то создается массива <ArrName> размерностью 5*n, где n — число деталей крепежа с данным типом.

<ArrName>[5*i+1] — ID детали крепежа

<ArrName>[5*i+2] — X-координата точки установки детали относительно точки установки группы крепежа

<ArrName>[5*i+3] — Y-координата точки установки детали относительно точки установки группы крепежа

<ArrName>[5*i+4] — Z-координата точки установки детали относительно точки установки группы крепежа

<ArrName>[5*i+5] — номер используемого правила для этой детали крепежа

FixDetInfo[править | править код]

VARIANT FixDetInfo(INTEGER <DetID>, STRING <Property>, VARIANT <DefValue>)

Функция возвращает значение свойства или поля с именем <Property> у детали крепежа с ID=<DetID>. Если такого свойства или поля нет, то возвращается значение <DefValue>.

Допустимые свойства:

  • Y — величина сдвига детали в мм по оси Y
  • Ky — величина сдвига детали в долях толщины по оси Y
  • Z — величина сдвига детали в мм по оси Z
  • Kz — величина сдвига детали в долях толщины по оси Z
  • Alpha — угол поворота детали крепежа вокруг оси Z в градусах
  • PriceID — ID номенклатурной единицы, соответствующей этой детали крепежа

FixRuleInfo[править | править код]

VARIANT FixRuleInfo(INTEGER <RuleID>, STRING <Property>, VARIANT <DefValue>)

Функция возвращает значение свойства или поля с именем <Property> у правила крепежа с ID=<RuleID>. Если такого свойства или поля нет, то возвращается значение <DefValue>.

Допустимые свойства:

  • Type — тип правила
  • Left — минимальное расстояние до левого края торца
  • Right — минимальное расстояние до правого края торца
  • Step — величина шага кратность шага между экземплярами детали крепежа
  • Number — количество экземпляров детали крепежа
  • Margin — правила выравнивания деталей крепежа вдоль торца
  • Table — имя таблицы при расстановке по таблице или пустая строка, если это правило не по таблице
  • Macro — имя макро при расстановке по макро или пустая строка, если это правило не по макро

GetListMat[править | править код]

INTEGER GetListMat(INTEGER <TypeMat>, STRING <ArrayName>)

Функция создает массив с именем <ArrayName>, который заполняет ID материалов из номенклатурного справочника, согласно критерию <TypeMat>. Анализируем только видимые объекты

Возможные значения критерия <TypeMat>:

<TypeMat> = 1 — кромочные материалы

<TypeMat> = 2 — отделочные материалы

<TypeMat> = 3 — материалы панелей

Функция возвращает количество материалов в списке


Макро | Мебельные команды и функции | Работа с заказом | Длинномеры | Комната | Мебельная панель | Профиль | Каркас | Виды и фильтры | Расчёт стоимости | Мебельные объекты | Работа с изделиями в сцене | Работа с мебельными состояниями | Запрос данных из Номенклатуры | Получение информации о положении вспомогательных файлов | Создание отчётов FastReport | Работа с чертежами | Пользовательские подстановки | Параметризация кривых | Приписывание мебельных позиций | Состояние мебельных пунктов меню и панелей инструментов | Определение мебельных габаритных координат | Заполнение массива параметрами отверстий | Поиск прототипа | Информация о линии свободного крепежа | Хэш-код объекта | Выгрузка информации в мебельную базу