ПолиграфияИнфо група dotbrain.eu ПринтГайд магазин TheDigitalPrint.info ПолиграфияИнфо ПринтСток БГОферта ПринтИдея
Error: Embedded data could not be displayed.



Въпроси и отговори
При двуцветен печат на черно и пантон, как може да бъде добавен пантон към областит...
Как да направя QR код с картинка в него?
Какво представляват хартиените офсетови плаки?
Печатни технологии
Огледални плексигласи, полистирен с огледален ефект и тяхното приложен...
От какво е направен тонерът
Технологии за печат на баркодове


Часовете са според зоната UTC + 2 часа




Напиши нова тема Отговори на тема  [ 6 мнения ] 
Автор Съобщение
 Заглавие: Писане на фактури в Open Office - цифром и словом
МнениеПубликувано на: 07 Юни 2010, 12:23 
Старо куче - медалист
Аватар

Регистриран на: 07 Апр 2004, 12:04
Мнения: 1423
Местоположение: София
Засега счетоводителката не минаваше на Open Office заради един скрипт SlovomBG, написан на Visual Basic, който изписваше крайната сума с думи (което наистина е досадно ако го правиш ръчно). Та тази проклетия не зацепваше под Open Office.

Затова аз написах собственоръчно един скрипт. Ако на някой му върши работа да го ползва. Работи само с ЛЕВОВЕ, и със суми по-малки от ЕДИН МИЛИАРД.

Как да се инсталира:

1. Отваряте Open Office Calc
2. Избирате Инструменти/Макроси/Управление на макроси/OpenOffice.org Basic...
3. От дясната колона избирате Main и натискате бутона Редактиране
4. Копирате там следния текст (Скрипта е написан изцяло от мен, ползвайте без притеснения)

Код:
Sub Main
   Print Slovom(0)
End Sub

Function MyText ( ByVal nNumber As Double, nFlag As Byte) As String
      cWords = ""
      nHundredsPlace = Int( nNumber / 100 )
      nRest = nNumber Mod 100
      Select Case nHundredsPlace
         Case 1: cWords = "СТО"
         Case 2: cWords = "ДВЕСТА"
         Case 3: cWords = "ТРИСТА"
         Case 4: cWords = "ЧЕТИРИСТОТИН"
         Case 5: cWords = "ПЕТСТОТИН"
         Case 6: cWords = "ШЕСТСТОТИН"
         Case 7: cWords = "СЕДЕМСТОТИН"
         Case 8: cWords = "ОСЕМСТОТИН"
         Case 9: cWords = "ДЕВЕТСТОТИН"
      End Select
      If nRest > 0 AND nHundredsPlace <> 0 Then
      Select Case nRest
       Case 1 To 20, 30, 40, 50, 60, 70, 80, 90
         cWords = cWords + " И "
       Case Else
         cWords = cWords + " "
       End Select
      EndIf
      nTensPlace = Int( nRest / 10 )
      nOnesPlace = nRest Mod 10
      Select Case nTensPlace
         Case 1: Select Case nOnesPlace
                   Case 0: cWords = cWords + "ДЕСЕТ"
                   Case 1: cWords = cWords + "ЕДИНАДЕСЕТ"
                   Case 2: cWords = cWords + "ДВАНАДЕСЕТ"
                   Case 3: cWords = cWords + "ТРИНАДЕСЕТ"
                   Case 4: cWords = cWords + "ЧЕТИРИНАДЕСЕТ"
                   Case 5: cWords = cWords + "ПЕТНАДЕСЕТ"
                   Case 6: cWords = cWords + "ШЕСТНАДЕСЕТ"
                   Case 7: cWords = cWords + "СЕДЕМНАДЕСЕТ"
                   Case 8: cWords = cWords + "ОСЕМНАДЕСЕТ"
                   Case 9: cWords = cWords + "ДЕВЕТНАДЕСЕТ"
                 End Select
         Case 2: cWords = cWords + "ДВАДЕСЕТ"
         Case 3: cWords = cWords + "ТРИДЕСЕТ"
         Case 4: cWords = cWords + "ЧЕТИРИДЕСЕТ"
         Case 5: cWords = cWords + "ПЕТДЕСЕТ"
         Case 6: cWords = cWords + "ШЕСТДЕСЕТ"
         Case 7: cWords = cWords + "СЕДЕМДЕСЕТ"
         Case 8: cWords = cWords + "ОСЕМДЕСЕТ"
         Case 9: cWords = cWords + "ДЕВЕТДЕСЕТ"
      End Select
      If nTensPlace <> 1 AND nOnesPlace <> 0 AND nRest >= 20 Then
         cWords = cWords + " И "
      EndIf   
      If nTensPlace <> 1 Then
         Select Case nOnesPlace
           Case 1:  If nFlag = 1 Then
                       cWords = cWords + "ЕДНА"
                    Else
                       cWords = cWords + "ЕДИН"
                    End If
           Case 2: If nFlag = 1 then
                      cWords = cWords + "ДВЕ"
                   Else
                      cWords = cWords + "ДВА"
                   End If
           Case 3: cWords = cWords + "ТРИ"
           Case 4: cWords = cWords + "ЧЕТИРИ"
           Case 5: cWords = cWords + "ПЕТ"
           Case 6: cWords = cWords + "ШЕСТ"
           Case 7: cWords = cWords + "СЕДЕМ"
           Case 8: cWords = cWords + "ОСЕМ"
           Case 9: cWords = cWords + "ДЕВЕТ"
          End Select
        EndIf
        MyText () = cWords
End Function

