пятница, 29 сентября 2017 г.

Фильтрация по месяцам и годам в сводной таблице Calc

Потребовалось мне в сводной таблице реализовать общую фильтрацию данных, отображаемых в сводной таблице, по дате, причем не по дням, а по месяцам и годам. Вроде бы, чего тут такого? Однако по умолчанию, если попробовать сделать просто вот так:
то есть просто доступное поле дата перетащить в раздел "Поля страниц", то в результате мы сможем фильтровать только так, как это указано в изначальных данных, на которых основана сводная таблица (у меня это были конкретные даты - дни):
Как видно на скриншоте выше, можно указать фильтровать информацию в сводной таблице по каждой конкретной дате, а выбрать период вроде месяца или года, нельзя. Просто нет таких пунктов. А хотелось иметь нечто вроде того, как показывает автофильтр, но прямо в сводной таблице:
Одним из вариантов является создание вспомогательных столбцов в исходных данных, в которых бы формулами типа МЕСЯЦ(А1) и ГОД(А1) высчитывались бы номер месяца и год. Затем добавить эти столбцы в сводную таблицу и делать сортировку по ним. В принципе - это то, что нужно, НО оказывается есть способ (отнюдь не очевидный) и без захламления дополнительными данными исходной таблицы. Это настройка фильтрации по дате по периодам в самой сводной таблице.
В настройках сводной таблицы поле "Дата" нужно перетащить в раздел "Поля строк" и нажать "ОК".
Получится вот такой вид сводной таблицы:
Установите курсор в любую ячейку сводной таблицы с датой и выбирете пункт меню Данные > Группа и структура > Группировать (или просто нажмите клавишу F12 на клавиатуре). Откроется вот такой диалог "Группировка":
в котором, внезапно, можно настроить интервалы времени, по которым возможна будет дополнительная фильтрация. Выбрать можно несколько значений одновременно. Я выбрал "Месяцы" и "Годы". В итоге мы получим в свое распоряжение дополнительные поля, которые нужно перенести в настройках сводной таблицы обратно в раздел "Поля страниц", нажать "ОК"
и увидеть вот такой вид сводной таблицы:
Как раз то, что и было нужно, теперь можно фильтровать данные по периодам, задавая отдельно месяц и год.
Отмечу, что такой не очень очевидный путь для настройки общего фильтра в LibreOffice Calc полностью копирует решение из MS Excel. Почему нельзя было сделать такую настройку доступной из контекстного меню поля прямо в настройках сводной таблицы, не прибегая к шаманству с перемещением полей из раздела в раздел - это великая тайна разработчиков офисов.
ps: в Excel название поля "Дата" можно заменить на свое, в Либре я что-то такого не нахожу, плохо ищу?

Критичные для меня баги в LibreOffice. Мысли вслух

Я тут внезапно осознал, почему я не использую на постоянной основе LibreOffice в работе, а юзаю только время от времени только дома. Причина - наличие ошибок (багов) в LibreOffice, которые для меня критичны. Их не так много (мы говорим о версии 5.4 для Windows):

  1. Мерцает интерфейс пользователя, когда по менюшкам водишь мышкой, причем для видеокарт от Интел это никак не лечится, а глаза мне дороги.
  2. Рендеринг шрифтов в документе и в интерфейсе пользователя стал просто ужасный.
  3. Рендеринг встроенных в документ изображений PNG также хромает, это не критично по сути, так как экспорт в ПДФ или печать выполняются с нормальным качеством, но смотреть на это убожество при работе в самом документе сил нет никаких.
  4. В Calc не работает автофильтр при попытке фильтровать записи по дате. Это вообще нонсенс. По сути достаточно большой кусок реальной работы просто не может быть выполнен с использованием LibreOffice.
  5. В текстовых документах Writer могут легко слететь стили, причем не все, а только некоторые и в произвольном порядке, а в больших документах, где стили обычно и надо использовать обязательно, это можно легко не заметить. По сути все преимущество стилей теряется для пользователя, поскольку необходимо постоянно глазами контролировать оформление текста и думать, а не слетели ли стили.
  6. До сих пор LibreOffice может выдать критическую ошибку в каком-то одном модуле и унести в ад ВСЕ открытые документы ВО ВСЕХ модулях.

