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

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

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

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Здравствуйте! Имею БД в Base, нужен выпадающий список в Wr...  (Прочитано 1231 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ForumOOo (бот)
Ветеран
*****
Offline Offline

Сообщений: 577


« Стартовое сообщение: 5 Апрель 2017, 11:02 »

Компонент: Writer
Версия продукта: 4.x
Сборка: OpenOffice.org
ОС: Win7

Здравствуйте!
Имею БД в Base, нужен выпадающий список в Writer с содержимым из БД.Запрос1, как это организовать?

--
Подпись: ktotam
Эл. почта: ktotamby@mail.ru
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 561


« Ответ #1: 5 Апрель 2017, 12:11 »

Не все так просто.

Да, можно вставить Поле со списком, а в его свойствах указать БД.Запрос1, но этот объект (само поле со списком) - не будет частью текста, и внешне будет очень "заметен".

Да, можно сделать как выше, но макросом по событию изменения все-таки добавлять простой текст. Он подчинится стилю, орфографии, переносам, поиску итп действиям, из-за которых мы там любим Writer и почитаем его как верстальную программу и мощный текстовый редактор.

Но есть способ проще. Жмём Ctrl+Shift+F4 (в новых LibreOffice) а в старых OpenOffice|LibreOffice - просто F4, раскрываем запрос вверху и тянем вниз значение из "списка".

Иногда Список проще сделать не в БД, а в самом Writer. Уместо, если список вида:
Да
Нет
Не знаю

 
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
ktotam
Новичок
*
Offline Offline

Сообщений: 7


« Ответ #2: 6 Апрель 2017, 11:37 »

Хорошо, сделал список во Writer.
Имею таблицу, где в верхнюю ячейку столбца ввожу значение, как автоматически раздавать его в нижние ячейки? Да уж...
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 561


« Ответ #3: 6 Апрель 2017, 14:03 »

Не совсем понял значение слова раздавать, ну да ладно. Повангую:
 
Если нужно чтобы выбранный элемент из Поля-списка использовать в документе несколько раз, но задавать его только в одном месте (скажем, самом первом сверху) - то чтобы элемент был везде одинаков нельзя поле просто скопировать, т.к. каждая копия поля - это отдельная субстанция, которая сама обновляться/синхронизироваться не будет!

Но выход есть: скопировать поле-Список, перейти в нужное место, нажать Ctrl+Shift+V (Вставить как - Связь по DDE). В этом случае, выбрав в "настоящем" первом поле первым подписывающим Иванова, и нажав Сервис - Обновить все - мы увидим Иванова во всех связанных по DDE связях/копиях поля в других частях документа.

Связь DDE можно автоматически обновлять простым макросом, назначив его на любое "знаковое" и при этом однозначное событие - на печать, сохранение итп (Сервис - Настройка - События...)
Чтобы файл с такими полями при открытии не задавал вопрос по обновлению связей - сделайте Сервис - Параметры - LibreOffice Writer - Общие - Связи - Обновлять связи при загрузке - Всегда.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
ktotam
Новичок
*
Offline Offline

Сообщений: 7


« Ответ #4: 10 Апрель 2017, 08:46 »

Сделал, не получилось. Не обновляет никогда)
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 561


« Ответ #5: 10 Апрель 2017, 12:05 »

А так, при выполнении такого макроса?

Код:
sub RefreshAll
' Обновляет все поля документа Writer - бывает нужно, когда есть "клоны"
' полей-списков или переменные пользователя (напр. два документа в одном файле)
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:UpdateFields", "", 0, Array()) ' если не работает - удалить!
dispatcher.executeDispatch(document, ".uno:UpdateAll", "", 0, Array())
end sub
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
economist
Ветеран
*****
Offline Offline

Сообщений: 561


« Ответ #6: 10 Апрель 2017, 12:08 »

Замечу насчет связей DDE - если работа ведется в домене Windows/AD со злыми админами, DDE может быть запрещён на уровне групповых политик GP.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
ktotam
Новичок
*
Offline Offline

Сообщений: 7


« Ответ #7: 10 Апрель 2017, 13:05 »

Замечу насчет связей DDE - если работа ведется в домене Windows/AD со злыми админами, DDE может быть запрещён на уровне групповых политик GP.
Вероятность 99%
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 561


« Ответ #8: 10 Апрель 2017, 14:39 »

ktotam -
Если злой админ не упрашивается - его увольняют за саботаж решений более высокого руководства. Но вообще DDE можно запретить только специально. Неспециально запрещаются серверы сценариев: com, bat, vbs, wsh, psh.

А макрос сработал?

 
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
ktotam
Новичок
*
Offline Offline

Сообщений: 7


« Ответ #9: 11 Апрель 2017, 08:44 »

Макрос не сработал.
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 561


« Ответ #10: 11 Апрель 2017, 08:57 »

Тогда файл в студию! Так как кол-во догадок превысило количество гипотез.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
ktotam
Новичок
*
Offline Offline

Сообщений: 7


« Ответ #11: 12 Апрель 2017, 09:41 »

Вложение Да уж...

* тест.odt (8.75 Кб - загружено 5 раз.)
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #12: 12 Апрель 2017, 14:26 »

Имею БД в Base, нужен выпадающий список в Writer с содержимым из БД.Запрос1, как это организовать?
На панели инструментов "Элементы управления" нажмите кнопки "Мастер" и "Список" и нарисуйте список, откроется мастер списка. После создания списка, можно отредактировать его свойства. А для чего вам нужен выпадающий список?
Записан

ktotam
Новичок
*
Offline Offline

Сообщений: 7


« Ответ #13: 13 Апрель 2017, 06:41 »

На панели инструментов "Элементы управления" нажмите кнопки "Мастер" и "Список" и нарисуйте список, откроется мастер списка. После создания списка, можно отредактировать его свойства. А для чего вам нужен выпадающий список?
А как при печати не выводить графическую часть списка, а только содержание?
Список для того, чтобы не вводить повторяющуюся информацию.
Например записка на выход человека за территорию.
« Последнее редактирование: 13 Апрель 2017, 06:44 от ktotam » Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 561


« Ответ #14: 13 Апрель 2017, 08:07 »

Ctrl+F2 - Функции - Список - ввести Элемент - Добавить итд.

Такой список не имеет графической части и выглядит просто как часть текста.
Всё это называется "Поля" и представляет собой мощный инструмент автоматизации документа. Об этом я писал в #1 про Да/Нет/Не знаю.

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

Кстати, с этими TextField - мой макрос работает 100%. Если нужно на одном А4 сделать 2 дока, в котором будет видна фраза "Вышла покурить", то достаточно в одном месте выбрать нужный элемент из списка и обновить все поля макросом - в другом тоже будет про курение.

Недостаток таких полей - неудобно, если там много элементов. Плюс полей - произвольный порядок, меняемый за секунду. К примеру, в отделе три исполнителя - Иванов, Петров и Сидоров, каждый со своим телефоном - и это как раз случай вставить список из трех строк "ФИО, тел." в сам шаблон. Если что-то поменяется (смена кадров, отпуск) - это элементарно правится прямо в шаблоне (щелкнуть по полю - Правка...)    
« Последнее редактирование: 13 Апрель 2017, 08:17 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 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!