Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
ник: Силblч чисто поржать, а может и найдёт своё продолжение в ваших разрабтках/усовершенствованиях! создаем таблицу :) pcode = числовой pname = текст pmask = текст lang = текст capcur = текст capcop = текст cap2 = текст cap3 = текст cap4 = текст данные в csv:
pcode;pname;pmask;lang;capcur;capcop;cap2;cap3;cap4 0;ноль;0;ru;рублей;копеек;тисяч;миллионов;миллиардов 1;одна;0;ru;рублей;копейка;тысяча;; 2;две;0;ru;рублей;копейки;тысячи;; 3;три;0;ru;рублей;копейки;тысячи;миллиона;миллиарда 4;четыре;0;ru;рублей;копейки;тысячи;миллиона;миллиарда 5;пять;0;ru;рублей;копейки;тысяч;миллионов;миллиардов 6;шесть;0;ru;рублей;копейки;тысяч;миллионов;миллиардов 7;семь;0;ru;рублей;копейки;тысяч;миллионов;миллиардов 8;восемь;0;ru;рублей;копейки;тысяч;миллионов;миллиардов 9;девять;0;ru;рублей;копейки;тысяч;миллионов;миллиардов 10;десять;00;ru;рублей;копейки;тысяч;миллионов;миллиардов 11;одиннадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 12;двенадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 13;тринадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 14;четирнадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 15;пятнадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 16;шестнадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 17;семнадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 18;восемнадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 19;девятнадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 20;двадцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 30;тридцать;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 40;сорок;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 50;пятьдесят;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 60;шестьдесят;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 70;семьдесят;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 80;восемьдесят;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 90;девяносто;00;ru;рублей;копеек;тысяч;миллионов;миллиардов 100;сто;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 200;двести;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 300;триста;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 400;четиреста;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 500;пятьсот;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 600;шестьсот;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 700;семьсот;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 800;восемьот;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 900;девятьсот;000;ru;рублей;копеек;тысяч;миллионов;миллиардов 1000000;один;0000000;ru;рубль;;;миллион; 2000000;два;0000000;ru;рубля;;;миллиона; 3000000;три;0000000;ru;рубля;;;миллиона; 4000000;четыре;0000000;ru;рубля;;;миллиона; 1000000000;один;0000000000;ru;рублей;;;;миллиард 2000000000;два;0000000000;ru;рублей;;;;миллиарда 0;ноль;0;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 1;одна;0;ua;гривня;копiйка;тисяча;; 2;дві;0;ua;гривнi;копiйки;тисячi;; 3;три;0;ua;гривнi;копiйки;тисячi;мiльона;мiльярда 4;чотири;0;ua;гривнi;копiйки;тисячi;мiльона;мiльярда 5;п'ять;0;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 6;шість;0;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 7;сім;0;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 8;вісім;0;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 9;дев'ять;0;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 10;десять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 11;одинадцать;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 12;дванадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 13;тринадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 14;чотирнадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 15;п'ятнадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 16;шістнадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 17;сімнадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 18;вісімнадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 19;дев'ятнадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 20;двадцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 30;тридцять;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 40;сорок;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 50;п'ятдесят;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 60;шістдесят;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 70;сімдесят;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 80;вісімдесят;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 90;дев'яносто;00;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 100;сто;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 200;двісті;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 300;триста;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 400;чотириста;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 500;п'ятьсот;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 600;шістьсот;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 700;сімсот;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 800;вісімсот;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 900;дев'ятьсот;000;ua;гривень;копiйок;тисяч;мiльонiв;мiльярдiв 1000000;один;0000000;ua;гривень;копiйок;;мiльон; 2000000;два;0000000;ua;гривень;копiйок;;мiльона; 1000000000;один;0000000000;ua;гривень;копiйок;;;мiльярд 2000000000;два;0000000000;ua;гривень;копiйок;;;мiльярда
'?propeace(1971.26) Public Function propeace(amount@, Optional lang$ = "ua") Dim rs As DAO.Recordset Dim varvar() As Variant Dim pp$, ret$, i&, ar, ad, am, vl, chk& amount = CCur(amount) am = Split(amount, Mid(amount, Len(CStr(Int(amount))) + 1, 1)) 'котлеты-отдельно, мухи-отдельно '-- триадим деньги :) pp = Format(Int(am(0)), "000\|000\|000\|000") ar = Split(pp, "|") '-- загрузить шаблоны на ReDim varvar(0) Set rs = CurrentDb.OpenRecordset("select * from _propeace where lang='" & lang & "' order by pcode") If Not rs.EOF Then rs.MoveLast: rs.MoveFirst ReDim varvar(rs.Fields.Count, rs.RecordCount) varvar = rs.GetRows(rs.RecordCount) End If If UBound(varvar) = 0 Then propeace = "#Ошибка инициализации: шаблон не найден": Exit Function '-- сразу считаем, что у нас в карманах нольнах :) ret = varvar(1, 0) & " " & varvar(4, 0) '-- а теперь разберемся, насколько это верно If UBound(ar) = 3 And am(0) > 0 Then ret = "": pp = "" If Int(ar(0)) > 0 Then 'миллиардыах@еть ad = Split(Format(Int(ar(0)), "0\|0\|0"), "|") If Int(ar(0)) > 0 Then vl = ad(0) * 100: GoSub s4var If chk >= 11 And chk <= 19 Then vl = chk: pp = "1G": GoSub s4var Else vl = ad(1) * 10: GoSub s4var vl = ad(2) * 1: pp = "1G": GoSub s4var End If End If End If If Int(ar(1)) > 0 Then 'мульёны ad = Split(Format(Int(ar(1)), "0\|0\|0"), "|") If Int(ar(2)) > 0 Then vl = ad(0) * 100: GoSub s4var If chk >= 11 And chk <= 19 Then vl = chk: pp = "1M": GoSub s4var Else vl = ad(1) * 10: GoSub s4var vl = ad(2) * 1: pp = "1M": GoSub s4var End If End If End If If Int(ar(2)) > 0 Then 'тыдыщи ad = Split(Format(Int(ar(2)), "0\|0\|0"), "|") If Int(ar(2)) > 0 Then vl = ad(0) * 100: GoSub s4var chk = (ad(1) & ad(2)) * 1 If chk >= 11 And chk <= 19 Then vl = chk: pp = "1K": GoSub s4var Else vl = ad(1) * 10: GoSub s4var vl = ad(2) * 1: pp = "1K": GoSub s4var End If End If End If If Int(ar(3)) > 0 Then 'ссотни ad = Split(Format(Int(ar(3)), "0\|0\|0"), "|") If Int(ar(3)) > 0 Then vl = ad(0) * 100: GoSub s4var chk = (ad(1) & ad(2)) * 1 If chk >= 11 And chk <= 19 Then vl = chk: pp = "end": GoSub s4var Else vl = ad(1) * 10: GoSub s4var vl = ad(2) * 1: pp = "end": GoSub s4var End If End If End If End If 'end-of-money '--если есть мелочь, то здесь разгребём If UBound(am) > 0 Then 'мелочь ad = Split(Format(Int(am(1)), "0\|0"), "|") If Int(am(1)) > 0 Then ad(0) = ad(0) * 10 ad(1) = ad(1) * 1 'vl = ad(1) * 1: GoSub s4var 'ret = ret & " 00 " & varvar(5, 0) End If Else ret = ret & " 00 " & varvar(5, 0) End If propeace = ret Exit Function s4var: If vl = 0 Then pp = "": Return For i = rs.RecordCount - 1 To 1 Step -1 Select Case pp Case "1M" vl = IIf(vl = 1 Or vl = 2, vl * 1000000, vl) Case "1G" vl = IIf(vl = 1 Or vl = 2, vl * 1000000000, vl) Case "end" If lang = "ru" Then '--както некрасиво, но пока так :) vl = IIf(Choose(vl, 1, 2, 3, 4), vl * 1000000, vl) End If End Select If varvar(0, i) = vl Then If vl < 10 Then Select Case pp Case "end" ret = ret & " " & varvar(1, i) & " " & varvar(4, i) Case "1K" ret = ret & " " & varvar(1, i) & " " & varvar(6, i) Case "1M" ret = ret & " " & varvar(1, i) & " " & varvar(7, i) Case "1G" ret = ret & " " & varvar(1, i) & " " & varvar(8, i) Case Else ret = ret & " " & varvar(1, i) End Select Else Select Case pp Case "end" ret = ret & " " & varvar(1, i) & " " & varvar(4, i) Case "1K" ret = ret & " " & varvar(1, i) & " " & varvar(6, i) Case "1M" ret = ret & " " & IIf(vl = 1000000 Or vl = 2000000, varvar(7, i), "") Case "1G" ret = ret & " " & IIf(vl = 1000000000 Or vl = 2000000, varvar(8, i), "") Case Else ret = ret & " " & varvar(1, i) End Select End If Exit For End If Next i pp = "" Return End Function
Ваше имя:
Пароль:
Сообщение:
Прикрепить:
Для вставки смайлов в текст щелкните по значку.