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

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

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

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

Сообщений: 11


« Стартовое сообщение: 9 Февраль 2019, 22:15 »

Уважаемые форумчане! разобравшись с первым вопросом по диалоговому окну (спасибо JohnSUN и rami) у меня назрел вопрос следующего характера:
В появляющемся диалоговом окне есть набор кнопок, при нажатии на которые из таблицы файла должны остаться лишь те строки которые я хочу для них оставить, дабы пользователи которым отведено видели то что они должны видеть, а не всю структуру файла.
     Какое решение пока на данный момент я для себя нагуглил: ставлю макрос на запись, выбираю ненужные строки(те которые не должны отображаться по нажатию кнопки и диалогового окна) после этого выбираю данные-строки-скрыть. Быть может есть какой то более грамотный способ решения данной задачи.

P.S. К сожалению не могу приложить файл для примера из своего проекта непосредственно, ибо он содержит конфиденциальные данные, но думаю суть ясна.(если такая манера неприемлема готов удалить ненужные данные из таблица, оставить ее структуру и прикрепить)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #1: 9 Февраль 2019, 22:21 »

Да ладно, авось, и так разберёмся - вопрос-то, вроде, не сложный. (Только слов непонятных много  Смеющийся)

По мере изменения данных в диалоге - меняются критерии отображения данных на листе, над которым этот диалог висит, да?
Хочется отфильтровать строки, которые нужны для текущего состояния диалога, да? Часть колонок тоже нужно скрыть-показать?
Записан

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

Сообщений: 11


« Ответ #2: 9 Февраль 2019, 22:28 »

Да ладно, авось, и так разберёмся - вопрос-то, вроде, не сложный. (Только слов непонятных много  Смеющийся)

По мере изменения данных в диалоге - меняются критерии отображения данных на листе, над которым этот диалог висит, да?
Хочется отфильтровать строки, которые нужны для текущего состояния диалога, да? Часть колонок тоже нужно скрыть-показать?

Смотрите история такая, пользователь открывает файл, ему выпадает сразу диалоговое окно где по кнопкам расписано название отделов, он выбирает свой отдел. И вот я хочу чтобы после того как он нажал кнопку из общей таблицы остались только те строки которые относятся к его отделу. Сложность заключается в том что отделы раскиданы по всему документу в некоторых конкретных случаях но в либре просто отличный инструмент выделения и вроде как все получается. по поводу столбцов, нет отдельные столбцы не нужны, все завязано именно на строках.

Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #3: 9 Февраль 2019, 22:52 »

Ну, если строки отделов остаются на своих позициях, таблица не сортируется, то можно использовать такой вариант

* DlgDemo2.ods (24.51 Кб - загружено 3 раз.)
Записан

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

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


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


WWW
« Ответ #4: 9 Февраль 2019, 22:58 »

Или название отдела живьём присутствует в какой-то колонке? Тогда вместо Tag можно использовать прямо надпись на кнопке и устанавливать фильтр... Это вроде как по-аккуратнее будет
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #5: 9 Февраль 2019, 23:18 »

Какое решение пока на данный момент я для себя нагуглил: ставлю макрос на запись, выбираю ненужные строки(те которые не должны отображаться по нажатию кнопки и диалогового окна) после этого выбираю данные-строки-скрыть. Быть может есть какой то более грамотный способ решения данной задачи.
Если цель скрытия — удобство просмотра избранных данных, то подойдёт, если цель — не допуск к секретным данным, то лучше закрыть глаза ладошками.
Записан

JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #6: 9 Февраль 2019, 23:28 »

если цель — не допуск к секретным данным, то лучше закрыть глаза ладошками.
Ага, или гвоздиком поковырять... Нет, смотри как описано - в форме есть кнопки для каждого отдела. То есть, любой, кто открыл файл может посмотреть любую часть. Просто данных там до фига, всю простыню листать в поисках своих строк - долго и скучно. Так что, мне кажется, речь именно об удобстве.
А если эта таблица что-то вроде бюджета организации, то действительно строки разных отделов вразнобой попадаются в разных разделах. И фильтр "в лоб" к ним не всегда применишь (почему-то финансисты пишут статьи доходов-расходов, но не всегда пишут на ком цифра висит)
Записан

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

Сообщений: 11


« Ответ #7: 10 Февраль 2019, 11:31 »

Какое решение пока на данный момент я для себя нагуглил: ставлю макрос на запись, выбираю ненужные строки(те которые не должны отображаться по нажатию кнопки и диалогового окна) после этого выбираю данные-строки-скрыть. Быть может есть какой то более грамотный способ решения данной задачи.
Если цель скрытия — удобство просмотра избранных данных, то подойдёт, если цель — не допуск к секретным данным, то лучше закрыть глаза ладошками.

Все правильно это для удобства работы, они не будут самостоятельно искать пути для отображения всех строк, тут как раз дело в том чтобы при запуске файла они выбрали свой отдел, внесли изменения касательно него в одном столбце и вышли из файла сохранив его. Отлично подходит то что вы написали! единственное после нажатия кнопки и отображения нужных строк почему диалоговое окно не закрывается? какой параметр надо добавить?

И еще один вопросик, при запуски либры он выдает сообщение что использовать макросы не будет, ибо запрещено высоким уровнем безопасности, я поставил средний и после этого он начал спрашивать разрешение на использовании. меня вполне устраивает что он спрашивает, но категорически нет что он не дает сделать этого без дополнительного вмешательства в настройки пакета офис. Есть ли какой либо способ для запуска точно так же с разрешения, подписать ли макрос нужно? или единственный это ходить по всем компьютерам в компании и проставлять всем средний уровень без-ти?
Записан
XaKaC54
Участник
**
Offline Offline

