LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: сумма про...
 Тема: сумма прописью
 
 15.06.2007 20:09:35
ЕфимовИлья
22 сообщения


Тема: сумма прописью
Возможно, сделать сумму прописью в отчете?
Если да тогда в каком примере я могу это увидеть?
Если нет, тогда почему нет и как выйти из сложившейся ситуации?

С уважением Ефимов Илья.


P.S. События в отчетах
Автор: Ефимов Илья от 19.07.2005 13:18:59 Источник ...
 15.06.2007 20:09:35
All
4316 сообщения
1-ый


RE: сумма прописью
Пример la_form1.mdb (18 пример). Для отчета надо составить запрос с полем, где будет вызываться эта функция.


P.S. События в отчетах
Автор: Admin от 0:00:00 Источник ...
 09.11.2007 11:54:45
s_serge
1 сообщения


Re: Тема: сумма прописью
Украинский вариант

Public Function ЧислоПропись(x1 As Double) As String
Dim S1 As String, S_kop As String, s_triada As String
Dim pr_grivna As Integer
'Записывает прописью число, дробная часть - копейки
'pr_grivna - (1-указывает что слово гривна записано в вых. строку)
pr_grivna = 0
S1 = Format(x1, "000000000000.00")
S1 = Trim(S1)
S_kop = Right(S1, 2)
S1 = Mid(S1, 1, Len(S1) - 3)

If Len(S1) > 12 Then
ЧислоПропись = S1
GoTo Конец
End If
'до тысячи
If Len(S1) > 0 Then
If Len(S1) >= 3 Then
s_triada = Right(S1, 3)
Else
s_triada = Right("000" & S1, 3)
End If
If Val(s_triada) > 0 Then
ЧислоПропись = ТриадаПропись(s_triada, " ", "грив")
End If
End If
If Val(s_triada) > 0 Then
pr_grivna = 0 'т.е. слово гривна записано
End If

'тысячи
If Len(S1) > 3 Then
If Len(S1) >= 6 Then
s_triada = Left(Right(S1, 6), 3)
Else
s_triada = Right("000" & Mid(S1, 1, Len(S1) - 3), 3)
End If
If Val(s_triada) > 0 Then
If pr_grivna = 1 Then
ЧислоПропись = ТриадаПропись(s_triada, "тися", "грив") + ЧислоПропись
Else
ЧислоПропись = ТриадаПропись(s_triada, "тися", " ") + ЧислоПропись
End If
End If
End If
If Val(s_triada) > 0 Then
pr_grivna = 1 'т.е. слово гривна записано
End If

'мильйоны
If Len(S1) > 6 Then
If Len(S1) >= 9 Then
s_triada = Left(Right(S1, 9), 3)
Else
s_triada = Right("000" & Mid(S1, 1, Len(S1) - 6), 3)
End If
If Val(s_triada) > 0 Then
If pr_grivna = 0 Then
ЧислоПропись = ТриадаПропись(s_triada, "мільйо", "грив") + ЧислоПропись
Else
ЧислоПропись = ТриадаПропись(s_triada, "мільйо", " ") + ЧислоПропись
End If
End If
End If
If Val(s_triada) > 0 Then
pr_grivna = 1 'т.е. слово гривна записано
End If

'мильярды
If Len(S1) > 9 Then
If Len(S1) >= 12 Then
s_triada = Left(Right(S1, 12), 3)
Else
s_triada = Right("000" & Mid(S1, 1, Len(S1) - 9), 3)
End If
If Val(s_triada) > 0 Then
If pr_grivna = 1 Then
ЧислоПропись = ТриадаПропись(s_triada, "мільяр", "грив") + ЧислоПропись
Else
ЧислоПропись = ТриадаПропись(s_triada, "мільяр", " ") + ЧислоПропись
End If
End If
End If
If Val(s_triada) > 0 Then
pr_grivna = 0 'т.е. слово гривна записано
End If

'Добавляем копейки
ЧислоПропись = ЧислоПропись & " " & S_kop & " коп."
Конец:

End Function

Public Function ТриадаПропись(st1 As String, razr As String, griv As String) As String
'В razr название порядка триади (тися;мільйо;мільяр)
'В griv
Dim S1 As String, S2 As String, S3 As String
Dim pr1 As String
Dim mln_dop As String, mlrd_dop As String, ts_dop As String, griv_dop As String
ts_dop = "ч"
mln_dop = "нів"
mlrd_dop = "дів"
griv_dop = "нів"
If razr = "тися" Or razr = " " Then
pr1 = "ж"
Else
pr1 = "м"
End If
S1 = Mid(st1, 1, 1)
S2 = Mid(st1, 2, 1)
S3 = Mid(st1, 3, 1)

