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

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

6 Декабрь 2021, 18:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Сообщений: 3


« Стартовое сообщение: 14 Сентябрь 2016, 18:52 »

Добрый день уважаемые форумчане!

Подскажите имеется ли возможность в Writer поиска только по перекрестным ссылкам и полям?

Имеется файл: на первой странице есть несколько перекрестных ссылок. На второй странице таблица, в ячейки которой необходимо вставить часть информации из перекрестных ссылок.

Поле "Операция" содержит название операции и дату операции. Необходимо название операции вставить в "Таблица3" на второй странице во второй столбец (ячейка B2), а дату - в первый столбец (ячейка A2).


Аналогичным образом потом я смогу распределить данные по остальным таблицам из оставшихся полей. Главное понять принцип.

Спасибо за ответы!

И да, просьба не удивляться файлу  Улыбка.

* Иванова.odt (22.59 Кб - загружено 10 раз.)
Записан
kompilainenn
Мастер
*****
Offline Offline

Сообщений: 3 368



« Ответ #1: 14 Сентябрь 2016, 21:30 »

а нельзя два входящих поля использвать, а не одно? зачем этот геморрой?
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
economist
Форумчанин
***
Offline Offline

Сообщений: 1 567


« Ответ #2: 14 Сентябрь 2016, 22:58 »

Поиск по полям - расширение AltSearch http://extensions.libreoffice.org/extension-center/alternative-dialog-find-replace-for-writer

А вообще правильнее такие документы с полями обрабатывать макросом, который будет складывать все данныe из полей в Базу данных BASE, слинкованную с промышленного уровня СУБД (SQLite, FireBird, MySQL, PostgreSQL) для  последующего анализа, конструирования Отчетов и вообще для доказательной медицины, которой так не хватает приемов "Big Data". 
Записан

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

Сообщений: 3


« Ответ #3: 15 Сентябрь 2016, 20:31 »

По поводу использования двух полей:
тот пример, который я привел, это лишь один из многих. В действительности нужно будет еще делить диагноз на TNM, стадию и локализацию. Также потом надо будет вытаскивать названия препаратов и т.д. Иметь более 30 полей в документе объемом около страницы, мне кажется перебор.


К сожалению расширение AltSearch, как и любое другое расширение установить нет возможности. Поскольку компьютер рабочий, доступ к нему гостевой, а тех.поддержка не пойдет на индивидуальную установку для отдельного врача.

Макросы на рабочем компьютере работают, но вот только из фразы ув. kompilainenn я понял только то, что нужен макрос)) Как его написать то? С самой базой данных я уже разберусь.

Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 567


« Ответ #4: 19 Сентябрь 2016, 08:56 »

Если доступ гостевой - portableapps.com

А за такую техподдержку даже мне стыдно, но не помню перед кем :-))

Полей в документе может быть сколько угодно. Особенно если это поля базы данных. Вот макрос для чтения полей:   
Записан

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

Сообщений: 1 567


« Ответ #5: 19 Сентябрь 2016, 08:57 »

Код:
Sub Get_From_ODT_DataBase_Fields_And_Contetnts()
' Прочесть имена БД-полей (только их!) и их содержимое
  Dim oMasters      'Все владельцы текстовых полей
  Dim oMasterNames  'Массив имен владельцев текстовых полей
  Dim i%        'Индексная переменная
  Dim sMasterName$  'Полное имя владельца поля
  Dim s$            'Сервисная строка
  Dim oMaster       'Владелец поля
  ' Получим объект владельцев текстовых полей.
  oMasters = ThisComponent.getTextFieldMasters()
  ' Получим ВСЕ имена владельцев текстовых полей, это массив строк.
  oMasterNames = oMasters.getElementNames()
  For i = LBound(oMasterNames) to UBound(oMasterNames)
    'Для данного имени, получаем владельца поля, затем смотрим свойство
    'DependentTextFields, которое является массивом текстовых полей, зависимых
'от этого Владельца поля
    sMasterName = oMasterNames(i)
    'msgbox(sMasterName)
    oMaster = oMasters.getByName(sMasterName)
   on error resume next
    If UBound(oMaster.DependentTextFields) >= 0 Then
      dp = oMaster.DependentTextFields(0) ' читаем первое зависимое поле
      stroka=oMaster.Name & "=" & dp.Content ' имя+содерж, но в нем ÿ вместо символа .
  stroka=replace(stroka, "ÿ",".") ' убрали "мусор"
      msgbox(stroka)
   end if
  Next i
End Sub
Записан

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

Сообщений: 1 567


« Ответ #6: 19 Сентябрь 2016, 09:24 »

Раз у вас такие злые "одмины" - присмотритесь к базе данных в формате SQLite. Это самая быстрая СУБД (заявляю ответственно), не требует "сервера", хотя в режиме общего доступа вполне позволяет работать 3-5 человекам одновременно. Просто кладете файл базы данных на сетевой диск и работаете. Чтобы OpenOffice и LibreOffice BASE смог работать с SQLite под Windows - нужно установить ODBC-драйвер:
http://ch-werner.de/sqliteodbc/

Также удобно использовать расширение в FireFox - SQLite Manager:
https://addons.mozilla.org/ru/firefox/addon/sqlite-manager/

Все эти программные продукты свободны и бесплатны.
Записан

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

Сообщений: 1 567


« Ответ #7: 19 Сентябрь 2016, 09:38 »

Чтобы обрисовать возможности SQLite под OpenOffice и LibreOffice - все(!) бухгалтерские проводки завода за 10 лет (1 млн. строк, 60 полей) - легко "переехали" в один файл размером 400 мегабайт, из которых 200 - это индексы. Любой сложный SQL-запрос (скажем среднемесячная цена реализации top-5 видов продукции) - выполняется за секунду-три. За это время 1С едва открывается. При этом всю возню с импортом/экспортом делает скрипт на языке Python, оказавшимся в 10 раз более быстрым, чем VBS и PowerShell.
Записан

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

Сообщений: 3


« Ответ #8: 19 Сентябрь 2016, 09:41 »

Спасибо за макрос. Сегодня попробую.

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

То есть из определенного объема файлов odt можно сделать экспорт в SQLite и использовать возможности базы данных?
Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 567


« Ответ #9: 19 Сентябрь 2016, 14:08 »

Вы всё можете. Скачайте http://portableapps.com/apps/office/libreoffice_portable и http://portableapps.com/apps/utilities/java_portable, "установите" на домашней машине, поставьте все нужные расширения, после чего скопируйте всю папку C:\PortableApps на рабочий комп. Должно все работать.

Макросы это выход, но путь тернист. А из ODT можно сделать "форму" для ввода данных, которая будет сама сохранять себя в базе данных SQLite (OpenOffice и LibreOffice BASE, файл ODB). В Base можно создавать Отчеты (табличные и текстовые), но гораздо проще использовать данные в документах Writer по нажатию F4. То есть мы полностью "двунаправленно" интегрируем данные с документами, причем с разных рабочих мест (просто у каждого должен быть свой ODB-файл, слинкованный с одним SQLite-файлом).
Записан

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

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