Function Slovom( ByVal nNumber As Double ) As String
   cWords = ""
   If nNumber < 0 Then
      cWords = "МИНУС "
      nNumber = -1 * nNumber
   EndIf
             
   If nNumber < 1000000000 AND nNumber >= 1000000 Then
      nMillions = Int( nNumber / 1000000 )
      nRest = Int( nNumber Mod 1000000 )
      cWords = cWords + MyText( nMillions, 0 )
      If nMillions = 1 Then
         cWords = cWords + " МИЛИОН"
      Else 
         cWords = cWords + " МИЛИОНА"
      EndIf
      If nRest > 0 Then
       If ((nRest >=100000) And (nRest < 1000000) And ((nRest - 100000) mod 100000 = 0)) Then
        cWords = cWords + " И "
       EndIf           
       If ((nRest >=10000) And (nRest < 100000) And ((nRest - 10000) mod 10000 = 0)) Then
        cWords = cWords + " И "
       EndIf
       If ((nRest >=1000) And (nRest < 10000) And ((nRest - 1000) mod 1000 = 0)) Then
        cWords = cWords + " И "
       EndIf
       If ((nRest >=100) And (nRest < 1000) And ((nRest - 100) mod 100 = 0)) Then
        cWords = cWords + " И "
       EndIf       
       Select Case nRest
       Case 1 To 20, 30, 40, 50, 60, 70, 80, 90
         cWords = cWords + " И "
       Case Else
         cWords = cWords + " "
       End Select
      EndIf
      nNumber = nNumber - (nMillions * 1000000)
    EndIf 
       
   If nNumber < 1000000 AND nNumber >= 1000 Then
      nThousands = Int( nNumber / 1000 )
      nRest = nNumber Mod 1000
      If nThousands = 1 Then
         cWords = cWords + " ХИЛЯДА"
      Else 
         cWords = cWords + MyText( nThousands, 1 ) + " ХИЛЯДИ"
      EndIf
      If nRest > 0 Then
      Select Case nRest
       Case 1 To 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900
         cWords = cWords + " И "
       Case Else
         cWords = cWords + " "
       End Select
      EndIf
      nNumber = nNumber - ( nThousands * 1000)
    EndIf   
   
    If nNumber < 1000 AND nNumber >= 0 Then
       cWords = cWords + MyText (Int (nNumber),0)
        nNumber = nNumber - Int(nNumber)
    EndIf   

    If cWords = "" OR cWords =  "МИНУС " THEN
      cWords = cWords + "НУЛА"
    EndIf

    cWords = cWords + " ЛЕВА"
   
    If nNumber <> Int( nNumber ) Then
      nDigit = (nNumber  - Int( nNumber )) * 100
      If NDigit - Int (nDigit) < 0.5 Then
         nDigit = Int (nDigit)
      Else
         nDigit = Int (nDigit) + 1
      EndIf     
      If nDigit > 0 Then
        cWords = cWords + " И " +  MyText (nDigit, 1) + " СТОТИНКИ"
      EndIf
    EndIf 
 
   Slovom() = cWords
End Function


5. Записвате

За да го ползвате в таблица използвайте синтаксис:
=Slovom(Номер_На_Клетка_От_Таблицата)

Не е най-прегледния код, който съм писал, но върши работа като за първи сблъсък с Бейсик. Взе още не съм открил грешка при използването му.

_________________
Най-добрият софтуер за предпечат е Word!!!
Винаги всички остават изненадани от крайния резултат...


Върнете се в началото
Offline   
 
 Заглавие:
МнениеПубликувано на: 07 Юни 2010, 18:00 
Гърмян заек

Регистриран на: 22 Сеп 2006, 10:29
Мнения: 51
Местоположение: Sofia
Тествах го, работи перфектно, благодаря за скрипта :)


Върнете се в началото
Offline   
 
 Заглавие:
МнениеПубликувано на: 05 Юли 2010, 10:20 
Гърмян заек
Аватар

Регистриран на: 28 Ное 2006, 18:27
Мнения: 55
Супер е! :D

Само това ограничение за милиарда ме притеснява... :roll:


Върнете се в началото
Offline   
 
 Заглавие:
МнениеПубликувано на: 05 Юли 2010, 10:46 
Старо куче - медалист

Регистриран на: 28 Май 2006, 09:46
Мнения: 3060
Да, при тая икономика милиардът си е сериозно ограничение...

_________________
https://www.facebook.com/thomasbg
http://www.picasaweb.com/thomasbg


Върнете се в началото
Offline   
 
 Заглавие:
МнениеПубликувано на: 06 Юли 2010, 16:02 
Старо куче - медалист
Аватар

Регистриран на: 07 Апр 2004, 12:04
Мнения: 1423
Местоположение: София
Ако някой иска да пише фактура над милиард, ще направя съответните корекции срещу прилична 5-6 цифрена сума.

_________________
Най-добрият софтуер за предпечат е Word!!!
Винаги всички остават изненадани от крайния резултат...


Върнете се в началото
Offline   
 
 Заглавие:
МнениеПубликувано на: 06 Юли 2010, 16:04 
Старо куче - медалист

Регистриран на: 28 Май 2006, 09:46
Мнения: 3060
Викаш, срещу няма и 1% комисиона си готов да положиш това кошмарно количество труд ;-)

_________________
https://www.facebook.com/thomasbg
http://www.picasaweb.com/thomasbg


Върнете се в началото
Offline   
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 6 мнения ] 

Часовете са според зоната UTC + 2 часа


Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group

Facebook 2011 By Damien Keitel Theme created StylerBB.net & kodeki
Преведено от: SEO блог на Йоан Арнаудов