Категория:Выгрузка информации в мебельную базу
Для создания отчетов и стыковки K3-Мебель с различными внешними приложениями существует возможность выгрузки различной информации из геометрического ядра K3 Мебель в базу данных. Строго говоря, для выгрузки можно пользоваться инструментами работы с базами данных, описанными в настоящем руководстве, но в большинстве случаев достаточно стандартных средств выгрузки, которая осуществляется при помощи специальных функций K3-Мебель. В данном случае нет необходимости прибегать к макропрограммированию.
MebelBase <FileName>
Команда mebelbase создает мебельную базу с полным именем (включая расширение) <FileName>.
Выгрузка информации в мебельную базу осуществляется по наличию атрибута FurnType. В зависимости от значений этого атрибута мебельные элементы делятся на основные типы, представленные в таблице и, в зависимости от типа имеют разные основные таблицы выгрузки данных. Общая информация о мебельных элементах содержится в таблице TElems.
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Дополнительно выгружаются обработки, участвующие в создании мебельных элементов (в основном, панелей). Основная таблица выгрузки обработок – TWorks.
Пример на макроязыке к3:
BaseName=ProjPath+getfiletitle(sysvar(2))-3+".mdb"; //-- Имя будущей базы ... // здесь какой то код //-- Выгружаем базу данных res=fileexist(BaseName); // проверить наличие файла if (res==1) // если файл с таким именем существует { res=removefile(BaseName); // удалить его. иначе, выгрузка невозможна if (res==0) // не смогли удалить. возможно файл занят. например, открыт для просмотра { putmsg("Не удалось удалить существующую мебельную базу с таким же именем как в задании ",0); // вывести сообщение об ошибке goto endlab; // завершить работу } } #res mebelbase BaseName; // проверки пройдены. выгрузить базу с заданным именем if (res=0) // проверка. удалось ли выгрузить базу. { putmsg("Не удалось выгрузить мебельную базу ",0); // вывести сообщение об ошибке goto endlab; // завершить работу } ... // Выгрузка закончена. Здесь может быть какой то код работы с базой. endlab: ... // Выгрузка не получилась. Здесь может быть какой то код обработки ошибки. exit;
Аналогичный функционал
Пример на языке python:
import os import k3 # type: ignore def getProjPath() -> str: '''Получить путь папке проекта''' return k3.getfilepath(k3.sysvar(2)) def getBaseName() -> str: '''Получить полный путь к базе''' return ( os.path.join(getProjPath(), k3.getfiletitle(k3.sysvar(2)))[:-3] + ".mdb" ) # -- Имя будущей базы def getPref() -> str: """Получить Номер заказа""" return k3.getorderinfo("Number") def create_base_order() -> bool: """Выгружает базу данных текущего заказа. Перед выгрузкой проверяет, существует ли файл базы с таким именем. Если файл существует, удаляет его. Затем выгружает мебельную базу в указанный файл. Возвращает значение True. Если во время выгрузки возникает ошибка, возбуждается исключение. Args: None Returns: bool Raises: Exception: если не удалось выгрузить мебельную базу или удалить существующий файл базы. """ _basename = getBaseName() res = k3.fileexist(_basename) if res == 1: res1 = k3.removefile(_basename) if res1 == 0: raise Exception("Не удалось выгрузить мебельную базу ") res = k3.mebelbase(_basename) if res == 0: k3.mbcarcase(k3.k_set, k3.k_yes) raise Exception("Не удалось выгрузить мебельную базу ") return True
Страницы в категории «Выгрузка информации в мебельную базу»
Показано 14 страниц из 14, находящихся в данной категории.