Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

23 Март 2017, 21:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Связь формы с таблицей.  (Прочитано 6571 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Стартовое сообщение: 24 Июнь 2010, 22:37 »

Народ, просветите чайника.
Когда-то разрабатывал базы данных на Кларионе.
Там всё просто: листаю таблицу, выбираю нужную запись.
Выбрал, поставил на неё курсор, нажал Enter и попал в форму, отображающую выбранную запись.
Отредактировал данные, запись сохранил и вернулся в таблицу.
Как нечто подобное сделать в OOo.Base?
Тоись полистал таблицу, выбрал нужную запись и с помощью формы её отредактировал.
Или я хочу невозможного и в OOo.Base совсем другая парадигма?
« Последнее редактирование: 24 Июнь 2010, 22:41 от Лапчатый » Записан
dr.Faust
Администратор
*
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 336


« Ответ #1: 24 Июнь 2010, 23:08 »

Не знаю.
Напишу почти оффтоп (просто всегда интересовало):
Но вот зачем? И редактируйте запись сразу в таблице. Почему так нельзя?
На работе написал свою "программу" учёта, только чтобы небыло дурацких форм - так они мешают работе... Мы меряли отом скорость - редактирование в таблице у нас получилось в 8-10 раз быстрее.
Записан

Свобода информации - свобода личности!
Syzygy
Ветеран
*****
Offline Offline

Пол: Мужской
Расположение: Подмосковье
Сообщений: 1 522


WWW
« Ответ #2: 25 Июнь 2010, 07:37 »

Тоись полистал таблицу, выбрал нужную запись и с помощью формы её отредактировал.
Насколько понял, такой функции нет.

Но вот зачем?
Удобно иногда бывает, особенно если записи длинные. К примеру, прямо в таблице отфильтровал записи, нашёл по первому полю что-то и дальше уже в форме, чтобы не ошибиться. Оно понятно, что "можно быстрее", но некоторым удобнее по-другому.
Записан

A Matter of Life and Death
dr.Faust
Администратор
*
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 336


« Ответ #3: 25 Июнь 2010, 13:25 »

Макрос можно прикрутить.
Записан

Свобода информации - свобода личности!
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Ответ #4: 25 Июнь 2010, 19:10 »

Макрос можно прикрутить.
Ужос.
В досовском Кларионе 20 лет назад это делалось автоматом, без всякого программирования.
« Последнее редактирование: 25 Июнь 2010, 19:14 от Лапчатый » Записан
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Ответ #5: 25 Июнь 2010, 19:12 »

Но вот зачем? И редактируйте запись сразу в таблице. Почему так нельзя?
Страшно неудобно.
Запись длинная. К тому же содержит пару memo-полей (памяток).
« Последнее редактирование: 25 Июнь 2010, 19:38 от Лапчатый » Записан
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Ответ #6: 25 Июнь 2010, 23:00 »

Макрос можно прикрутить.
Pardon, совсем чайник.
1. Как к таблице макрос прикрутить?
2. Как из макроса форму вызвать, подставив в неё текущую запись таблицы?
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 227


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #7: 26 Июнь 2010, 11:12 »

Pardon, совсем чайник.
Категорически не согласен! Человек, который правильно пишет слова "DOS" и "Кларион", чайником являться не может!  Смеющийся
1. Как к таблице макрос прикрутить?
Не к таблице, к форме.
В Кларионе было так же: форма привязывалась к данным (таблице целиком или к отдельной записи), из полей формы вызывались другие формы...
Общая структура пользовательского интерфейса так и строилась: меню, из каждого пункта которого вызывается новая форма; эта новая форма может быть другим меню, списочной формой или отчетом (кране редко - формой одной записи: это обычно были настройки программы, отдельная таблица из одной записи с кучей полей); в списочной форме по Insert и Enter открывалась форма для новой или текущей записи (по Delete форма была не нужна). В форме записи, если отдельное поле ссылалось на таблицу, открывалась списочная форма выбора для той таблицы, в которой в свою очередь можно было открыть форму записи для ввода новой строки или изменения существующей...
То есть все механизмы сводились к двум десяткам стандартных переходов, которые были описаны в шаблонах (тэмплейтах) - иногда коротких, на десяток строк кода, иногда поболе - строк 150-200...
Описав структуру базы (таблицы с данными и их взаимосвязь), создав нужные формы (можно было сделать это и автоматически - не очень красиво, зато быстро), а затем описав логику пользовательского интерфейса (из какой формы какая и где будет вызываться) можно было автоматически сгенерировать полный код работающей программы. На самом деле это тоже была программа из отдельных операторов, ее можно было прочитать и кое-где подправить руками, но это было уже не обязательно. То есть пользователь Клариона реально программировал, хотя мог об этом и не догадываться.
Похожие механизмы (генерация кода по шаблону) прорабатывались и для других СУБД. Например, тэмплейтами для Клиппера программисты обменивались постоянно...
2. Как из макроса форму вызвать, подставив в неё текущую запись таблицы?
Эм... Не совсем понял вопрос, но ответить попробую  Улыбка
Я начинал со справки ООо, раздел Basic, восьмой пункт снизу - "Примеры программирования для элементов управления в редакторе диалоговых окон". Это не совсем то (или правильнее - "совсем не то"), что надо именно сейчас. Просто когда я заставил заработать каждый из приведенных там примеров - пришло хоть какое-то понимание и дальше пошло легче: Питоньяк, xRay, обсуждения на форуме... А прикручивается готовый макрос к событиям или формы или отдельных её элементов. Но об этом, наверное, чуть позже, да?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Ответ #8: 27 Июнь 2010, 23:19 »

новая форма может быть другим меню, списочной формой
Большое спасибо за подробный ответ, буду осмыслять.
Для начала вопрос: правильно ли я понимаю, что списочной формой в Base называется то, что в кларионовском дизайнере называлось таблицей?
Ибо, если мне склероз не изменяет, то, что в Base называется таблицей, в кларионовском дизайнере называлось файлом.
Как раньше по этому поводу говорили фидошники, слэнги  ведь свои даже  в  pазных хакерских тусовках, а в фанских эхах и подавно.

« Последнее редактирование: 27 Июнь 2010, 23:21 от Лапчатый » Записан
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Ответ #9: 29 Июнь 2010, 15:50 »

Итак, благодаря уважаемому JohnSUN осваиваю терминологию, принятую в OOo.Base.
Тады переформулирую первоначальный вопрос.
Имею списочную форму, отображающую некоторую таблицу. Так как запись длинная, то списочная форма отображает не все ейные поля.
Листаю оную списочную форму и выбираю нужную запись.
Вопросы.
1. Как теперь вызвать простую (не списочную) форму, отображающую выбранную запись и позволяющая её редактировать?
2. Как вызвать ту же форму для добавления записи в таблицу?
Записан
dr.Faust
Администратор
*
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 336


« Ответ #10: 29 Июнь 2010, 18:26 »

А просто субформой обойтись нельзя?
Записан

Свобода информации - свобода личности!
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Ответ #11: 30 Июнь 2010, 10:14 »

А просто субформой обойтись нельзя?
Скорее всего, можно. Я уже пытался пройти в этом направлении.
Но попытка воспользоваться мастером для генерации списочной формы с простой субформой приводит к зависанию мастера.
А как такую пару соорудить без мастера, пока не разобрался.
Записан
dr.Faust
Администратор
*
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 336


« Ответ #12: 30 Июнь 2010, 10:38 »

У меня нормально получилось - только что проверил 2 раза.
Можно пример вашей базы?
Записан

Свобода информации - свобода личности!
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Ответ #13: 30 Июнь 2010, 12:11 »

У меня нормально получилось - только что проверил 2 раза.
Можно пример вашей базы?
Pardon, сейчас на службе, а база дома. Так что смогу только вечером.
Да, уточню - OpenOffice.org 3.1, под Linux (Ubuntu 9.10).
Записан
Лапчатый
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 19


« Ответ #14: 6 Июль 2010, 21:38 »

Так что смогу только вечером.
Ищо раз pardon. Приболел, поэтому прям тогда не получилось.
Вот пример базы:
http://file.qip.ru/file/Zi1hTnIz/Inventar.html
Собсно, это даже базой назвать слишком сильно.
1 таблица.
1 списочная форма "Список".
1 обычная форма (учётная карточка) "Редактирование".

Дык, как можно полистать форму "Список", выбрать нужную запись и отредактировать её с помощью формы "Редактирование"?
Записан
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!