Добавить запись с идентификатором, выбрав ИМЯ из другой таблицы

Может ли кто-нибудь помочь мне с созданием формы Libreoffice Base? У меня есть следующие таблицы:

Tables И я пытаюсь добавить форму для ввода новой записи RESOURCES со следующими полями: [RESOURCE_NAME], [CURRENCY_NAME] и [AMOUNT]. Но после 10+ попыток у меня ничего не получилось. Я попытался добавить его с помощью мастера, выбрав РЕСУРСЫ в качестве основной формы и ВАЛЮТЫ в качестве подчиненной формы и наоборот. Я пробовал VIEWS и формы на их основе. Эти попытки только давали мне либо не давали возможности ввести новую запись, либо создание новой ВАЛЮТЫ.

Мне не нужно создавать новую валюту через эту форму, я хочу только ввести новый Ресурс (ввести только один раз, не изменять, не удалять). Поскольку я не хочу запоминать все идентификаторы, я хочу выбрать название валюты через раскрывающийся список.

Может ли кто-нибудь дать инструкции о том, как это сделать, пожалуйста?

Спасибо.


person Alex Tiger    schedule 01.12.2015    source источник


Ответы (1)


Для этого вам не нужна подчиненная форма - просто создайте документ формы с RESOURCES в качестве основной формы (только форма).

Вам понадобится список для ввода элемента валюты. Список имеет два поля: поле отображения и поле, которое сохраняется в таблице. Вы настроите его для отображения CURRENCY_NAME и хранения CURRENCY_ID.

Когда вы создаете список, всплывающий мастер может дать вам то, что вы хотите. Если мастер терпит неудачу:

  • Убедитесь, что документ формы открыт в режиме конструктора: на панели инструментов «Элементы управления формой» крайний левый/самый верхний значок карандаша с треугольником должен быть нажат. Если этот значок неактивен, закройте документ, щелкните правой кнопкой мыши его имя и выберите «Редактировать».
  • Щелкните правой кнопкой мыши на поле со списком и выберите «Управление»; это откроет окно свойств
  • На вкладке "Данные" измените "Тип содержимого списка" на "Sql"
  • В поле «Содержимое списка» введите SELECT "CURRENCY_NAME", "CURRENCY_ID" FROM "CURRENCIES" ORDER BY "CURRENCY_NAME"
  • Связанное поле должно по умолчанию иметь значение 1. Если оно не равно 1, измените его на 1.
  • Закройте окно свойств и сохраните форму. Теперь это должно работать так, как вы хотите.

Если вам нужен список внутри таблицы: после создания таблицы в форме в режиме редактирования щелкните правой кнопкой мыши имя столбца, который вы хотите изменить, и выберите «Заменить на», а затем «список».

Отредактировано, чтобы включить комментарий OP о связанном поле, которое должно быть 1

person Lyrl    schedule 01.12.2015
comment
Я сделал именно так, как вы сказали, но написанный currency_ID всегда равен 0. - person Alex Tiger; 02.12.2015
comment
Нашел корень: также параметр Bound должен быть установлен в 1. Большое спасибо! - person Alex Tiger; 02.12.2015