У меня есть встроенная база данных в 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".
Как правильно ссылаться на значение текстового поля в источнике данных для списка?