Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /profiles/j/jo/joh/johnson/johnson.cba.pl/wp-content/plugins/wp-slimstat/browscap.php on line 589

Warning: fsockopen() [function.fsockopen]: unable to connect to updates.browserproject.com:80 (php_network_getaddresses: getaddrinfo failed: No address associated with hostname) in /profiles/j/jo/joh/johnson/johnson.cba.pl/wp-content/plugins/wp-slimstat/browscap.php on line 589
Johnson Blog

Jak ułatwić sobie pracę z cyframi w Writerze ?

czerwiec 26th, 2009

Jeśli potrzebujesz wpisywać cyfry i liczbą i słownie to rozwiązanie dla Ciebie:

Słownie (open office)

‘——————————————————————————————————————————————-
‘ Zestaw funkcji i procedur do przekształcania liczby zapisanej cyframi
‘ na wyrażenie słowne w programie “Writer”
‘ Makro z internetu (grupy dyskusyjne)
‘ wersja przekształca liczby zapisane w formatach ## i ##,##
‘ autor mirhor@wp.pl

Public we, wy, forma As String

Sub Slownie

‘ deklaracje zmiennych
Dim Dokument As Object, Cyframi As Object
Dim Kursor As Object, Kursor1 As Object
Dim tx0, txd, txc, tx1, cyd2, cyd1 As String
Dim dlugosc As Integer
Dim slownie, slownie1, slowniezl, slowniegr, znak, mianogr, mianozl As String
Dim jednostki(), nastki(), dziesiatki(), setki()
Dim i, j, k As Integer

Dokument = ThisComponent
Kursor = Dokument.currentcontroller.getViewCursor()
Cyframi = Kursor.Text
Kursor1 = Cyframi.createTextCursorByRange(Kursor.getstart())
Kursor1.gotoStartOfWord(false)
Kursor1.gotoEndOfWord(true)

