Как представить отношения m: n в форме в базе Libre Office?

1157
rumtscho

У меня есть встроенная база данных в Libre Office. Я строю в нем форму и попал в проблему.

У меня есть таблица с именем «Автор» и другая таблица с именем «Публикация», соединенная третьей таблицей «AuthorsAndPublications» (это отношение m: n). Я хочу создать форму, основанную вокруг таблицы «Публикация», но она должна показывать всех авторов текущей публикации в не редактируемом списке.

отношения форма

В качестве источника данных для списка, я написал запрос SQL

SELECT "Author"."Surname" FROM "Author", "AuthorsAndPublications" WHERE "AuthorsAndPublications"."FK_Author" = "Author"."ID" AND "AuthorsAndPublications"."FK_Publication" = :publicationid

Теперь я хочу, чтобы параметр публикацииid автоматически имел значение поля txtPublicationID, которое находится в той же форме, что и мой список. Итак, когда форма открыта и показывает публикацию с идентификатором 1, в списке должны отображаться авторы публикации 1, тогда при переходе к следующей публикации авторам должны быть показаны авторы следующей публикации.

После поиска документации и примеров я не смог найти хорошее описание объектной модели Libre Office. Я не нашел пример, касающийся моего случая, но, увидев похожие, лучшее, что я смог придумать, было:

SELECT "Author"."Surname" FROM "Author", "AuthorsAndPublications" WHERE "AuthorsAndPublications"."FK_Author" = "Author"."ID" AND "AuthorsAndPublications"."FK_Publication" = [ThisDatabaseDocument.FormDocuments.GetByName("PublicationForm").GetByName("txtPublicationID").currentvalue]

Но этот запрос не работает, я получаю только ошибку «Синтаксическая ошибка в выражении SQL».

Как правильно ссылаться на значение текстового поля в источнике данных для списка?

3

0 ответов на вопрос

Похожие вопросы