Как разделить форму и саму базу данных в LibreOffice?

Автор Dja, 25 января 2023, 04:29

0 Пользователи и 1 гость просматривают эту тему.

Dja

Хочу разделить форму для пользования от сложной для простого обывателя интерфейса базы данных. Как это можно осуществить? В Acces подобная фишка есть чуть ли не в шапке программы.

economist

http://myooo.ru/content/view/101/97/

То есть просто сохраняете в документ Writer. Также Форму можно в нем создать изначально, привязывая контролы к полям Базы данных. Вы можете в одной ODT-форме ссылаться на несколько баз данных, включая readonly (TXT/XLS/ODS итд).

Кстати, размножив Формы (*.ODT) по числу пользователей - вы сделаете однопользовательскую БД - многопользовательской. У них не будет возникать конфликта при открытии одинаковых форм.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Dja

В выпадающем списке "Источник данных" чисто Bibliography высвечивается, моей БД нет. Подскажите пожалуйста в чем может быть проблема?

Dja

Выбрав БД через многоточие форма не выполняет ожидаемые команды...

economist

Цитата: Dja от 26 января 2023, 08:14В выпадающем списке "Источник данных" чисто Bibliography высвечивается, моей БД нет
- БД нужно "регистрировать" в OpenOffice|LibreOffice, чтобы он знал путь к ODB и краткое название базы. Alt+F12 - Base... - Базы... - Создать

Что вы называете "командой" Формы? Форма содержит ссылку на БД, Таблицу/Запрос БД или SQL-запрос (Native). Но значения из БД мы видим не в Форме, а в Контролах (например в ComboBox/Поле со списком), который привязан к этой Форме. В свойствах контрола упомянуто Поле Таблицы/Запроса/SQL-Запроса (если контрол работает по одному столбцу, как, например, Список).

Нужно хорошо разобраться с тем как связываются контролы с данными БД. Основное предназначение Контролов - создание таких Форм, глядя в которые удобно вносить и исправлять данные в БД (без макросов, механизмом Форм). Но не все данные удобно заносить "построчно", ч/з Форму. Иногда табличный вид может оказаться удобнее, если строки связаны между собой. Связи полей вида Поле-Справочник настраиваются в Base не совсем очевидно, нужна практика. В Сети считанные единицы мануалов на эту тему.   
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Dja

Командой я называю просмотр записей при нажатии на «предыдущая запись», «следующая запись», «новая запись», «сохранить запись», все в таком духе

Dja

В общем потыкал потыкал, все работает. Большое спасибо)

st.inna

В продолжение этой темы вопрос:

В базе данных есть несколько форм, одна из которых является навигационной: на ней несколько кнопок, которые открывают нужную форму (Форма1, Форма2, ...). Если все эти формы сделать автономными, то как сделать так, чтобы автономные Форма1 и Форма2 открывались из автономной навигационной? Все автономные формы расположены в одной папке.

economist

Нужен макрос или, возможно, сработает хитрая гиперссылка. Этот и EN-форумы приводили примеры.

Кмк проще сделать один ODT или ODS файл с нескольким Формами, ссылающимися на разные Таблицы/Представления/Запросы в ODB, чтобы ничего больше не открывать (файловые операции всегда тяжелые, пляшет антивирус, открываются коннекты к БД итд). Формы в одном файле можно "поделить" по разным страницам ODT или листам ODS, а можно сделать на одном листе/странице. И даже "наложить" их друг на друга, как Слои в Photoshop. Basic-rодом можно прятать лишнее (но можно просто хорошо сверстать). Посмотрите как сделано в 1С (по правде там ужасно из коробки, все мелко - но 300 тыс. "пипл хавает").

Всё это признаки чрезмерного усложнения. Зачем отдельная нав-форма? Может просто сделать кнопки в каждой форме к другой? Разработчики LO Base специально ограничивали контекст данных с помощью Форм и Субформ, чтобы было легче вводить юзеру и настраивать/кодить админу. А "вынос" всех форм - это расширение контекста.   

Как лучше - никто не знает. В 90-х гг. аплодировали стоя многооконным интерфейсам, в 00-х их довели до абсолюта с плавающими панелями/палитрами и Ribbon (Лентой в Excel), а в 10-х гг. стали ратовать за однооконный и-фейс в прикладном ПО. Это неспроста, люди реально часами бродят в настройках LO или Стилисте в поиске заветной галочки. А тут - БД со вводом данных.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

sokol92

Посмотрите по этой теме сообщение @Villeroy и вторую ссылку в нем.
Будет здорово, если поделитесь впечатлениями.
Владимир.

Kadet

Извините, может запоздало.
Сделал это по-другому.
Открыл файл XXX.odb с помощью ZIP (ведь этот файл по сути архив).
Внутри нашёл папку "database". Внутри лежит сам файл "firebird.fbk".
Скопировал его на комп. "***.fbk" - это архив. Его нужно разархивировать.
В общем - устанавливается firebird-сервер на комп. С помощью встроенных в сервер утилит разархивируем "***.fbk"-архив и получаем чистый файл "*.fdb", т.е. сам файл базы данных. Кладём его в сервер в следующую папку - C:\Firebird\Firebird_3_0\examples\empbuild\ (это в моём случае, но путь \Firebird_3_0\examples\empbuild\ - это стандартный путь.
Устанавливаем ODBC-firebird. Создаём в нём подключение к Firebird-серверу, к переложенному файлу.

В LO создаём новую БД, только уже с вынесенной БД, а не встроенной. В него переносим, лучше копируем, все формы и запросы из старой БД (со встроенной БД).
В новой БД "Правка > Базы данных" выбираем то подключение, которое сделали в ODBC-источнике.

И многопользуемся.

Но это сокращённо и в общих чертах.
Кому интересно поясню подробней. Там не мало тонкостей и ньюансов.