Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Не хочется изобретать велосипед! / 10 сообщений из 10, страница 1 из 1
15.09.2005, 12:29
    #33270929
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
Доброго дня всем! Если не жалко, подкиньте универсальную функцию по переводу денежных сумм в прописные символы (4567 => четыре тысячи пятьсот шестьдесят семь)! Можно и самому слабать, но наверняка кто- нибудь сталкивался (можно и sql - процедурку!). Зараннее всем спасибо!
...
Рейтинг: 0 / 0
15.09.2005, 12:51
    #33271019
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
boogimanДоброго дня всем! Если не жалко, подкиньте универсальную функцию по переводу денежных сумм в прописные символы (4567 => четыре тысячи пятьсот шестьдесят семь)! Можно и самому слабать, но наверняка кто- нибудь сталкивался (можно и sql - процедурку!). Зараннее всем спасибо!
На моей страничке есть http://lokshinmark.narod.ru/files/velm.zip . За SQL процедурой - на соседний формум, скорее всего в поиск...
...
Рейтинг: 0 / 0
15.09.2005, 13:05
    #33271064
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
Спасибо, Марк!
...
Рейтинг: 0 / 0
16.09.2005, 14:34
    #33273733
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
/* From:	"Vladimir" <mihalkin@ptz.ru>;*/
/* Newsgroups: fido7.ru.foxpro*/
/* Subject: [NEWS] Re: киньте у кого есть !!!*/
/* Date:	Fri, 16 Nov 2001 13:40:33 +0000 (UTC)*/

/* >Киньте процедурку для FPW вер 2.5, которая выводить число*/
/* >(имеется ввиду бухгалтерская сумма) прописью*/

/*  Вот гляди...*/
/*  Более компактной еще не встречал - подозреваю, */
/* что ее автор имеет задатки гения, потому как */
/* я в его логике так и не разобрался :(*/
/*  А передрана мною эта прога была из оракуловской */
/* системы BOSS-корпорация, московской конторы */
/* под названием AT.*/