Это реально печально.

четверг, 28 сентября 2017 г.

Голосование - выбор маскота (талисмана) для LibreOffice

Разработчики опубликовали пост, посвященный опросу-голосованию по поводу маскота-талисмана для LibreOffice. 
Вот прямая ссылка на сам опрос. На первой странице вам пояснят, что нужно нажать кнопку NEXT, а дальше вам будут показаны последовательно рисунки-претенденты на гордое звание маскота LibreOffice, для каждого из которых необходимо нажать кнопку "Палец вверх" или "Палец вниз", лайк или дизлайк, соответственно это значит нравится-не нравится.
Всех неравнодушных прошу принять участие.

воскресенье, 17 сентября 2017 г.

LibreOffice и "импортозамещение"

На русском форуме поддержки LibreOffice проскочила информация о том, что LibreOffice будет устанавливаться в МИД РФ в рамках программы "импортозамещения". Причем они там (якобы) проверяют исходники на предмет наличия закладок в коде, затем сформируют сертифицированную сборку, и, видимо, будут это юзать. Вопрос о том, как они будут ставить обновления, и будут ли вообще, остался открытым. Однако сам факт радует, может быть они наймут какую-нибудь контору для осуществления миграции и техподдержки, включая правку багов.

понедельник, 11 сентября 2017 г.

Прогресс в разработке 3D переходов между слайдами (GTK3 + OpenGL)

Один из самых активных разработчиков LibreOffice Caolán McNamara опубликовал небольшой пост о прогрессе в разработке Gtk3 OpenGL переходов между слайдами в презентациях. По ссылке доступно видео, в котором рядом демонстрируются 3D переходы до изменений (слева) и после (справа). Обратите внимание на артефакты и черное мерцание на левом изображении и отсутствие таковых на правом. Это достаточно заметное изменение и прогресс.

пятница, 1 сентября 2017 г.

LibreOffice и GSoC 2017. Результаты

