Подпрограмма "сумма прописью"



Posted by Анимица Анатолий on April 17, 1999 at 06:25:11:

При формировании документа в файле-коэффициенте необходимы различные служебные подпрограммы, традиционно размещаемые в first.rpt. Компактность и скорость работы таких подпрограмм важнее, чем обычно, так как они иногда цчаствуют в пересчете баланса. Вот один пример:
* подпрограмма "сумма прописью" ** вход S выход wn **
:wnf
kp=[tr [ce S]+0.5];rb=[tr S];kc='00';ss=[wn rb] коп.руб.коп.симв.руб.прописью
if ~rb ss='Ноль ';endif сумма меньше рубля
if kp in 9.999..99.999 kc=[sn kp,2,0]
elseif kp in 1..9 kc='0'+[sn kp,1,0] копейки символьно
else endif
ru='рублей ';cs=[tr [ce rb/100]+0.5] падежи рубля
if cs in 0.9999..1.0001 ru='рубль '
elseif cs in 1.999..4.0001 ru='рубля '
elseif [ce cs/10]/10 in 0.9999..1.0001 ru='рубль '
elseif [ce cs/10]/10 in 1.9999..4.0001 ru='рубля '
else endif
ko='копеек'
if kp in 0.999..1.001 ko='копейка' падежи копейки
elseif kp in 1.999..4.001 ko='копейки'
elseif [ce kp/10]/10 in 0.999..1.001 ko='копейка'
elseif [ce kp/10]/10 in 1.999..4.001 ko='копейки'
else endif
wn=ss+ru +kc +' '+ko сумма прописью
return wnf

Если нет нужды склонять копейки - можно просто выбросить несколько строк.



Пpишедшие ответы: