Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Сумма прописью для MS Word версии 2003 и выше (http://forum.oszone.net/showthread.php?t=266196)

Smolenkov_BN 14-08-2013 23:08 2201764

Сумма прописью для MS Word версии 2003 и выше
 
Вложений: 2
СУММА ПРОПИСЬЮ ДЛЯ MS WORD ВЕРСИИ 2003 И ВЫШЕ

Недавно ко мне обратилась соседка с просьбой помочь с шаблоном суммы прописью для MS Word. Посмотрел в Интернет. Нашел бесплатные "багированные" программы типа "Сумма прописью" и умопомрачительные "ограниченные" макросы от "домашних умельцев". Любят наши "программеры" двигаться "окольными путями". Пришлось сделать самому по стандартной методике для MS Office (см. российский и украинский варианты во вложении), где вообще макросы не нужны. Аналогичную методику можно применить для любых документов MS Word, включая таблицы. Инструкция прилагается. Дополнительно советую внимательно изучить содержимое кодов для каждого поля. Будут вопросы - пишите в тему.

Iska 14-08-2013 23:48 2201787

Цитата:

Цитата Smolenkov_BN
и умопомрачительные "ограниченные" макросы от "домашних умельцев". Любят наши "программеры" двигаться "окольными путями". Пришлось сделать самому по стандартной методике для MS Office »

Странно, что Вы не помните, что во времена, когда проводились конкурсы разработчиков Microsoft Office Extensions, CardText годился разве что в виде игрушки — как из-за своих ограничений (которые никуда не делись), так и одной досадной ошибки в реализации. Именно тогда массово появились многочисленные «СуммыПрописью» (и, кстати, занимали там призовые места).


Первое — макросы позволяют избежать указанных ограничений CardText. Второе — род только мужской. Третье — потребность двух и более сумм прописью в документе кладут описанный Вами Copy/Paste-подход «на лопатки».

Smolenkov_BN 18-08-2013 18:23 2203682

Цитата:

Цитата Iska
Странно, что Вы не помните, что во времена, когда проводились конкурсы разработчиков Microsoft Office Extensions»

Вообще-то помню, потому что начал заниматься программированием ещё до появления корпорации Microsoft. Мне 60 лет и я уже пенсионер. :)

Цитата:

Цитата Iska
CardText годился разве что в виде игрушки — как из-за своих ограничений (которые никуда не делись), так и одной досадной ошибки в реализации. Именно тогда массово появились многочисленные «СуммыПрописью» (и, кстати, занимали там призовые места). »

Не могу с Вами согласиться. Взгляните на обновленные мною файлы приложения. Я там заменил FORMTEXT на ASK/REF/SET/QUOTE. Получилось удобнее в работе. В CardText только один недостаток: "1000" воспроизводится как "Тысяча", а не "Одна тысяча". Но банки принимают платежки, начинающиеся с "Тысяча...", если слово "тысяча" написано с прописной буквы.

Цитата:

Цитата Iska
Первое — макросы позволяют избежать указанных ограничений CardText.»

Макросы уничтожают безопасность Ваших документов. В документах корпорации Microsoft постоянно об этом напоминается. Что касается ограничений, то они непреодолимы только для этих продуктов:
Article ID: 35596 - View products that this article applies to
http://support.microsoft.com/kb/35596/en-us#appliesto
Article ID: 35596 - Last Review: November 16, 2006 - Revision: 2.3
APPLIES TO
Microsoft Word 1.0 Standard Edition
Microsoft Word 1.1 Standard Edition
Microsoft Word 1.1 Standard Edition
Microsoft Word 2.0 Standard Edition
Microsoft Word 2.0a
Microsoft Word for Windows 2.0b
Microsoft Word 2.0c
Microsoft Word 6.0 Standard Edition
Microsoft Word 6.0a
Microsoft Word 6.0c
Microsoft Word 95 Standard Edition
Microsoft Word 95a
Microsoft Word 97 Standard Edition


Цитата:

Цитата Iska
Второе — род только мужской.»

Посмотрите вложенные формы украинской версии в посте №1.

Цитата:

Цитата Iska
Третье — потребность двух и более сумм прописью в документе кладут описанный Вами Copy/Paste-подход «на лопатки». »

Вы можете сделать столько сумм прописью, сколько выдержит нумерация закладок MS Word:
СуммаБезПДВ1, СуммаБезПДВ2, ... , СуммаБезПДВ(n).
Кстати, на лопатки от смеха лег не только я, но и Paul Edstein - завсегдатай "MS MVP - Word". Вот Вам от него пример, который показывает многообразие возможностей CardText:
{ QUOTE { ASK Val "What is he amount?" }{ SET AbsVal { =ABS(Val) }} { IF{=Val} < 0 "Minus " }
{ IF { =INT(AbsVal/100000000) } <> 0 "{ =INT(AbsVal/100000000) \* Cardtext} hundred " }
{ IF { =MOD(INT(AbsVal/1000000),100) } <> 0 "{ IF { =INT(AbsVal/100000000) } <> 0 "and "}" }
{ IF { =INT(AbsVal/1000000) } <> 0 "{ =MOD(INT(AbsVal/1000000),100) \* Cardtext} million, " }
{ IF { =INT(AbsVal/100000) } <> 0 "{ =MOD(INT(AbsVal/100000),10) \*Cardtext } hundred " }
{ IF { =MOD(INT(AbsVal1000),100) } <> 0 "{ IF { =INT(AbsVal/100000) } <> 0 "and "}" }
{ IF { =INT(AbsVal/1000) } <> 0 "{ =MOD(INT(AbsVal/1000),100) \* Cardtext } thousand, " }
{ IF { =MOD(INT(AbsVal/100),10) } <> 0 "{ =MOD(INT(AbsVal/100),10) \*Cardtext } hundred " }
{ IF { =MOD(INT(AbsVal),100) } <> 0 "{ IF { =INT(AbsVal/100) } <> 0 "and "}{=MOD(INT(AbsVal),100) \*Cardtext} " }
{ =INT(AbsVal) \# \dollar;; }{ IF { =INT(AbsVal) } > 1 "s" }
{ IF { =MOD(AbsVal,1) } <> 0 "{ IF { =INT(AbsVal)}<> 0 " and " }{ =MOD(AbsVal,1)*100 \*Cardtext } cent { IF { =MOD(AbsVal,1) } > 0.01 s }" } \* FirstCap }

Там есть "умышленные" ошибки, но Вы, думаю, с этим легко справитесь. Попробуйте создать сумму прописью хотя бы до сотен триллионов. Можем сделать это вместе прямо в этой теме. В целом, судя по сообщениям в форуме, Вы - неплохой специалист. Вот только торопитесь иногда. :yes:


Время: 08:40.

Время: 08:40.
© OSzone.net 2001-