/***********************************************************/
/*                      Speeling(nSumma)                   */
/*                  Денежная сумма прописью                */
/***********************************************************/
FUNCTION Speeling
PARAMETER nSumma
PRIVATE cSumma
  /* k - копейки*/
  cSumma = TRANSFORM(M.nSumma,'9,9,,9,,,,,,9,9,,9,,,,,9,9,,9,,,,9,9,,9,,,.99')+'k'

  /* t - тысячи; m - милионы; M - миллиарды*/
  cSumma = STRTRAN(M.cSumma, ',,,,,,', 'eM')
  cSumma = STRTRAN(M.cSumma, ',,,,,',  'em')
  cSumma = STRTRAN(M.cSumma, ',,,,',   'et')

  /* e - единицы; d - десятки; c - сотни*/
  cSumma = STRTRAN(M.cSumma, ',,,', 'e')
  cSumma = STRTRAN(M.cSumma, ',,',  'd')
  cSumma = STRTRAN(M.cSumma, ',',   'c')

  cSumma = STRTRAN(M.cSumma, '0c0d0et', '')
  cSumma = STRTRAN(M.cSumma, '0c0d0em', '')
  cSumma = STRTRAN(M.cSumma, '0c0d0eM', '')

  cSumma = STRTRAN(M.cSumma, '0c', '')
  cSumma = STRTRAN(M.cSumma, '1c', 'сто ')
  cSumma = STRTRAN(M.cSumma, '2c', 'двести ')
  cSumma = STRTRAN(M.cSumma, '3c', 'триста ')
  cSumma = STRTRAN(M.cSumma, '4c', 'четыреста ')
  cSumma = STRTRAN(M.cSumma, '5c', 'пятьсот ')
  cSumma = STRTRAN(M.cSumma, '6c', 'шестьсот ')
  cSumma = STRTRAN(M.cSumma, '7c', 'семьсот ')
  cSumma = STRTRAN(M.cSumma, '8c', 'восемьсот ')
  cSumma = STRTRAN(M.cSumma, '9c', 'девятьсот ')

  cSumma = STRTRAN(M.cSumma, '1d0e', 'десять ')
  cSumma = STRTRAN(M.cSumma, '1d1e', 'одиннадцать ')
  cSumma = STRTRAN(M.cSumma, '1d2e', 'двенадцать ')
  cSumma = STRTRAN(M.cSumma, '1d3e', 'тринадцать ')
  cSumma = STRTRAN(M.cSumma, '1d4e', 'четырнадцать ')
  cSumma = STRTRAN(M.cSumma, '1d5e', 'пятнадцать ')
  cSumma = STRTRAN(M.cSumma, '1d6e', 'шестнадцать ')
  cSumma = STRTRAN(M.cSumma, '1d7e', 'семьнадцать ')
  cSumma = STRTRAN(M.cSumma, '1d8e', 'восемнадцать ')
  cSumma = STRTRAN(M.cSumma, '1d9e', 'девятнадцать ')

  cSumma = STRTRAN(M.cSumma, '0d', '')
  cSumma = STRTRAN(M.cSumma, '2d', 'двадцать ')
  cSumma = STRTRAN(M.cSumma, '3d', 'тридцать ')
  cSumma = STRTRAN(M.cSumma, '4d', 'сорок ')
  cSumma = STRTRAN(M.cSumma, '5d', 'пятьдесят ')
  cSumma = STRTRAN(M.cSumma, '6d', 'шестьдесят ')
  cSumma = STRTRAN(M.cSumma, '7d', 'семьдесят ')
  cSumma = STRTRAN(M.cSumma, '8d', 'восемьдесят ')
  cSumma = STRTRAN(M.cSumma, '9d', 'девяносто ')

  cSumma = STRTRAN(M.cSumma, '0e', '')
  cSumma = STRTRAN(M.cSumma, '5e', 'пять ')
  cSumma = STRTRAN(M.cSumma, '6e', 'шесть ')
  cSumma = STRTRAN(M.cSumma, '7e', 'семь ')
  cSumma = STRTRAN(M.cSumma, '8e', 'восемь ')
  cSumma = STRTRAN(M.cSumma, '9e', 'девять ')

  cSumma = STRTRAN(M.cSumma, '1e.', 'один рубль ')
  cSumma = STRTRAN(M.cSumma, '2e.', 'два рубля ')
  cSumma = STRTRAN(M.cSumma, '3e.', 'три рубля ')
  cSumma = STRTRAN(M.cSumma, '4e.', 'четыре рубля ')
  cSumma = STRTRAN(M.cSumma, '1et', 'одна тысяча ')
  cSumma = STRTRAN(M.cSumma, '2et', 'две тысячи ')
  cSumma = STRTRAN(M.cSumma, '3et', 'три тысячи ')
  cSumma = STRTRAN(M.cSumma, '4et', 'четыре тысячи ')
  cSumma = STRTRAN(M.cSumma, '1em', 'один миллион ')
  cSumma = STRTRAN(M.cSumma, '2em', 'два миллиона ')
  cSumma = STRTRAN(M.cSumma, '3em', 'три миллиона ')
  cSumma = STRTRAN(M.cSumma, '4em', 'четыре миллиона ')
  cSumma = STRTRAN(M.cSumma, '1eM', 'один милиард ')
  cSumma = STRTRAN(M.cSumma, '2eM', 'два милиарда ')
  cSumma = STRTRAN(M.cSumma, '3eM', 'три милиарда ')
  cSumma = STRTRAN(M.cSumma, '4eM', 'четыре милиарда ')

  cSumma = STRTRAN(M.cSumma, '11k', '11 копеек')
  cSumma = STRTRAN(M.cSumma, '12k', '12 копеек')
  cSumma = STRTRAN(M.cSumma, '13k', '13 копеек')
  cSumma = STRTRAN(M.cSumma, '14k', '14 копеек')
  cSumma = STRTRAN(M.cSumma, '1k', '1 копейка')
  cSumma = STRTRAN(M.cSumma, '2k', '2 копейки')
  cSumma = STRTRAN(M.cSumma, '3k', '3 копейки')
  cSumma = STRTRAN(M.cSumma, '4k', '4 копейки')

  cSumma = STRTRAN(M.cSumma, '.', 'рублей ')
  cSumma = STRTRAN(M.cSumma, 't', 'тысяч ')
  cSumma = STRTRAN(M.cSumma, 'm', 'миллионов ')
  cSumma = STRTRAN(M.cSumma, 'M', 'милиардов ')
  cSumma = STRTRAN(M.cSumma, 'k', ' копеек')
  m.cSumma=allt(IIF(M.nSumma <  10 ** 12 , M.cSumma, ALLTRIM(STR(M.nSumma, 20 , 2 ))))
  m.cSumma=upper(left(m.cSumma, 1 ))+lower(substr(m.cSumma, 2 ))