Как вы знаете, Google каждое лето проводит мероприятие Google Summer of Code, в котором студенты имеют возможность заработать денег путем написания кода по заявкам от проектов с открытым исходным кодом. 2017 год исключением не был и проект LibreOffice получил 9 "грантов" для реализации студентами. Ниже имена героев и описание проектов и достигнутых результатов:
Aleksas Pantechovskis - реализация фильтра импорта QuarkXPress. Цель этой задачи - сделать реверс инжиниринг формата документа, созданного в QuarkXPress 4 (и более ранних версиях, 3.1-3.3, они похожи) и реализовать фильтр импорта - библиотеку C++ на основе librevenge. Начиная с QuarkXPress 5, его файлы шифруются, но, последней широко используемой версией была именно версия 4. Задача выполнена, создана библиотека импорта libqxp
Вот результат работы фильтра импорта на сегодня:
Gautam Prajapati - улучшение LibreOffice для платформы Android. Цель этой задачи - улучшение клиента Android LibreOffice, устранить его самые неприятные ошибки, добавить новые функции в средство просмотра документов и экспериментальную часть для редактирования, улучшить UI / UX, производительность и сделать его более простым и дружественным для разработчиков, улучшить документацию и встроенные комментарии. Задание было таким размытым, что можно считать его выполненным, вот здесь отчет студента о его работе, которая была больше технической, чем нацеленной на какие-то заметные простому пользователю вещи.
Grzegorz Araminowicz - улучшение в работе фильтра импорта SmartArt в LibreOffice. Цель - понятна без дополнительной расшифровки. SmartArt - это формат хранения диаграмм в файлах Office Open XML, который был представлен в MS Office 2007. Он позволяет отделять данные от способа представления, в результате чего образуются сложные диаграммы, созданные из записей маркированного списка. В настоящее время LibreOffice использует предварительно отрендеренную версию диаграммы, для MS Office 2010 и новее. Диаграммы из файлов MS Office 2007 часто выглядят пустыми. Целью проекта является расширение поддержки загрузки и компоновки диаграмм SmartArt. Это сделает LibreOffice более совместимым с OOXML-файлами и позволит в конечном итоге получить полную функциональность SmartArt, включая редактирование и экспорт. Проект был запущен как улучшающий импорт формата VML, но вскоре был изменен. Задача выполнена, реализовано достаточно большое количество необходимых для импорта фич из SmartArt. Вот отчет в списке рассылки разработчиков от студента.
Aditya Dewan - улучшения для LibreOffice Online. Цель - сделать важные функции, существующие в настольной версии LibreOffice и в других ведущих офисных пакетах, доступными для LibreOffice Online. В результате работы в LibreOffice Online была реализована интерактивная горизонтальная линейка во Writer Online и была расширена текущая реализацию WOPI для поддержки функциональности «Сохранить как». Ниже приведена демонстрация работы линейки:
Mohammed Abdul Azeem - миграция из старого Parser в FastParser (речь идет о парсере XML). Большая часть импорта ODF использует устаревший парсер. FastParser является потоковым, основанным на токенах и он быстрее, чем предыдущий парсер. Разработчики стремятся использовать FastParser почти везде и сделать некоторые улучшения в самом FastParser. Что выполнено в рамках проекта: распаковка zip вынесена в отдельный поток, все независимые контексты заменены на использование быстрых токенов, сделано много оптимизаций и рефакторинга кода, исправлены некоторые ошибки. Что еще пока в работе: замена XSAXDocumentBuilder2 на XFastDocumentHandler. Первый есть в нескольких модулях (sc, sw, starmath, sd и т.д.) и приводит к сбою на множестве тестовых примеров. Что не сделано: наблюдается несколько мелких проблем, для которых нужно написать тестовые примеры, преобразование оставшихся устаревших контекстов. Я не уловил, считается ли эта задача выполненной по меркам GSoC, но вот отчет студента о проделанной работе.
Varun Dhall - замена бинарного буфера обмена EditEngine на фильтр ODF. Проект включает в себя модификацию различных модулей, таких как editeng, xmloff, svl, sfx, dtrans и приложений, таких, как Draw / Impress / Calc для изменения буфера обмена. Перед отправкой данных в фильтр экспорта необходимо обработать правильный выбор текста. Для предотвращения регрессий также требуются новые модульные тест. Проект завершен, основные достигнутые цели: формат StarOffice больше не используется для операций копирования / вставки, сериализация SfxItemPool не используется нигде вне таблицы Auto-Formats, поля-гиперссылки копируются должным образом без потери информации, весь неиспользуемый код сериализации удаляется из всех модулей и приложений, что решает проблему ремонтопригодности. Отчет студента о завершении проекта доступен по ссылке.
Muhammet Kara - переработка диалога Настройка. Главное достижение этого проекта - была добавлена возможность для поиска необходимых пользователю опций в диалоге Настройка, которые он бы хотел добавить на панель инструментов или в меню или назначить сочетание клавиш, чтобы ему не приходилось вручную листать бесконечные списки или думать, в каком же разделе находится необходимый элемент. Также была проведена чистка кода. Ранее вся функциональность диалога была расположена в одном файле на более, чем 5000 строк кода. И как финал вот ссылка на видео с тем, что получилось в итоге.
Ximeng Zu - исправление большинства раздражающих ошибок для LibreOffice Android Viewer и добавление нового функционала. Что было сделано в рамках проекта: реализована поддержка файлов, защищенных паролем; добавлена панель адреса и формул; реализована вставка изображений, включая выбор из галереи и получение фото с камеры; динамический DPI для Calc; исправлена неправильная обработка внутренних ссылок, как внешних; некоторые исправления ошибок. Вот ссылка на отчет студента в списке рассылки.
Akshay Deep - улучшение диалога Специальные символы. Об этом я уже писал чуть ранее вот здесь. Продублирую здесь ссылку на его блог с отчетом о работе. Цель проекта достигнута.

PS: я некоторые специфично программистские вещи просто не знаю, как сказать по-русски, поэтому если кто-то почитает оригиналы и меня поправит по моему тексту, то я буду только благодарен.