История изменений
Исправление monk, (текущая версия) :
Ну тогда описание архитектуры:
1. Backend: http://www.couchbase.com/download . Интерфейс к ней в процессе написания.
2. Front-end: https://github.com/Kalimehtar/gtk-cffi (уже всё рабоает, но реализованы не все виджеты).
3. Middle-tier: сервер приложений с бизнес логикой а-ля 1С. В зависимости от *feature* объекты либо по запросу все загружаются в память навсегда, либо в виде weak-ref, либо при каждом чтении берутся из couchbase (у него есть своё кэширование).
Синтаксис
(метод обработка-проведения (поступление)
(пусть ((дв (новый регистр:товары-на-складах)))
(для-каждого (стр (товары поступление))
(пусть ((нов-стр (добавить-приход дв)))
(заполнить нов-стр стр)
(уст (период нов-стр) (дата поступление))))
(уст (поле (движения поступление) 'товары-на-складах) дв)))
стандартный CL также поддерживается (кроме имен функций предметной области)
(defmethod обработка-проведения ((obj поступление))
(let ((reg (make-instance регистр:товары-на-складах)))
(dolist (item (товары obj))
(let ((new-str (добавить-приход reg)))
(заполнить new-str item)
(setf (период new-str) (дата obj))))
(setf (getf (движения obj) 'товары-на-складах) reg)))
Критикуйте, уточняйте, если что неясно.
Исходная версия monk, :
Ну тогда описание архитектуры:
1. Backend: http://www.couchbase.com/download . Интерфейс к ней в процессе написания.
2. Front-end: https://github.com/Kalimehtar/gtk-cffi (уже всё рабоает, но реализованы не все виджеты).
3. Middle-tier: сервер приложений с бизнес логикой а-ля 1С. В зависимости от *feature* объекты либо по запросу все загружаются в память навсегда, либо в виде weak-ref, либо при каждом чтении берутся из couchbase (у него есть своё кэширование).
Синтаксис
(метод обработка-проведения (поступление)
(пусть ((дв (новый регистр:товары-на-складах)))
(для-каждого (стр (товары поступление))
(пусть ((нов-стр (добавить-приход дв)))
(заполнить нов-стр стр)
(уст (период нов-стр) (дата поступление))))
(уст (поле (движения поступление) 'товары-на-складах) дв)))
стандартный CL также поддерживается (кроме имен функций предметно области)
(defmethod обработка-проведения ((obj поступление))
(let ((reg (make-instance регистр:товары-на-складах)))
(dolist (item (товары obj))
(let ((new-str (добавить-приход reg)))
(заполнить new-str item)
(setf (период new-str) (дата obj))))
(setf (getf (движения obj) 'товары-на-складах) reg)))
Критикуйте, уточняйте, если что неясно.