'Сотни
Select Case S1
Case "1"
ТриадаПропись = ТриадаПропись & " сто"
Case "2"
ТриадаПропись = ТриадаПропись & " двісті"
Case "3"
ТриадаПропись = ТриадаПропись & " триста"
Case "4"
ТриадаПропись = ТриадаПропись & " чотириста"
Case "5"
ТриадаПропись = ТриадаПропись & " п'ятсот"
Case "6"
ТриадаПропись = ТриадаПропись & " шістсот"
Case "7"
ТриадаПропись = ТриадаПропись & " сімсот"
Case "8"
ТриадаПропись = ТриадаПропись & " вісімсот"
Case "9"
ТриадаПропись = ТриадаПропись & " дев'ятсот"
End Select
'Десятки
Select Case S2
Case "2"
ТриадаПропись = ТриадаПропись & " двадцять"
Case "3"
ТриадаПропись = ТриадаПропись & " тридцять"
Case "4"
ТриадаПропись = ТриадаПропись & " сорок"
Case "5"
ТриадаПропись = ТриадаПропись & " п'ятдесят"
Case "6"
ТриадаПропись = ТриадаПропись & " шістьдесят"
Case "7"
ТриадаПропись = ТриадаПропись & " сімдесят"
Case "8"
ТриадаПропись = ТриадаПропись & " вісімдесят"
Case "9"
ТриадаПропись = ТриадаПропись & " дев'яносто"
End Select
'Единицы
Select Case S2
Case "1"
Select Case S3
Case "0"
ТриадаПропись = ТриадаПропись & " десять"
Case "1"
ТриадаПропись = ТриадаПропись & " одинадцять"
Case "2"
ТриадаПропись = ТриадаПропись & " дванадцять"
Case "3"
ТриадаПропись = ТриадаПропись & " тринадцять"
Case "4"
ТриадаПропись = ТриадаПропись & " чотирнадцять"
Case "5"
ТриадаПропись = ТриадаПропись & " п'ятнадцять"
Case "6"
ТриадаПропись = ТриадаПропись & " шістнадцять"
Case "7"
ТриадаПропись = ТриадаПропись & " сімнадцять"
Case "8"
ТриадаПропись = ТриадаПропись & " вісімнадцять"
Case "9"
ТриадаПропись = ТриадаПропись & " дев'ятнадцять"
End Select
Case Else
Select Case S3
Case "1"
If pr1 = "м" Then
ТриадаПропись = ТриадаПропись & " один"
mln_dop = "н"
mlrd_dop = "д"
Else
ТриадаПропись = ТриадаПропись & " одна"
ts_dop = "ча"
griv_dop = "на"
End If
Case "2"
If pr1 = "м" Then
ТриадаПропись = ТриадаПропись & " два"
mln_dop = "ни"
mlrd_dop = "ди"
Else
ТриадаПропись = ТриадаПропись & " дві"
ts_dop = "чі"
griv_dop = "ні"
End If
Case "3"
ТриадаПропись = ТриадаПропись & " три"
mlrd_dop = "ди"
mln_dop = "ни"
ts_dop = "чі"
griv_dop = "ні"
Case "4"
ТриадаПропись = ТриадаПропись & " чотири"
mlrd_dop = "ди"
mln_dop = "ни"
ts_dop = "чі"
griv_dop = "ні"
Case "5"
ТриадаПропись = ТриадаПропись & " п'ять"
mlrd_dop = "дів"
mln_dop = "нів"
ts_dop = "ч"
griv_dop = "ень"
Case "6"
ТриадаПропись = ТриадаПропись & " шість"
Case "7"
ТриадаПропись = ТриадаПропись & " сім"
Case "8"
ТриадаПропись = ТриадаПропись & " вісім"
Case "9"
ТриадаПропись = ТриадаПропись & " дев'ять"
End Select
End Select
Select Case razr
Case "мільяр"
ТриадаПропись = ТриадаПропись & " мільяр" & mlrd_dop
If griv = "грив" Then
ТриадаПропись = ТриадаПропись & " грив" & griv_dop
End If
Case "мільйо"
ТриадаПропись = ТриадаПропись & " мільйо" & mln_dop
If griv = "грив" Then
ТриадаПропись = ТриадаПропись & " грив" & griv_dop
End If
Case "тися"
ТриадаПропись = ТриадаПропись & " тися" & ts_dop
If griv = "грив" Then
ТриадаПропись = ТриадаПропись & " грив" & griv_dop
End If
Case Else
If griv = "грив" Then
ТриадаПропись = ТриадаПропись & " грив" & griv_dop
End If
End Select
End Function
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: сумма про...
ПоискПоиск  Список форумовСписок форумов  
right