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

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

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

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

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



« Стартовое сообщение: 20 Март 2021, 19:12 »

Добрый вечер, перешел на libreoffice.
Помогите реализовать макросом пропись по следующему образцу
Исходное число: 2222,22
Результат: 2222,22 2 222 (две тысячи двести двадцать два) рубля 22 копейки

  :roll:Про надстройку CyrillicTools знаю, но она прописывает не в удобоваримом для меня формате. Может дополнить пару строк этой надстройки, может кто то для себя делал?
« Последнее редактирование: 20 Март 2021, 20:12 от liptonenochek » Записан
rami
Гуру
*******
Offline Offline

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


iMac, LibreOffice и Apache OpenOffice


« Ответ #1: 20 Март 2021, 19:27 »

Про надстройку CyrillicTools знаю, но она прописывает не в удобоваримом для меня формате.
Что не подходит?



Посмотрите это расширение Numbertext
Записан

liptonenochek
Новичок
*
Offline Offline

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



« Ответ #2: 20 Март 2021, 20:10 »

Что не подходит?
Киррилик делает пропись по следующему виду: 2222,22 ---- Две тысячи двести двадцать два рубля 22 коп___

Numbertext на сайте разработчика сказано: "For Writer usage, see Linux Libertine G with Numbertext support and Typography toolbar." Два расширения установил, не понял как их задействовать, хоть и на тулбар вынес Typography, как написано.
Поэтому просто манипуляции с переменной и доп форматами [NatNum12 RUB]0,00 ничего кроме результата как ---- две тысячи двести двадцать два рубля двадцать две копейки. При открытии файла заново на месте поля: Задать переменную  = 2222,22

Может подскажите как запустить? libbre 7.1.1.2.



* 1.PNG (113.67 Кб, 1920x1080 - просмотрено 16 раз.)
Записан
liptonenochek
Новичок
*
Offline Offline

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



« Ответ #3: 22 Март 2021, 12:05 »

Добавить 223 строкой getSumByCurrency
Код:
Addition = Left(sAddition, Len(sAddition) - 1) & ") "
Поменять 195 строкой insertSumWriter
Код:
sOutText = dInValue & " " & Format(dInValue, "# ##0") & " (" & getSumLiterally (dInValue, sLanguage, sNominativeSingular, iFractionLen, _
sGender, sGenitiveSingular, sGenitivePlural, sFractionName, bFirstUpperCase)

P.S. Ребят, если кто то делал пропись копеек, и может поделится кодом, прошу) Всё хорошо

Назначить на хоткей: модуль SumLitManage, процедура InsertSumDefault
« Последнее редактирование: 22 Март 2021, 12:25 от liptonenochek » Записан
sokol92
Форумчанин
***
Offline Offline

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


WWW
« Ответ #4: 22 Март 2021, 15:43 »

Для начала попробуйте так (без надстроек):

Код:
' Сумма прописью (для локали по умолчанию ru_RU).
Sub TestNativeNumber2
  Dim oNatNum, v
  Dim aLocale As New com.sun.star.lang.Locale
  oNatNum=CreateUnoService("com.sun.star.i18n.NativeNumberSupplier2")
  Msgbox oNatNum.getNativeNumberStringParams("371,12", aLocale, 12, "capitalize RUB")
End Sub
Записан

Владимир.
eeigor
Форумчанин
***
Offline Offline

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



« Ответ #5: 22 Март 2021, 16:20 »

@sokol92, даже видя ответ, невозможно (очень трудно) найти, где это написано:
"capitalize RUB"

Документация оставляет желать лучшего.
Но вам ведь это кто-то подсказал? Или вы способ знаете "эффективного изучения LibreOffice"? Улыбка
Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
sokol92
Форумчанин
***
Offline Offline

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


WWW
« Ответ #6: 22 Март 2021, 16:40 »

В LO (как и во многих других предметах) лучший (часто и единственный) инструмент познания - грабли. Улыбка

Про параметры для Natnum12 написано (как ни странно  Улыбка ) в документации. Сервис  NativeNumberSupplier2 исследовал самостоятельно. Кстати, специфические для русского языка параметры можно получить так (догадаться невозможно):

Код:
oNatNum.getNativeNumberStringParams("help", aLocale, 12, "")

Если есть вероятность, что код Basic будет выполняться в иных локалях, то нужно в примере выше дописать еще строку, определяющую локаль:

Код:
aLocale.Language="ru" : aLocale.Country="RU"

В Calc указанный сервис поддерживается непосредственно на уровне числовых форматов ячеек.
« Последнее редактирование: 22 Март 2021, 16:47 от sokol92 » Записан

Владимир.
eeigor
Форумчанин
***
Offline Offline

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



« Ответ #7: 22 Март 2021, 16:51 »

Да-с, весьма забавная ситуация, если не сказать больше… Я здесь не участвовал, но автор темы и все, кто ему помогал, будут чрезвычайно удивлены. А кто писал расширение по этой задаче, интересно, знал ли об этом?
"Колесо", как оказалось, было уже изобретено…
Ставим лайки

UPD
@sokol92, прошёлся ещё раз по ссылке на документацию 7.1, и всё равно: в чистом виде ответа на мой вопрос нет.

Причём в строке "capitalize RUB" следует в точности соблюсти регистр символов, даже первой буквы "c". А так выглядело бы логичнее: "Capitalize".
Это список параметров, разделенных пробелом. А почему не запятой? Что ещё туда можно передать?

Равно как и нет описания возможности передать параметр "help" (внимание: регистр символов) вместо первого аргумента функции getNativeNumberStringParams():
NumberString   The input string.

Модераторы, вот ещё один приём, требующий помещения в отдельное место (об этом уже писалось).

В отсутствие документации это больше похоже на трюк!
« Последнее редактирование: 22 Март 2021, 17:27 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
sokol92
Форумчанин
***
Offline Offline

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


WWW
« Ответ #8: 22 Март 2021, 17:09 »

В описании NativeNumberSupplier2 указано, что сервис родился в LO 6.1 (до этого был только NativeNumberSupplier). Указанные выше расширения старше по возрасту.

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

Про возможность подсказки я где-то подсмотрел, и, к величайшему сожалению, потерял ссылку на первоисточник. Пришлось открывать заново.
« Последнее редактирование: 22 Март 2021, 17:29 от sokol92 » Записан

Владимир.
eeigor
Форумчанин
***
Offline Offline

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



« Ответ #9: 22 Март 2021, 18:34 »

NatNum12

Параметры следующие (кроме дат):
ordinal ordinal-number capitalize upper ordinal title RUB
« Последнее редактирование: 22 Март 2021, 18:45 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.1.2 Community
sokol92
Форумчанин
***
Offline Offline

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


WWW
« Ответ #10: 22 Март 2021, 19:03 »

Плюс из help'a:
cardinal-feminine: одна, две, три
cardinal-masculine: один, два, три
cardinal-neuter: одно, два, три
ordinal-feminine: первая, вторая, третья
ordinal-masculine: первый, второй, третий
ordinal-neuter: первое, второе, третье
ordinal-number-feminine: 1-я, 2-я, 3-я
ordinal-number-masculine: 1-й, 2-й, 3-й
ordinal-number-neuter: 1-е, 2-е, 3-е
Записан

Владимир.
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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