medik2016
Новичок
Offline
Сообщений: 1
|
Здравствуйте форумчане! Уже несколько месяцев на работе мучаюсь с одной проблемой. Часто приходится работать с таблицами в writer или лайбрари в виде списков. Часто необходимо перемещать строки с содержимым согласно их приоритетности. Уже неделю не могу найти ответа как можно воспользоваться такой функцией, может ее Вообще нет?! Когда искал нашел решение для ворда. Там такая проблема легко решается сочетанием клавиш shift+alt+стрелочки вниз или вверх. Описано как пример в данной статье http://office-guru.ru/word/kak-bystro-peremestit-stroku-v-tablice-word-2013-59.htmlПомогите пожалуйста. Буду преиного благодарен!
|
|
|
Записан
|
|
|
|
kompilainenn
|
в райтере такой функции я не нашел, буду рад, если более опытные товарищи ткнут носом. как вариант - таблицу перенести в Calc и использовать возможности сортировки и фильтра там?
|
|
|
Записан
|
|
|
|
bormant
Глобальный модератор
Offline
Сообщений: 942
|
Абзацы Writer можно двигать по Ctrl+Alt+Вверх/Вниз. А вот строки таблицы так не подвигать... Причем, абзацы внутри ячейки тоже не двигаются.
Прямо-таки готовый фичереквест.
|
|
« Последнее редактирование: 20 Декабрь 2016, 23:10 от bormant »
|
Записан
|
|
|
|
rami
|
А вот строки таблицы так не подвигать... Строки в таблице можно перетаскивать мышкой, предварительно вставив новую строку в нужном месте.
|
|
|
Записан
|
|
|
|
rami
|
как вариант - таблицу перенести в Calc и использовать возможности сортировки и фильтра там? Сортировать можно и в таблице Writer
|
|
|
Записан
|
|
|
|
bormant
Глобальный модератор
Offline
Сообщений: 942
|
rami, Шурик, вы комсомолец? Это же не наш метод... (q) Не отрывая рук от клавиатуры всегда было большим плюсом OOo/LO. Неплохо б восстановить статус кво.
|
|
|
Записан
|
|
|
|
economist
|
1) Можно написать макрос под shift+alt+стрелочки вниз или вверх
2) Можно автоматизировать само формирование таблицы как надо, задействовав имеющиеся механизмы. Например автосписок иллюстраций или список литературы (ссылок) - сделать на стилях, в виде таблицы с рамками, - нефиг делать. Из поста не ясно что делается.
Важно понять причину - почему приходится часто менять порядок строк в таблице, возможно лучше это делать в Calc, а во Writer отображать её как связь по DDE.
А идея с пересортировкой во Writer (для этого должна быть колонка с № п/п) - самая правильная. Если приходится переставлять, скажем, 4 строки из 10 - обязательно будет ошибка или трата времени, сортировка - 100% будет лучше и быстрее.
|
|
|
Записан
|
Руб. за сто, что Питоньяк Любит водку и коньяк! Потому что мне, без оных, - Не понять его никак...
|
|
|
rami
|
Шурик, вы комсомолец? Это же не наш метод... (q) Спалили...  Не отрывая рук от клавиатуры всегда было большим плюсом OOo/LO. Неплохо б восстановить статус кво. Вроде и раньше строки в таблице не перемещались, так, что отрывать руки (от клавиатуры  ) вроде бы некому. А вообще, эта возможность была бы полезна.
|
|
|
Записан
|
|
|
|
mikekaganski
|
Абзацы Writer можно двигать по Ctrl+Alt+Вверх/Вниз. А вот строки таблицы так не подвигать... Причем, абзацы внутри ячейки тоже не двигаются.
Прямо-таки готовый фичереквест.
В таблице эта комбинация клавиш зарезервирована под какое-то действие с вертикальным размером ячейки (не строки) - я пока не нашёл как его посмотреть; код по условию KS_CellBottomSmall здесь. Можно назначить действие по перемещению абзаца другой комбинации. Что касается перемещения строк таблицы - не нахожу такого действия, равно как и фичереквеста.
|
|
|
Записан
|
|
|
|
JohnSUN
|
перемещения строк таблицы - не нахожу такого действия ИМХО, только ИМХО... Действия по редактированию текста - реализуются просто и понятно, структура документа сама подсказывает возможные варианты действий. Все эти смена уровней нумерации, обмен абзацев местами и прочее - "родные" действия структурированного документа. А "текстовая таблица" текстом не является, это внедренный объект, как ни крути. Можно, конечно, "нырнуть" на уровень внедренного объекта, допросить его с пристрастием о имеющихся свойствах/методах и вытащить их наверх, на уровень документа. Ну, что-то вроде того, что hanya в MRI сделал, только чуть "пользователеориентированно". Но давайте здесь ударим по тормозам и оглядимся. "Текстовая таблица" далеко не единственный объект, который может быть внедрен в документ. Как должны будут реагировать на, скажем, Ctrl+Alt+Вверх/Вниз такие "внедренцы" как картинка или формула?
|
|
|
Записан
|
|
|
|
mikekaganski
|
Не согласен. Таблица с точки зрения writer - не внедренец  На Ctrl+Alt+Вверх/Вниз реагирует абзац. Поэтому если курсор в абзаце, и комбинация клавиш не перехвачена (что мы имеем в нашем случае), то абзац и должен двигаться. И это произойдёт в т.ч. и в таблице, если заменить Ctrl+Alt+Вверх/Вниз на что-то позаковыристей (я, например, опробовал на Ctrl+Shift+Alt+W/S). Картинка и формула - это реально внедренцы. Но если они привязаны как символ, данная комбинация логично должна примениться к абзацу, в котором этот "символ". Насчёт перемещения строк таблицы - это отдельная песня, и если такая функция появится, она явно будет привязана на другую комбинацию. С другой стороны, эта функция (перемещения строк таблицы) прямо напрашивается на неприятности, как только появляются объединённые ячейки. Прямо-таки краш неизбежен. Конечно, возможен вариант, что мы перед перемещением проверяем, нет ли в строке ячеек с атрибутом объединения... надеюсь, это единственная проблема.
|
|
« Последнее редактирование: 23 Декабрь 2016, 13:58 от mikekaganski »
|
Записан
|
|
|
|
rami
|
Картинка и формула - это реально внедренцы. Но если они привязаны как символ, данная комбинация логично должна примениться к абзацу, в котором этот "символ". Не только "как символ" или "к символу", но и "к абзацу" — перемещаются с абзацем.
|
|
|
Записан
|
|
|
|
JohnSUN
|
Не согласен.
Ну, я же предупредил - ИМХО Таблица с точки зрения writer - не внедренец  А вот тут уже я не согласен (или мы путаемся в русскоязычной неоднозначной терминологии) Да, таблица входит в отдельную коллекцию TextTables и на этом основании может рассматриваться как часть документа. С другой стороны, давай глянем как API предлагает создавать и внедрять этот объект. oTable = ThisComponent.createInstance("com.sun.star.text.TextTable") oTable.initialize(3, 3) 'oTable.setName("чего-то там такое") и прочее oText.insertTextContent(ThisComponent.getCurrentController().getViewCursor(), oTable, False) Это немного отличается от простого .insertString(), правда? А вообще-то, проблема действительно возникла из-за того, что medik2016 изначально выбрал не тот инструмент для решения своих задач.
|
|
|
Записан
|
|
|
|
rami
|
С другой стороны, эта функция (перемещения строк таблицы) прямо напрашивается на неприятности, как только появляются объединённые ячейки. Прямо-таки краш неизбежен. Конечно, возможен вариант, что мы перед перемещением проверяем, нет ли в строке ячеек с атрибутом объединения... надеюсь, это единственная проблема. С третьей стороны, строки с объединёнными ячейками перетаскиваются мышем без краша 
|
|
|
Записан
|
|
|
|
mikekaganski
|
JohnSUN, на самом деле тут просто особенность API для этого. А на уровне ядра это вполне себе равнозначные объекты. (Должен признаться, что я вообще дуб в StarBASIC API.)
Насчёт неправильно выбранного инструмента - полностью ку. Я тут просто заинтересовался самой функцией, без привязки к задаче.
rami, насчёт "перетаскивания": ну, можно на это посмотреть и так. На самом деле, при перетаскивании мышью происходит замена *содержимого* результирующих строк, а не перемещение *строк* таблицы: это можно увидеть, если "покрасить" таблицу (или применить разные границы).
Я себе представлял функцию реальной сменой мест реальных объектов "строка таблицы" со всеми вытекающими...
|
|
« Последнее редактирование: 23 Декабрь 2016, 14:23 от mikekaganski »
|
Записан
|
|
|
|
|