diff --git a/test/db-table.clog b/test/db-table.clog
index 9b5ddaa..7636cd3 100644
--- a/test/db-table.clog
+++ b/test/db-table.clog
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/test/lookup.clog b/test/lookup.clog
index 46537c7..718af54 100644
--- a/test/lookup.clog
+++ b/test/lookup.clog
@@ -1 +1 @@
-span First Next
\ No newline at end of file
+span First Next
\ No newline at end of file
diff --git a/test/many-to-one.clog b/test/many-to-one.clog
index 9412d8d..74e5b90 100644
--- a/test/many-to-one.clog
+++ b/test/many-to-one.clog
@@ -1 +1 @@
-n/a n/a
\ No newline at end of file
+n/a n/a
\ No newline at end of file
diff --git a/test/rolodex.clog b/test/rolodex.clog
index 68089d5..51ffabd 100644
--- a/test/rolodex.clog
+++ b/test/rolodex.clog
@@ -1 +1 @@
-Name Nick Phone Insert First Next Update Clear Fields Delete
Invoice Date Insert First Next Update Clear Fields Delete
\ No newline at end of file
+Name Nick Phone Insert First Next Update Clear Fields Delete
Invoice Date Insert First Next Update Clear Fields Delete
\ No newline at end of file
diff --git a/test/test.db b/test/test.db
index 6e01b2c..165244e 100644
Binary files a/test/test.db and b/test/test.db differ
diff --git a/tools/clog-builder-settings.lisp b/tools/clog-builder-settings.lisp
index d21fc04..28c47b4 100644
--- a/tools/clog-builder-settings.lisp
+++ b/tools/clog-builder-settings.lisp
@@ -1365,6 +1365,7 @@
:create-type :base
:setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record))
+ (setf (attribute control "data-clog-one-row-db") "")
(setf (attribute control "data-clog-one-row-table") "")
(setf (attribute control "data-clog-one-row-where") "")
(setf (attribute control "data-clog-one-row-order") "")
@@ -1375,10 +1376,14 @@
:on-setup ,(lambda (control control-record)
(declare (ignore control-record))
(let ((parent (attribute (parent-element control) "data-clog-name"))
+ (cdb (attribute control "data-clog-one-row-db"))
(master (attribute control "data-clog-one-row-master")))
+ (if (or (equal cdb "")
+ (equal cdb "undefined"))
+ (setf cdb parent))
(when (equal master "")
(setf master nil))
- (format nil "(setf (clog-database target) ~A) ~
+ (format nil "(setf (clog-database target) (clog-database (~A panel))) ~
~A ~
(setf (table-name target) \"~A\") ~
(setf (where-clause target) \"~A\") ~
@@ -1386,12 +1391,10 @@
(setf (limit target) \"~A\") ~
(setf (row-id-name target) \"~A\") ~
(setf (table-columns target) '(~A))"
- (if master
- (format nil "(clog-database (~A panel))" parent)
- (format nil "(~A panel)" parent))
+ cdb
(if master
(format nil "(set-master-one-row target (~A panel) \"~A\")"
- parent master)
+ cdb master)
"")
(attribute control "data-clog-one-row-table")
(attribute control "data-clog-one-row-where")
@@ -1402,7 +1405,9 @@
:events ((:name "on-fetch"
:parameters "target")
,@*events-element*)
- :properties ((:name "table name"
+ :properties ((:name "database control"
+ :attr "data-clog-one-row-db")
+ (:name "table name"
:attr "data-clog-one-row-table")
(:name "table row id name"
:attr "data-clog-one-row-id-name")
@@ -1424,6 +1429,7 @@
:create-type :base
:setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record))
+ (setf (attribute control "data-clog-one-row-db") "")
(setf (attribute control "data-clog-one-row-table") "")
(setf (attribute control "data-clog-one-row-where") "")
(setf (attribute control "data-clog-one-row-order") "")
@@ -1434,10 +1440,14 @@
:on-setup ,(lambda (control control-record)
(declare (ignore control-record))
(let ((parent (attribute (parent-element control) "data-clog-name"))
+ (cdb (attribute control "data-clog-one-row-db"))
(master (attribute control "data-clog-one-row-master")))
+ (if (or (equal cdb "")
+ (equal cdb "undefined"))
+ (setf cdb parent))
(when (equal master "")
(setf master nil))
- (format nil "(setf (clog-database target) ~A) ~
+ (format nil "(setf (clog-database target) (clog-database (~A panel))) ~
~A ~
(setf (table-name target) \"~A\") ~
(setf (where-clause target) \"~A\") ~
@@ -1445,12 +1455,10 @@
(setf (limit target) \"~A\") ~
(setf (row-id-name target) \"~A\") ~
(setf (table-columns target) '(~A))"
- (if master
- (format nil "(clog-database (~A panel))" parent)
- (format nil "(~A panel)" parent))
+ cdb
(if master
(format nil "(set-master-one-row target (~A panel) \"~A\")"
- parent master)
+ cdb master)
"")
(attribute control "data-clog-one-row-table")
(attribute control "data-clog-one-row-where")
@@ -1469,7 +1477,9 @@
(:name "on-column"
:parameters "target column table-column")
,@*events-element*)
- :properties ((:name "table name"
+ :properties ((:name "database control"
+ :attr "data-clog-one-row-db")
+ (:name "table name"
:attr "data-clog-one-row-table")
(:name "table row id name"
:attr "data-clog-one-row-id-name")
@@ -1491,6 +1501,7 @@
:create-type :base
:setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record))
+ (setf (attribute control "data-clog-one-row-db") "")
(setf (attribute control "data-clog-one-row-table") "")
(setf (attribute control "data-clog-lookup-value") "")
(setf (attribute control "data-clog-lookup-option") "")
@@ -1503,10 +1514,14 @@
:on-setup ,(lambda (control control-record)
(declare (ignore control-record))
(let ((parent (attribute (parent-element control) "data-clog-name"))
+ (cdb (attribute control "data-clog-one-row-db"))
(master (attribute control "data-clog-one-row-master")))
+ (if (or (equal cdb "")
+ (equal cdb "undefined"))
+ (setf cdb parent))
(when (equal master "")
(setf master nil))
- (format nil "(setf (clog-database target) ~A) ~
+ (format nil "(setf (clog-database target) (clog-database (~A panel))) ~
~A ~
(setf (table-name target) \"~A\") ~
(setf (value-field target) :|~A|) ~
@@ -1516,12 +1531,10 @@
(setf (limit target) \"~A\") ~
(setf (row-id-name target) \"~A\") ~
(setf (table-columns target) '(~A))"
- (if master
- (format nil "(clog-database (~A panel))" parent)
- (format nil "(~A panel)" parent))
+ cdb
(if master
(format nil "(set-master-one-row target (~A panel) \"~A\")"
- parent master)
+ cdb master)
"")
(attribute control "data-clog-one-row-table")
(attribute control "data-clog-lookup-value")
@@ -1542,6 +1555,8 @@
(setf (attribute control "multiple") t)
(remove-attribute control "multiple"))
(property control "multiple")))
+ (:name "database control"
+ :attr "data-clog-one-row-db")
(:name "table name"
:attr "data-clog-one-row-table")
(:name "table row id name"
@@ -1569,6 +1584,7 @@
:setup ,(lambda (control content control-record)
(declare (ignore content) (ignore control-record))
(setf (size control) "4")
+ (setf (attribute control "data-clog-one-row-db") "")
(setf (attribute control "data-clog-one-row-table") "")
(setf (attribute control "data-clog-lookup-value") "")
(setf (attribute control "data-clog-lookup-option") "")
@@ -1581,10 +1597,14 @@
:on-setup ,(lambda (control control-record)
(declare (ignore control-record))
(let ((parent (attribute (parent-element control) "data-clog-name"))
+ (cdb (attribute control "data-clog-one-row-db"))
(master (attribute control "data-clog-one-row-master")))
+ (if (or (equal cdb "")
+ (equal cdb "undefined"))
+ (setf cdb parent))
(when (equal master "")
(setf master nil))
- (format nil "(setf (clog-database target) ~A) ~
+ (format nil "(setf (clog-database target) (clog-database (~A panel))) ~
~A ~
(setf (table-name target) \"~A\") ~
(setf (value-field target) :|~A|) ~
@@ -1594,12 +1614,10 @@
(setf (limit target) \"~A\") ~
(setf (row-id-name target) \"~A\") ~
(setf (table-columns target) '(~A))"
- (if master
- (format nil "(clog-database (~A panel))" parent)
- (format nil "(~A panel)" parent))
+ cdb
(if master
(format nil "(set-master-one-row target (~A panel) \"~A\")"
- parent master)
+ cdb master)
"")
(attribute control "data-clog-one-row-table")
(attribute control "data-clog-lookup-value")
@@ -1620,6 +1638,8 @@
(setf (attribute control "multiple") t)
(remove-attribute control "multiple"))
(property control "multiple")))
+ (:name "database control"
+ :attr "data-clog-one-row-db")
(:name "table name"
:attr "data-clog-one-row-table")
(:name "table row id name"