Замена формата Числовой на Текст

Автор joshua, 27 октября 2017, 14:59

0 Пользователи и 1 гость просматривают эту тему.

mikekaganski

С уважением,
Михаил Каганский

JohnSUN

#16
Ну да, всё можно... Не знаешь, где лежат nnn для США и Таиланда? (или там речь о Тайване? О, мой английский!)
А если знаешь, может пихнёшь Священную Арфу в нужную сторону? А то Вольфганг опять написал многбукав, а ответа так и не дал...

Upd Спасибо! Оперативно, информативно, полезно
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

mikekaganski

Цитата: rami от 30 октября 2017, 15:55
Можно попытаться выяснить как формируется номер пользовательского формата, но я не вижу в этом практической пользы, будет намного сложней этим пользоваться.

На самом деле всё не так страшно.

sFmt = "@"
oLocale = ThisComponent.CurrentController.Selection.CharLocale
nFmtId = ThisComponent.NumberFormats.queryKey(sFmt, oLocale, False)
if nFmtId = -1 then
   nFmtId = ThisComponent.NumberFormats.addNew(sFmt, oLocale) ' Не для "@", конечно
end if
С уважением,
Михаил Каганский

JohnSUN

Питоньяк ещё на всякий случай (?) после addNew добавил
If (nFmtId = -1) Then nFmtId = 0
Это вроде как "добавить не получилось - будет Базовый"?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

mikekaganski

Ну, типа того, но зря.

addNew не возвращает -1. Она может выбросить исключение (см. SvNumberFormatsObj::addNew). В свою очередь, SvNumberFormatter::PutEntry возвращает true только если была добавлена новая позиция, и индекс её не будет -1.
С уважением,
Михаил Каганский

rami

Цитата: mikekaganski от 31 октября 2017, 12:16Ну, типа того, но зря.
Не думаю, что зря, скорее всего в те дремучие времена это имело смысл.