RETURN m.cSumma

написано на клиппере, STRTRAN -- это обычный REPLACE в TSQL. а вот TRANSFORM чем заменить.. он первый аргумент (сумма) размазывает по цифрам в выражение второго аргумента, причём на место девяток по одной цифре (аналог символов # в editmask в powerbuilder)

алгоритм интересный!
...
Рейтинг: 0 / 0
17.09.2005, 00:40
    #33274694
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
...
Рейтинг: 0 / 0
17.09.2005, 00:43
    #33274697
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
Если предыдущий линк не открылся то...
...
Рейтинг: 0 / 0
18.09.2005, 03:16
    #33275218
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
Тока ща заметил, там ещё и русский вариант есть :-)
...
Рейтинг: 0 / 0
18.09.2005, 17:18
    #33275441
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
2Филипп
Добрый день!
Филипп - вы знаете - я смотрю на конференции по ПБ уже 10 лет. Раньше они были активными и наполненными up to date сообщениями. Сейчас - ссылки часто идут на очень старые времена. А некоторые совсем только в архивах. Что то случилось или я не заметил слона? У вас ТАМ также? Или мода на ПБ совсем прошла? У нас она и не начиналась, а вот что у вас?
с уважением
станислав
...
Рейтинг: 0 / 0
19.09.2005, 11:52
    #33276264
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
sboykoФилипп - вы знаете - я смотрю на конференции по ПБ уже 10 лет. Раньше они были активными и наполненными up to date сообщениями. Сейчас - ссылки часто идут на очень старые времена. А некоторые совсем только в архивах. Что то случилось или я не заметил слона? У вас ТАМ также? Или мода на ПБ совсем прошла? У нас она и не начиналась, а вот что у вас?
с уважением
станислав

1) ссылки часто идут на очень старые времена, потому что большинство вопрошающих не только не способны программировать на РВ (что довольно просто), но и задают старые, 100 раз заданные вопросы, а при этом даже не могут пользоваться Гуглом :-)

Конференции по РВ в надлежащем месте - forums.sybse.com, проистекают весьма живо, вы видно не туда смотрите...

2) у нас мода на ПБ прошла ровно настолько, на сколько прошла мода на client/server, у вас, как это видится отсуда мне, РВ более моден чем у нас...
...
Рейтинг: 0 / 0
19.09.2005, 12:15
    #33276343
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не хочется изобретать велосипед!
2Филипп
Спасибо за быстрый ответ, но я тоже не умею пользоваться Гуглом. Он возник как чертик из коробочки и этот момент я пропустил. А что вы подразумеваете - уметь пользоваться Гуглом? Судя по всему это простой текстовый поиск, но причем здесь гугл конкретно?
станислав
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Не хочется изобретать велосипед! / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]