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


2

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

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

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

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

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

Теперь я хочу, чтобы параметр editionid автоматически имел значение поля 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».

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.