‘ obsługa błędów
on error goto BLAD
‘przypisanie pobranego łańcucha do zmiennej tx0
tx00 = Kursor1.String
Kursor1.goRight(0,false)
dlugosc1 = Len(tx00)
znak = Mid(tx0,dlugosc-2,1)
If dlugosc1 < 3 or znak <> “,” Then
tx0=Format(tx00,”#0.00″)
dlugosc = Len(tx0)
End If

‘część dziesiętna – grosze

we = Right(tx0,2)
Call miano
If forma = “0″ Then
wy = “”
mianogr = “”
ElseIf forma = “1″ Then
mianogr = “grosz”
ElseIf forma = “2″ Then
mianogr = “grosze”
Else
mianogr = “groszy”
EndIf

slowniegr = wy & mianogr

‘część całkowita – złótówki

dlugosc = dlugosc – 3
txc = Left(tx0,dlugosc)
If dlugosc > 12 Then GoTo biliony
If dlugosc > 9 Then GoTo miliardy
If dlugosc > 6 Then GoTo miliony
If dlugosc > 3 Then GoTo tysiace
GoTo setki

biliony:
we = Left(txc,dlugosc-12)
txc = Right(txc,12)
dlugosc = 12
Call miano
If forma = “0″ Then
mianozl = “”
ElseIf forma = “1″ Then
mianozl = “bilion ”
ElseIf forma = “2″ Then
mianozl = “biliony ”
Else
mianozl = “bilionów ”
EndIf

slowniezl = wy & mianozl

miliardy:
we = Left(txc,dlugosc-9)
txc = Right(txc,9)
dlugosc = 9
Call miano
If forma = “0″ Then
mianozl = “”
ElseIf forma = “1″ Then
mianozl = “miliard ”
ElseIf forma = “2″ Then
mianozl = “miliardy ”
Else
mianozl = “miliardów ”
EndIf

slowniezl = slowniezl & wy & mianozl

miliony:
we = Left(txc,dlugosc-6)
txc = Right(txc,6)
dlugosc = 6
Call miano
If forma = “0″ Then
mianozl = “”
ElseIf forma = “1″ Then
mianozl = “milion ”
ElseIf forma = “2″ Then
mianozl = “miliony ”
Else
mianozl = “milionów ”
EndIf

slowniezl = slowniezl & wy & mianozl

tysiace:
we = Left(txc,dlugosc-3)
txc = Right(txc,3)
dlugosc = 3
Call miano
If forma = “0″ Then
mianozl = “”
ElseIf forma = “1″ Then
mianozl = “tysiąc ”
ElseIf forma = “2″ Then
mianozl = “tysiące ”
Else
mianozl = “tysięcy ”
EndIf

slowniezl = slowniezl & wy & mianozl

setki:
we = txc
Call miano
If forma = “0″ Then
mianozl = “złotych”
ElseIf forma = “1″ Then
mianozl = “złoty”
ElseIf forma = “2″ Then
mianozl = “złote”
Else
mianozl = “złotych”
EndIf

slowniezl = slowniezl & wy & mianozl

‘sprawdzenie czy przypadkiem zero groszy

If Right(tx0,2)=”00″ then
slownie = slowniezl & slowniegr
else
slownie = slowniezl & ” i ” & slowniegr
end if

‘ wstawienie do dokumentu
Kursor1.String = ” zł (” & slownie & “)”

GoTo KONIEC

‘ obsługa błędów
BLAD:
msgbox (“To nie jest LICZBA!!!”,16)

KONIEC:

End Sub

Sub miano
Dim dl As Integer
Dim cy3, cy2, cy1 As String
Dim jednostki(), nastki(), dziesiatki(), setki()
jednostki() = jednostki1()
nastki() = nastki1()
dziesiatki() = dziesiatki1()
setki() = setki1()
dl = Len(we)
cy1 = “”
cy2 = “”
cy3 = “”
wy = “”
forma = “”

‘jedna cyfra
If dl = 1 Then
cy1 = we
wy = jednostki(cy1)
If cy1 = “0″ Then
forma = “0″
ElseIf cy1 = “1″ Then
forma = “1″
ElseIf cy1 = “2″ or cy1 = “3″ or cy1 = “4″ Then
forma = “2″
Else
forma = “5″
End If

‘dwie cyfry
ElseIf dl = 2 Then
cy1 = Mid(we,2,1)
cy2 = Mid(we,1,1)
If cy2 = “0″ Then
wy = jednostki(cy1)
If cy1 = “0″ Then
forma = “0″
ElseIf cy1 = “1″ Then
forma = “1″
ElseIf cy1 = “2″ or cy1 = “3″ or cy1 = “4″ Then
forma = “2″
Else
forma = “5″
End If
ElseIf cy2 = “1″ Then
wy = nastki(cy1)
forma = “5″
ElseIf cy1 = “2″ or cy1 = “3″ or cy1 = “4″ Then
wy = dziesiatki(cy2) & jednostki(cy1)
forma = “2″
Else
wy = dziesiatki(cy2) & jednostki(cy1)
forma = “5″
End If

‘trzy cyfry
Else
cy1 = Mid(we,3,1)
cy2 = Mid(we,2,1)
cy3 = Mid(we,1,1)
If cy3 = “0″ and cy2 = “0″ and cy1 = “0″ Then
wy = “”
forma = “0″
ElseIf cy3 = “0″ and cy2 = “0″ Then
wy = jednostki(cy1)
If cy1 = “1″ Then
forma = “1″
ElseIf cy1 = “2″ or cy1 = “3″ or cy1 = “4″ Then
forma = “2″
Else
forma = “5″
End If
ElseIf cy3 = “0″ and cy2 = “1″ Then
wy = nastki(cy1)
forma = “5″
ElseIf cy3 = “0″ Then
wy = dziesiatki(cy2) & jednostki(cy1)
If cy1 = “2″ or cy1 = “3″ or cy1 = “4″ Then
forma = “2″
Else
forma = “5″
End If
ElseIf cy2 = “1″ Then
wy = setki(cy3) & nastki(cy1)
forma = “5″
ElseIf cy1 = “2″ or cy1 = “3″ or cy1 = “4″ Then
wy = setki(cy3) & dziesiatki(cy2) & jednostki(cy1)
forma = “2″
Else
wy = setki(cy3) & dziesiatki(cy2) & jednostki(cy1)
forma = “5″
End If
End If
End Sub

Function jednostki1()
jednostki1() = Array(“”, “jeden “, “dwa “, “trzy “, “cztery “, “pięć “, “sześć “, “siedem “, “osiem “, “dziewięć “)
End Function

Function nastki1()
nastki1() = Array(“dziesięć “, “jedenaście “, “dwanaście “, “trzynaście “, “czternaście “, “piętnaście “, “szesnaście “, “siedemnaście “, “osiemnaście “, “dziewiętnaście “)
End Function

Function dziesiatki1()
dziesiatki1() = Array(“”, “”, “dwadzieścia “, “trzydzieści “, “czterdzieści “, “pięćdziesiąt “, “sześćdziesiąt “, “siedemdziesiąt “, “osiemdziesiąt “, “dziewięćdziesiąt “)
End Function

Function setki1()
setki1() = Array(“”, “sto “, “dwieście “, “trzysta “, “czterysta “, “pięćset “, “sześćset “, “siedemset “, “osiemset “, “dziewięćset “)
End Function


Stats by WP SlimStat