Сообщений: 11


« Ответ #8: 10 Февраль 2019, 11:40 »

Или название отдела живьём присутствует в какой-то колонке? Тогда вместо Tag можно использовать прямо надпись на кнопке и устанавливать фильтр... Это вроде как по-аккуратнее будет

Нет к сожалению люди из отдела в некоторых случаях разбросаны по всему документу.
Записан
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 2 572



« Ответ #9: 10 Февраль 2019, 11:44 »

или единственный это ходить по всем компьютерам в компании и проставлять всем средний уровень без-ти?
групповые политики вас спасут
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #10: 10 Февраль 2019, 12:08 »

чтобы при запуске файла они выбрали свой отдел, внесли изменения касательно него в одном столбце и вышли из файла сохранив его. единственное после нажатия кнопки и отображения нужных строк почему диалоговое окно не закрывается?
Так об этом в исходном вопросе ничего не было  Подмигивающий
Шутка, конечно... Просто у сценария может быть несколько вариантов продолжения - закрытие диалога это только один из них. Вот и не стал его реализовывать - а вдруг альтернативный вариант будет лучше?
Опять же - а если вдруг с первого раза кнопкой промахнулся и в чужой отдел попал? Как теперь свой отдел выбрать, если форма с кнопками уже закрылась? Пусть уж лучше по "крестику" щёлкают, нет?
какой параметр надо добавить?
Это не сложно. Например, можно перед каждым Exit Sub добавить
Код:
oEvent.Source.getContext().endExecute()
oEvent.Source - это сама кнопка, которая вызвала событие
.getContext() - её "родитель", форма диалога
.endExecute() - метод диалога "закройся, пожалуйста"

Есть ли какой либо способ для запуска точно так же с разрешения..? или единственный это ходить по всем компьютерам в компании и проставлять всем средний уровень без-ти?
Менять уровень безопасности не обязательно. Там же, в настройках, в соседней вкладке есть "Доверенные источники". Насколько я понял, этот файл общий для всех, лежит где-то в сети? Вот путь к этой папке на каждом компьютере и добавить в "Доверенные".
И да - пройтись по офису нужно, за каждым компьютером посидеть, с людьми поговорить - где-то кофейку хлебнуть, где-то сигаретку стрельнуть... себя показать... А то ведь может сложиться мнение, что этот старый п... п... профессионал целыми днями сидит у себя в углу, всякой ерундой страдает, не понятно что делает...  Подмигивающий
Нет к сожалению люди из отдела в некоторых случаях разбросаны по всему документу.
Ну, это тоже можно было бы решить программно. И получилось бы даже изящнее, чем с диалогом. При открытии книги получить из системного окружения имя пользователя (ipetrova), по справочнику на соседнем листе найти его фамилию, как она употребляется в "простыне" (Петрова И.), отыскать все нужные строки и скрыть остальные. То есть, вообще без диалога - открываешь книгу и видишь только то, что тебя касается...
Но чтобы это реализовать, нужно будет, во-первых, переписать макрос, а во-вторых - всё равно пройтись по офису
Записан

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

Сообщений: 11


« Ответ #11: 10 Февраль 2019, 12:36 »

Вот а здесь главная загвоздка, я не совсем понимаю как в коде прописать нужные мне строки для отображения, попробовал через запись макроса проделать подобное, но получилась какая-то дичь.
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #12: 10 Февраль 2019, 12:36 »

единственное после нажатия кнопки и отображения нужных строк почему диалоговое окно не закрывается? какой параметр надо добавить?
Я бы предложил добавить не код, а сделать обычную кнопку "Закрыть" в диалоге, тип кнопки — "OK". К тому же любой диалог по умолчанию закрывается клавишей ESC.
Записан

XaKaC54
Участник
**
Offline Offline

Сообщений: 11


« Ответ #13: 10 Февраль 2019, 12:41 »

единственное после нажатия кнопки и отображения нужных строк почему диалоговое окно не закрывается? какой параметр надо добавить?
Я бы предложил добавить не код, а сделать обычную кнопку "Закрыть" в диалоге, тип кнопки — "OK". К тому же любой диалог по умолчанию закрывается клавишей ESC.
Да отличное решение! так и сделаю.
Осталось разобраться как конкретные строки прописать, что-то я не догоняю пока как их показывать.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

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


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


WWW
« Ответ #14: 10 Февраль 2019, 12:49 »

Ну, "через запись макроса" в условиях StarOffice/OpenOfice/LibreOffice звучит как "через ж... желание сделать быстро".
Макрорекордер действительно может записать действия, которые можно выполнять повторно, но только самые простые действия. В Настройках эта птичка так и обозначена - "Включить запись макросов (ограничено)"
Если нужна хоть какая-то "продвинутость", то придётся всё писать руками.
Осталось разобраться как конкретные строки прописать, что-то я не догоняю пока как их показывать.
См. картинку. Но - опять-таки! - это не самое лучшее решение, это только для демонстрации КАК это можно было бы сделать


PS. Могу я тебя попросить выбрасывать из сообщений бОльшую часть цитат, оставлять только те слова, на которые отвечаешь?


* Tag для кнопки.png (54.51 Кб, 876x586 - просмотрено 2 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 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!