Przejdź do zawartości

DocToPdf - wbudowane funkcje: Różnice pomiędzy wersjami

Z Primesoft Wiki
Primesoft (dyskusja | edycje)
Nie podano opisu zmian
Primesoft (dyskusja | edycje)
Nie podano opisu zmian
 
(Nie pokazano 21 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
'''1. Wstawienie zmiennej'''
'''1. Wstawienie zmiennej'''
{| class="wikitable"
{| class="wikitable"
|-
|-  
| '''Opis funkcji''' || Celem funkcji jest bezpośrednie wstawienie wartości zmiennej z danych wejściowych do dokumentu.
| '''Opis funkcji''' || Celem funkcji jest bezpośrednie wstawienie wartości zmiennej z danych wejściowych do dokumentu.
|-
|-  
| '''Format funkcji''' || ${'''pole'''}  
| '''Format funkcji''' || ${'''pole'''}  


Linia 9: Linia 9:


'''pole''' - nazwa pola z danych wejściowych. W przypadku excela jest to nazwa kolumny.
'''pole''' - nazwa pola z danych wejściowych. W przypadku excela jest to nazwa kolumny.
|-
|-  
| '''Przykład wywołania''' || ${adres } → ul. wielka 13/5
| '''Przykład wywołania''' || ${adres } → ul. wielka 13/5
|}
|}
'''2. Zamiana liczby na wartość kwotową (inwords)'''
'''2. Zamiana liczby na wartość kwotową (inwords)'''
{| class="wikitable"
{| class="wikitable"
|-
|-  
| '''Nazwa funkcji''' || inwords
| '''Nazwa funkcji''' || inwords
|-
|-  
| '''Opis funkcji''' || Funkcja zamienia wartość typu float na słowną wartość kwoty z dopisaniem walut.  
| '''Opis funkcji''' || Funkcja zamienia wartość typu float na słowną wartość kwoty z dopisaniem walut.  
Język ustalany z poziomu wywołania job w api. (tylko język polski, pozostałe języki wymagają dodania parametru do funkcji w docx)
Język ustalany z poziomu wywołania job w api. (tylko język polski, pozostałe języki wymagają dodania parametru do funkcji w docx)
|-
|-  
| '''Format funkcji''' || ${inwords('''number, language, currency''')}  
| '''Format funkcji''' || ${inwords('''number, language, currency''')}  


Linia 29: Linia 29:


'''currency''' (parametr opcjonalny) - waluta tłumaczenia, domyślna wartość USD (parametr opcjonalny)
'''currency''' (parametr opcjonalny) - waluta tłumaczenia, domyślna wartość USD (parametr opcjonalny)
|-
|-  
| '''Przykład wywołania''' || ${inwords('21,20')} → dwadzieścia jeden złotych dwadzieścia groszy
| '''Przykład wywołania''' || ${inwords('21,20')} → dwadzieścia jeden złotych dwadzieścia groszy


Linia 37: Linia 37:


${inwords('134,07', ‘pl’, ‘PLN’)} → sto trzydzieści cztery złote siedem groszy
${inwords('134,07', ‘pl’, ‘PLN’)} → sto trzydzieści cztery złote siedem groszy
|-
|-  
| '''Obsługiwane lokalizacje''' || Funkcja konwertuje kwotę zapisaną liczbą na zapis słowny. Funkcja wspiera poniższe lokalizacje.
| '''Obsługiwane lokalizacje''' || Funkcja konwertuje kwotę zapisaną liczbą na zapis słowny. Funkcja wspiera poniższe lokalizacje.
{| class="wikitable"
{| class="wikitable"
|-
|-  
! Język !! Identyfikator !! Liczba !! Waluta
! Język !! Identyfikator !! Liczba !! Waluta
|-
|-  
| Belgian French || fr_BE || + || -
| Belgian French || fr_BE || + || -
|-
|-  
| Brazilian Portuguese || pt_BR || + || +
| Brazilian Portuguese || pt_BR || + || +
|-
|-  
| Bulgarian || bg || + || -
| Bulgarian || bg || + || -
|-
|-  
| Czech || cs || + || -
| Czech || cs || + || -
|-
|-  
| Danish || dk || + || +
| Danish || dk || + || +
|-
|-  
| Dutch || nl || + || -
| Dutch || nl || + || -
|-
|-  
| English || en || + || +
| English || en || + || +
|-
|-  
| Estonian || et || + || -
| Estonian || et || + || -
|-
|-  
| Georgian || ka || + || +
| Georgian || ka || + || +
|-
|-  
| German || de || + || +
| German || de || + || +
|-
|-  
| French || fr || + || +
| French || fr || + || +
|-
|-  
| Hungarian || hu || + || +
| Hungarian || hu || + || +
|-
|-  
| Indonesian || id || + || -
| Indonesian || id || + || -
|-
|-  
| Italian || it || + || -
| Italian || it || + || -
|-
|-  
| Lithuanian || lt || + || +
| Lithuanian || lt || + || +
|-
|-  
| Latvian || lv || + || -
| Latvian || lv || + || -
|-
|-  
| Malay || ms || + || -
| Malay || ms || + || -
|-
|-  
| Polish || pl || + || +
| Polish || pl || + || +
|-
|-  
| Romanian || ro || + || +
| Romanian || ro || + || +
|-
|-  
| Slovak || sk || + || -
| Slovak || sk || + || -
|-
|-  
| Spanish || es || + || +
| Spanish || es || + || +
|-
|-  
| Russian || ru || + || +
| Russian || ru || + || +
|-
|-  
| Swedish || sv || + || -
| Swedish || sv || + || -
|-
|-  
| Turkish || tr || + || +
| Turkish || tr || + || +
|-
|-  
| Turkmen || tk || + || +
| Turkmen || tk || + || +
|-
|-  
| Ukainian || ua || + || +
| Ukainian || ua || + || +
|-
|-  
| Yoruba || yo || + || +
| Yoruba || yo || + || +
|-
|-  
|}
|}
|}
|}
'''3. Formatowanie liczby (format)'''
'''3. Formatowanie liczby (format)'''
{| class="wikitable"
{| class="wikitable"
|-
|-  
| Nazwa funkcji || '''format'''
| Nazwa funkcji || '''format'''
|-
|-  
| Opis funkcji || Funkcja przekształca liczbę zmiennoprzecinkową na format waluty określonej lokalizacji.
| Opis funkcji || Funkcja przekształca liczbę zmiennoprzecinkową na format waluty określonej lokalizacji.
|-
|-  
| Format funkcji || ${format('''liczba, lokalizacja''')}  
| Format funkcji || ${format('''liczba, lokalizacja''')}  


Linia 113: Linia 113:
np. ${format(brutto)}
np. ${format(brutto)}


'''lokalizacja''' (parametr opcjonalny) - parametr odpowiedzialny za format wyjściowy przekształcenia zmiennej  
'''lokalizacja''' (parametr opcjonalny) - parametr odpowiedzialny za format wyjściowy przekształcenia zmiennej liczbowej na wartość walutową.


liczbowej na wartość walutową. Parametr ten musi być zgodny z "Powszechnym repozytorium danych lokalizacji"  
Parametr ten musi być zgodny z "Powszechnym repozytorium danych lokalizacji" (CLDR - Unicode Common Locale Data Repository) wykorzystywanych


(CLDR - Unicode Common Locale Data Repository) wykorzystywanych przez International Components for Unicode (ICU).  
przez International Components for Unicode (ICU). Obsługiwane formaty dostępne na http://www.localeplanet.com/icu/ , np. pl, pl_PL, en, en_GB, en_US.  
 
Obsługiwane formaty dostępne na http://www.localeplanet.com/icu/ , np. pl, pl_PL, en, en_GB, en_US.  


Domyślna wartość en_US.  
Domyślna wartość en_US.  


Domyślnie formatowanie: do dwóch miejsc po przecinku
Domyślnie formatowanie: do dwóch miejsc po przecinku
|-
|-  
| Przykład wywołania || ${format(3000.000)} → 3,000.00
| Przykład wywołania || ${format(3000.000)} → 3,000.00


Linia 131: Linia 129:
${format(100000000,'hi_IN')} → 10,00,00,000.00
${format(100000000,'hi_IN')} → 10,00,00,000.00
|}
|}
'''4. Kod kreskowy, kod QR (barcode)'''
{| class="wikitable"
|-
| Nazwa funkcji || '''barcode'''
|-
| Opis funkcji || Funkcja wstawia obraz z kodem kreskowym podanym w parametrze.
|-
| Format funkcji || ${barcode('''parametr, typ kodu, szerokość, wysokość''')}
gdzie:


'''parametr''' - wartość tekstową lub liczbowa. Parametr może być zmienną pobraną z danych wejściowych.
'''typ kodu''' - typ kodu kreskowego. Typ kodu zgodny z jest listą podaną poniżej.
'''szerokość''' - szerokość obrazu, który ma zawierać kod kreskowy. Szerokość podawana jest pikselach (px).
'''wysokość''' - wysokość obrazu, który ma zawierać kod kreskowy. Wysokość podawana jest pikselach (px).
Lista obsługiwanych typów kodów kreskowych:
* auspost : AusPost 4 State Customer Code
* azteccode : Aztec Code
* azteccodecompact : Compact Aztec Code
* aztecrune : Aztec Runes
* bc412 : BC412
* channelcode : Channel Code
* codablockf : Codablock F
* code11 : Code 11
* code128 : Code 128
* code16k : Code 16K
* code2of5 : Code 25
* code32 : Italian Pharmacode
* code39 : Code 39
* code39ext : Code 39 Extended
* code49 : Code 49
* code93 : Code 93
* code93ext : Code 93 Extended
* codeone : Code One
* coop2of5 : COOP 2 of 5
* daft : Custom 4 state symbology
* databarexpanded : GS1 DataBar Expanded
* databarexpandedcomposite : GS1 DataBar Expanded Composite
* databarexpandedstacked : GS1 DataBar Expanded Stacked
* databarexpandedstackedcomposite : GS1 DataBar Expanded Stacked Composite
* databarlimited : GS1 DataBar Limited
* databarlimitedcomposite : GS1 DataBar Limited Composite
* databaromni : GS1 DataBar Omnidirectional
* databaromnicomposite : GS1 DataBar Omnidirectional Composite
* databarstacked : GS1 DataBar Stacked
* databarstackedcomposite : GS1 DataBar Stacked Composite
* databarstackedomni : GS1 DataBar Stacked Omnidirectional
* databarstackedomnicomposite : GS1 DataBar Stacked Omnidirectional Composite
* databartruncated : GS1 DataBar Truncated
* databartruncatedcomposite : GS1 DataBar Truncated Composite
* datalogic2of5 : Datalogic 2 of 5
* datamatrix : Data Matrix
* datamatrixrectangular : Data Matrix Rectangular
* dotcode : DotCode
* ean13 : EAN-13
* ean13composite : EAN-13 Composite
* ean14 : GS1-14
* ean2 : EAN-2 (2 digit addon)
* ean5 : EAN-5 (5 digit addon)
* ean8 : EAN-8
* ean8composite : EAN-8 Composite
* flattermarken : Flattermarken
* gs1-128 : GS1-128
* gs1-128composite : GS1-128 Composite
* gs1-cc : GS1 Composite 2D Component
* gs1datamatrix : GS1 Data Matrix
* gs1datamatrixrectangular : GS1 Data Matrix Rectangular
* gs1northamericancoupon : GS1 North American Coupon
* gs1qrcode : GS1 QR Code
* hanxin : Han Xin Code
* hibcazteccode : HIBC Aztec Code
* hibccodablockf : HIBC Codablock F
* hibccode128 : HIBC Code 128
* hibccode39 : HIBC Code 39
* hibcdatamatrix : HIBC Data Matrix
* hibcdatamatrixrectangular : HIBC Data Matrix Rectangular
* hibcmicropdf417 : HIBC MicroPDF417
* hibcpdf417 : HIBC PDF417
* hibcqrcode : HIBC QR Code
* iata2of5 : IATA 2 of 5
* identcode : Deutsche Post Identcode
* industrial2of5 : Industrial 2 of 5
* interleaved2of5 : Interleaved 2 of 5 (ITF)
* isbn : ISBN
* ismn : ISMN
* issn : ISSN
* itf14 : ITF-14
* japanpost : Japan Post 4 State Customer Code
* kix : Royal Dutch TPG Post KIX
* leitcode : Deutsche Post Leitcode
* matrix2of5 : Matrix 2 of 5
* maxicode : MaxiCode
* micropdf417 : MicroPDF417
* microqrcode : Micro QR Code
* msi : MSI Modified Plessey
* onecode : USPS Intelligent Mail
* pdf417 : PDF417
* pdf417compact : Compact PDF417
* pharmacode : Pharmaceutical Binary Code
* pharmacode2 : Two-track Pharmacode
* planet : USPS PLANET
* plessey : Plessey UK
* posicode : PosiCode
* postnet : USPS POSTNET
* pzn : Pharmazentralnummer (PZN)
* qrcode : QR Code
* rationalizedCodabar : Codabar
* raw : Custom 1D symbology
* royalmail : Royal Mail 4 State Customer Code
* sscc18 : SSCC-18
* symbol : Miscellaneous symbols
* telepen : Telepen
* telepennumeric : Telepen Numeric
* ultracode : Ultracode
* upca : UPC-A
* upcacomposite : UPC-A Composite
* upce : UPC-E
* upcecomposite : UPC-E Composite
|-
| Przykład wywołania || ${barcode(wartość kodu kreskowego, typ kodu, szerokość, wysokość)}
${barcode(CodeCode128, 'code128', '80px', '80px')}
${barcode(CodeEan13, 'ean13', '80px', '80px')}
${barcode(CodeInterleaved2of5, 'interleaved2of5', '210px', '210px')}
${barcode(CodeQrcode, 'qrcode', '210px', '210px')}
|}
'''5. Obraz z zewnętrznego źródła (image)'''


{| class="wikitable"
{| class="wikitable"
|-
|-  
| Nazwa funkcji || Treść komórki
| Nazwa funkcji || '''image'''
|-
|-  
| Opis funkcji || Treść komórki
| Opis funkcji || Funkcja wstawia obraz z podanego źródła (adres url)
|-
|-  
| Format funkcji || Treść komórki
| Format funkcji || ${image('''url, szerokość, wysokość, ratio''')}
|-
 
| Przykład wywołania || Treść komórki
gdzie:
 
'''url''' - adres url wstawianego obrazu. Parametr może być zmienną pobraną z danych wejściowych.
 
'''szerokość''' - szerokość wstawianego obrazu. Szerokość podawana jest miarach: cm, mm, in, pt, pc, px, %, em, ex.
 
'''wysokość''' - wysokość wstawianego obrazu. Wysokość podawana jest pikselach cm, mm, in, pt, pc, px, %, em, ex.
 
'''ratio''' - przyjmuje wartości true/false służy do włączenia obsugi proporcji obrazu. Domyślnie parametr ustawiony na false.
 
Lista obsługiwanych typów obrazów:
 
* Windows Enhanced Metafile (*.emf)
* Windows Metafile (*.wmf)
* JPEG File Interchange Format(*.jpg; *.jpeg; *.jfif; *.jpe)
* Portable Network Graphics (*.png)
* Windows Bitmap (*.bmp; *.dib; *.rle; *.bmz)
* Graphics Interchange Format (*.gif; *.gfa)
* Compressed Windows Enhanced Metafile (*.emz)
* Compressed Windows Metafile (*.wmz)
* Compressed Macintosh PICT (*.pcz)
* Tag Image File Format (*.tif; *.tiff)
* Computer Graphics Metafile (*.cgm)
* Encapsulated Postscript (*.eps)
* Macintosh PICT (*.pct; *.pict)
* WordPerfect Graphics (*.wpg)
|-  
| Przykład wywołania || ${image(UserLogo1)}
 
${image(UserLogo2, '200')}
 
${image(UserLogo3, '100px', '100px')}
 
${image('https://www.google.pl/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png', '100px', '100px')}
 
${image(UserLogo3, '100px', '800px', 'true')}
|}
|}
'''6. Instrukcje warunkowe (if)'''
{| class="wikitable"
|-
| Nazwa funkcji || '''if'''
|-
| Opis funkcji || Funkcja wykonuję podaną instrukcję warunkową. Jeśli instrukcja kończy się wynikiem true, to objęty funkcją
fragment tekstu jest wstawiany do dokumentu. W przeciwnym wypadku fragment jest usuwany.
|-
| Format funkcji || ${if('''warunek''')} tekst, który ma się wyświetlić w przypadku gdy parametr = true ${endif}
gdzie:
'''warunek''' - instrukcja warunkową zgodną z biblioteką Symfony Expression Language.
Składnia opisana jest na stronie: https://symfony.com/doc/current/components/expression_language/syntax.html.


W instrukcja warunkowych można wykorzystywać zmienne pobrane z danych wejściowych
|-
| Przykład wywołania || ${if(Recipient_ZIP_Code=='60-650')}


Treść dla adresatów posiadających kod 60-650
${endif}
|}
'''7. Tworzenie tabel w dokumencie (RECORDSET)'''
{| class="wikitable"
{| class="wikitable"
|-
|-  
| Nazwa funkcji || Treść komórki
| Nazwa funkcji || '''RECORDSET'''
|-
|-  
| Opis funkcji || Treść komórki
| Opis funkcji || Funkcja wstawia w dokumencie tabelę z rekordami pobranymi z danych wejściowych.
|-
|-  
| Format funkcji || Treść komórki
| Format funkcji || ${recordset(pole, ''''nazwa'''')}
|-
 
| Przykład wywołania || Treść komórki
gdzie:
 
'''recordset''' - stała nazwa wykorzystywana do funkcji
 
'''pole''' - nazwa pola z danych wejściowych
 
'''nazwa''' (parametr opcjonalny) - nazwa recordsetu
|-  
| Przykład wywołania ||
Przykład tabeli:
 
[[Grafika:DocToPdf_7_1.JPG|800px|center]]
 
Przykładowe dane wejściowe:
 
[[Grafika:DocToPdf_7_2.JPG|800px|center]]
 
Wynik działania funckji
[[Grafika:DocToPdf_7_3.JPG|800px|center]]
|-
| Przykład wywołania ||
${ recordset (lp)}
 
${recordset(lp, ‘harmonogram’)}
 
${format(recordset(kapital, ‘harmonogram’), ‘pl’)}
 
${format(recordset(kapital, ‘harmonogram’) + recordset(finans, ‘harmonogram’), ‘pl’)}
|}
|}
{| class="wikitable" style="width: 775px; height: 112px;"
|- style="height: 28px;"
| style="width: 134.781px; height: 28px;" | Nazwa funkcji || style="width: 614.219px; height: 28px;" | '''rowNumber<span style="color: rgb(224, 62, 45);" > Działa tylko w Recordsecie</span>'''
|- style="height: 28px;"
| style="width: 134.781px; height: 28px;" | Opis funkcji || style="width: 614.219px; height: 28px;" | Funkcja zwraca numer wiersza
|- style="height: 28px;"
| style="width: 134.781px; height: 28px;" | Format funkcji || style="width: 614.219px; height: 28px;" | ${rowNumber('''zera''')}


gdzie:


{| class="wikitable"
'''zera&nbsp;'''- liczba zer które będą dopełniane numerem wiersza np.
|-
 
| Nazwa funkcji || Treść komórki
wartość domyślna 1
|-
 
| Opis funkcji || Treść komórki
3 - zwróci 001<br>4 - zwróci 0001
|-
|- style="height: 28px;"
| Format funkcji || Treść komórki
| style="width: 134.781px; height: 28px;" | Przykład wywołania || style="width: 614.219px; height: 28px;" | ${rowNumber(1)}
|-
 
| Przykład wywołania || Treść komórki
${rowNumber(2)}
 
${rowNumber(3)}
|}
|}
''''''


'''8. Funkcje arytmetyczne'''


{| class="wikitable"
{| class="wikitable"
|-
|-  
| Nazwa funkcji || Treść komórki
| Opis funkcji || Funkcja umożliwia wykonywanie wyrażeń za pomocą expression language
|-
|-  
| Opis funkcji || Treść komórki
| Format funkcji || ${'''wyrażenie'''}
|-
 
| Format funkcji || Treść komórki
gdzie:
|-
 
| Przykład wywołania || Treść komórki
'''wyrażenie''' - podstawowa operacja arytmetyczna, np. ${brutto * vat }
|-  
| Przykład wywołania || ${1 + 2} → 3
 
${1 – 2} → -1
 
${2 * 2)} → 4
 
${4 / 2)} → 2
 
${4.2 + 1.2)} → 5.4
 
${4,2 + 1,2)} → 5.4
 
${evaluate((4 + 2) * 3)} → 18
 
${ZmiennaA} = 12
 
${ZmiennaA + ZmiennaB * 3} → 72
|}
|}
'''9. Funkcja Teraz'''


{| class="wikitable"
|-
| Nazwa funkcji || '''now'''
|-
| Opis funkcji || Funkcja zwraca obecną datę i czas w którym dokument jest generowany w formacie "Y-m-d H:i:s".
|-
| Format funkcji || ${now( )}
|-
| Przykład wywołania || ${now()}
|}
'''10. Funkcja formatowania czasu'''


{| class="wikitable"
{| class="wikitable"
|-
|-  
| Nazwa funkcji || Treść komórki
| Nazwa funkcji || '''dateformat'''
|-
|-  
| Opis funkcji || Treść komórki
| Opis funkcji || Funkcja umożliwia konwertowanie tekstu reprezentującego znacznik czasu z jednego formatu, na inny.
|-
|-  
| Format funkcji || Treść komórki
| Format funkcji || ${dateformat('''czas, format''')}
|-
 
| Przykład wywołania || Treść komórki
gdzie:
|}
 
'''czas''' - tekst będący reprezentacją znacznika czasowego. Interpretuje znaczniki czasowe zapisane w formatach zrozumiałych dla klasy \DateTime
 
'''format''' - formaty daty zgodny z wbudowanymi formatami dat dla PHP
 
Wartości domyślne argumentów:


* czas - obecny znacznik czasowy,
* format - ISO8601


|-
| Przykład wywołania || ${dateformat('2020-03-12 15:17:22' ,’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00


{| class="wikitable"
${dateformat('03/12/2020 15:17:22', ’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00
|-
| Nazwa funkcji || Treść komórki
|-
| Opis funkcji || Treść komórki
|-
| Format funkcji || Treść komórki
|-
| Przykład wywołania || Treść komórki
|}


${dateformat('12.05.2020 15:17', ’g:ia \o\n l jS F Y’)} → 3:17pm on Tuesday 12th May 2020


${dateformat('2020-03-12 15:17:22', ’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00


${dateformat(now(),’m-d-Y’)} → 07-03-2020
|}
'''11. Zagnieżdżanie funkcji'''
{| class="wikitable"
{| class="wikitable"
|-
|-  
| Nazwa funkcji || Treść komórki
| Opis funkcji || Podane powyżej funkcji można dowolnie zagnieżdżać, np.:
|-
 
| Opis funkcji || Treść komórki
${format( recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’), ‘pl’)}
|-
| Format funkcji || Treść komórki
|-
| Przykład wywołania || Treść komórki
|}


gdzie funkcje realizowane są w następującej kolejności:


# recordset (kapital, ‘harmonogram’)
# recordset (finans, ‘harmonogram’)
# recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’)
# format( recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’), ‘pl’)
|}
'''12. Funkcja sprawdzająca czy tabela RECORDSET jest wypełniona (IsEmptyRs)'''
{| class="wikitable"
{| class="wikitable"
|-
|-  
| Nazwa funkcji || Treść komórki
| Nazwa funkcji || '''IsEmptyRs'''
|-
|-  
| Opis funkcji || Treść komórki
| Opis funkcji || Funkcja zwraca prawdę lub fałsz w zależności od tego czy w pliku z danymi znajdują się wartości do wstawienia w podany RECORDSET.
|-
|-  
| Format funkcji || Treść komórki
| '''Format funkcji''' ||
|-
${isEmptyRs(nazwa recordsetu)}
| Przykład wywołania || Treść komórki
|}


gdzie:


nazwa recordsetu - w przypadku jednego recordsetu bez nazwy należy podać "" (pusty string)
|-
| '''Przykład wywołania''' || ${if(!isEmptyRs('nazwa'))}


{| class="wikitable"
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|-
| Nazwa funkcji || Treść komórki
|-
| Opis funkcji || Treść komórki
|-
| Format funkcji || Treść komórki
|-
| Przykład wywołania || Treść komórki
|}


${recordset(pole, 'nazwa')}


{| class="wikitable"
${endif}
|-
| Nazwa funkcji || Treść komórki
|-
| Opis funkcji || Treść komórki
|-
| Format funkcji || Treść komórki
|-
| Przykład wywołania || Treść komórki
|}
|}

Aktualna wersja z 25 sty 2023, 11:25

1. Wstawienie zmiennej

Opis funkcji Celem funkcji jest bezpośrednie wstawienie wartości zmiennej z danych wejściowych do dokumentu.
Format funkcji ${pole}

gdzie

pole - nazwa pola z danych wejściowych. W przypadku excela jest to nazwa kolumny.

Przykład wywołania ${adres } → ul. wielka 13/5

2. Zamiana liczby na wartość kwotową (inwords)

Nazwa funkcji inwords
Opis funkcji Funkcja zamienia wartość typu float na słowną wartość kwoty z dopisaniem walut.

Język ustalany z poziomu wywołania job w api. (tylko język polski, pozostałe języki wymagają dodania parametru do funkcji w docx)

Format funkcji ${inwords(number, language, currency)}

gdzie

number - liczba zapisana zgodnie z standardem ISO 4217. Parametr może być zmienną pobraną z danych wejściowych, np. ${inwords(brutto)}

language (parametr opcjonalny) - język tłumaczenia, domyślna wartość en (parametr opcjonalny)

currency (parametr opcjonalny) - waluta tłumaczenia, domyślna wartość USD (parametr opcjonalny)

Przykład wywołania ${inwords('21,20')} → dwadzieścia jeden złotych dwadzieścia groszy

${inwords(brutto)} → dwadzieścia jeden złotych dwadzieścia groszy

${inwords('21.20', ' en','USD' )} → twenty dollars twenty cents

${inwords('134,07', ‘pl’, ‘PLN’)} → sto trzydzieści cztery złote siedem groszy

Obsługiwane lokalizacje Funkcja konwertuje kwotę zapisaną liczbą na zapis słowny. Funkcja wspiera poniższe lokalizacje.
Język Identyfikator Liczba Waluta
Belgian French fr_BE + -
Brazilian Portuguese pt_BR + +
Bulgarian bg + -
Czech cs + -
Danish dk + +
Dutch nl + -
English en + +
Estonian et + -
Georgian ka + +
German de + +
French fr + +
Hungarian hu + +
Indonesian id + -
Italian it + -
Lithuanian lt + +
Latvian lv + -
Malay ms + -
Polish pl + +
Romanian ro + +
Slovak sk + -
Spanish es + +
Russian ru + +
Swedish sv + -
Turkish tr + +
Turkmen tk + +
Ukainian ua + +
Yoruba yo + +

3. Formatowanie liczby (format)

Nazwa funkcji format
Opis funkcji Funkcja przekształca liczbę zmiennoprzecinkową na format waluty określonej lokalizacji.
Format funkcji ${format(liczba, lokalizacja)}

gdzie:

liczba - liczba zmiennoprzecinkowa, która podlega formatowaniu. Może być to zmienna pobrana z danych wejściowych, np. ${format(brutto)}

lokalizacja (parametr opcjonalny) - parametr odpowiedzialny za format wyjściowy przekształcenia zmiennej liczbowej na wartość walutową.

Parametr ten musi być zgodny z "Powszechnym repozytorium danych lokalizacji" (CLDR - Unicode Common Locale Data Repository) wykorzystywanych

przez International Components for Unicode (ICU). Obsługiwane formaty dostępne na http://www.localeplanet.com/icu/ , np. pl, pl_PL, en, en_GB, en_US.

Domyślna wartość en_US.

Domyślnie formatowanie: do dwóch miejsc po przecinku

Przykład wywołania ${format(3000.000)} → 3,000.00

${format(brutto,'pl_PL'} → 3 000,00

${format(100000000,'hi_IN')} → 10,00,00,000.00

4. Kod kreskowy, kod QR (barcode)

Nazwa funkcji barcode
Opis funkcji Funkcja wstawia obraz z kodem kreskowym podanym w parametrze.
Format funkcji ${barcode(parametr, typ kodu, szerokość, wysokość)}

gdzie:

parametr - wartość tekstową lub liczbowa. Parametr może być zmienną pobraną z danych wejściowych.

typ kodu - typ kodu kreskowego. Typ kodu zgodny z jest listą podaną poniżej.

szerokość - szerokość obrazu, który ma zawierać kod kreskowy. Szerokość podawana jest pikselach (px).

wysokość - wysokość obrazu, który ma zawierać kod kreskowy. Wysokość podawana jest pikselach (px).

Lista obsługiwanych typów kodów kreskowych:

  • auspost : AusPost 4 State Customer Code
  • azteccode : Aztec Code
  • azteccodecompact : Compact Aztec Code
  • aztecrune : Aztec Runes
  • bc412 : BC412
  • channelcode : Channel Code
  • codablockf : Codablock F
  • code11 : Code 11
  • code128 : Code 128
  • code16k : Code 16K
  • code2of5 : Code 25
  • code32 : Italian Pharmacode
  • code39 : Code 39
  • code39ext : Code 39 Extended
  • code49 : Code 49
  • code93 : Code 93
  • code93ext : Code 93 Extended
  • codeone : Code One
  • coop2of5 : COOP 2 of 5
  • daft : Custom 4 state symbology
  • databarexpanded : GS1 DataBar Expanded
  • databarexpandedcomposite : GS1 DataBar Expanded Composite
  • databarexpandedstacked : GS1 DataBar Expanded Stacked
  • databarexpandedstackedcomposite : GS1 DataBar Expanded Stacked Composite
  • databarlimited : GS1 DataBar Limited
  • databarlimitedcomposite : GS1 DataBar Limited Composite
  • databaromni : GS1 DataBar Omnidirectional
  • databaromnicomposite : GS1 DataBar Omnidirectional Composite
  • databarstacked : GS1 DataBar Stacked
  • databarstackedcomposite : GS1 DataBar Stacked Composite
  • databarstackedomni : GS1 DataBar Stacked Omnidirectional
  • databarstackedomnicomposite : GS1 DataBar Stacked Omnidirectional Composite
  • databartruncated : GS1 DataBar Truncated
  • databartruncatedcomposite : GS1 DataBar Truncated Composite
  • datalogic2of5 : Datalogic 2 of 5
  • datamatrix : Data Matrix
  • datamatrixrectangular : Data Matrix Rectangular
  • dotcode : DotCode
  • ean13 : EAN-13
  • ean13composite : EAN-13 Composite
  • ean14 : GS1-14
  • ean2 : EAN-2 (2 digit addon)
  • ean5 : EAN-5 (5 digit addon)
  • ean8 : EAN-8
  • ean8composite : EAN-8 Composite
  • flattermarken : Flattermarken
  • gs1-128 : GS1-128
  • gs1-128composite : GS1-128 Composite
  • gs1-cc : GS1 Composite 2D Component
  • gs1datamatrix : GS1 Data Matrix
  • gs1datamatrixrectangular : GS1 Data Matrix Rectangular
  • gs1northamericancoupon : GS1 North American Coupon
  • gs1qrcode : GS1 QR Code
  • hanxin : Han Xin Code
  • hibcazteccode : HIBC Aztec Code
  • hibccodablockf : HIBC Codablock F
  • hibccode128 : HIBC Code 128
  • hibccode39 : HIBC Code 39
  • hibcdatamatrix : HIBC Data Matrix
  • hibcdatamatrixrectangular : HIBC Data Matrix Rectangular
  • hibcmicropdf417 : HIBC MicroPDF417
  • hibcpdf417 : HIBC PDF417
  • hibcqrcode : HIBC QR Code
  • iata2of5 : IATA 2 of 5
  • identcode : Deutsche Post Identcode
  • industrial2of5 : Industrial 2 of 5
  • interleaved2of5 : Interleaved 2 of 5 (ITF)
  • isbn : ISBN
  • ismn : ISMN
  • issn : ISSN
  • itf14 : ITF-14
  • japanpost : Japan Post 4 State Customer Code
  • kix : Royal Dutch TPG Post KIX
  • leitcode : Deutsche Post Leitcode
  • matrix2of5 : Matrix 2 of 5
  • maxicode : MaxiCode
  • micropdf417 : MicroPDF417
  • microqrcode : Micro QR Code
  • msi : MSI Modified Plessey
  • onecode : USPS Intelligent Mail
  • pdf417 : PDF417
  • pdf417compact : Compact PDF417
  • pharmacode : Pharmaceutical Binary Code
  • pharmacode2 : Two-track Pharmacode
  • planet : USPS PLANET
  • plessey : Plessey UK
  • posicode : PosiCode
  • postnet : USPS POSTNET
  • pzn : Pharmazentralnummer (PZN)
  • qrcode : QR Code
  • rationalizedCodabar : Codabar
  • raw : Custom 1D symbology
  • royalmail : Royal Mail 4 State Customer Code
  • sscc18 : SSCC-18
  • symbol : Miscellaneous symbols
  • telepen : Telepen
  • telepennumeric : Telepen Numeric
  • ultracode : Ultracode
  • upca : UPC-A
  • upcacomposite : UPC-A Composite
  • upce : UPC-E
  • upcecomposite : UPC-E Composite
Przykład wywołania ${barcode(wartość kodu kreskowego, typ kodu, szerokość, wysokość)}

${barcode(CodeCode128, 'code128', '80px', '80px')}

${barcode(CodeEan13, 'ean13', '80px', '80px')}

${barcode(CodeInterleaved2of5, 'interleaved2of5', '210px', '210px')}

${barcode(CodeQrcode, 'qrcode', '210px', '210px')}

5. Obraz z zewnętrznego źródła (image)

Nazwa funkcji image
Opis funkcji Funkcja wstawia obraz z podanego źródła (adres url)
Format funkcji ${image(url, szerokość, wysokość, ratio)}

gdzie:

url - adres url wstawianego obrazu. Parametr może być zmienną pobraną z danych wejściowych.

szerokość - szerokość wstawianego obrazu. Szerokość podawana jest miarach: cm, mm, in, pt, pc, px, %, em, ex.

wysokość - wysokość wstawianego obrazu. Wysokość podawana jest pikselach cm, mm, in, pt, pc, px, %, em, ex.

ratio - przyjmuje wartości true/false służy do włączenia obsugi proporcji obrazu. Domyślnie parametr ustawiony na false.

Lista obsługiwanych typów obrazów:

  • Windows Enhanced Metafile (*.emf)
  • Windows Metafile (*.wmf)
  • JPEG File Interchange Format(*.jpg; *.jpeg; *.jfif; *.jpe)
  • Portable Network Graphics (*.png)
  • Windows Bitmap (*.bmp; *.dib; *.rle; *.bmz)
  • Graphics Interchange Format (*.gif; *.gfa)
  • Compressed Windows Enhanced Metafile (*.emz)
  • Compressed Windows Metafile (*.wmz)
  • Compressed Macintosh PICT (*.pcz)
  • Tag Image File Format (*.tif; *.tiff)
  • Computer Graphics Metafile (*.cgm)
  • Encapsulated Postscript (*.eps)
  • Macintosh PICT (*.pct; *.pict)
  • WordPerfect Graphics (*.wpg)
Przykład wywołania ${image(UserLogo1)}

${image(UserLogo2, '200')}

${image(UserLogo3, '100px', '100px')}

${image('https://www.google.pl/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png', '100px', '100px')}

${image(UserLogo3, '100px', '800px', 'true')}

6. Instrukcje warunkowe (if)

Nazwa funkcji if
Opis funkcji Funkcja wykonuję podaną instrukcję warunkową. Jeśli instrukcja kończy się wynikiem true, to objęty funkcją

fragment tekstu jest wstawiany do dokumentu. W przeciwnym wypadku fragment jest usuwany.

Format funkcji ${if(warunek)} tekst, który ma się wyświetlić w przypadku gdy parametr = true ${endif}

gdzie:

warunek - instrukcja warunkową zgodną z biblioteką Symfony Expression Language.

Składnia opisana jest na stronie: https://symfony.com/doc/current/components/expression_language/syntax.html.

W instrukcja warunkowych można wykorzystywać zmienne pobrane z danych wejściowych

Przykład wywołania ${if(Recipient_ZIP_Code=='60-650')}

Treść dla adresatów posiadających kod 60-650

${endif}

7. Tworzenie tabel w dokumencie (RECORDSET)

Nazwa funkcji RECORDSET
Opis funkcji Funkcja wstawia w dokumencie tabelę z rekordami pobranymi z danych wejściowych.
Format funkcji ${recordset(pole, 'nazwa')}

gdzie:

recordset - stała nazwa wykorzystywana do funkcji

pole - nazwa pola z danych wejściowych

nazwa (parametr opcjonalny) - nazwa recordsetu

Przykład wywołania

Przykład tabeli:

Przykładowe dane wejściowe:

Wynik działania funckji

Przykład wywołania

${ recordset (lp)}

${recordset(lp, ‘harmonogram’)}

${format(recordset(kapital, ‘harmonogram’), ‘pl’)}

${format(recordset(kapital, ‘harmonogram’) + recordset(finans, ‘harmonogram’), ‘pl’)}

Nazwa funkcji rowNumber Działa tylko w Recordsecie
Opis funkcji Funkcja zwraca numer wiersza
Format funkcji ${rowNumber(zera)}

gdzie:

zera - liczba zer które będą dopełniane numerem wiersza np.

wartość domyślna 1

3 - zwróci 001
4 - zwróci 0001

Przykład wywołania ${rowNumber(1)}

${rowNumber(2)}

${rowNumber(3)}

'

8. Funkcje arytmetyczne

Opis funkcji Funkcja umożliwia wykonywanie wyrażeń za pomocą expression language
Format funkcji ${wyrażenie}

gdzie:

wyrażenie - podstawowa operacja arytmetyczna, np. ${brutto * vat }

Przykład wywołania ${1 + 2} → 3

${1 – 2} → -1

${2 * 2)} → 4

${4 / 2)} → 2

${4.2 + 1.2)} → 5.4

${4,2 + 1,2)} → 5.4

${evaluate((4 + 2) * 3)} → 18

${ZmiennaA} = 12

${ZmiennaA + ZmiennaB * 3} → 72

9. Funkcja Teraz

Nazwa funkcji now
Opis funkcji Funkcja zwraca obecną datę i czas w którym dokument jest generowany w formacie "Y-m-d H:i:s".
Format funkcji ${now( )}
Przykład wywołania ${now()}

10. Funkcja formatowania czasu

Nazwa funkcji dateformat
Opis funkcji Funkcja umożliwia konwertowanie tekstu reprezentującego znacznik czasu z jednego formatu, na inny.
Format funkcji ${dateformat(czas, format)}

gdzie:

czas - tekst będący reprezentacją znacznika czasowego. Interpretuje znaczniki czasowe zapisane w formatach zrozumiałych dla klasy \DateTime

format - formaty daty zgodny z wbudowanymi formatami dat dla PHP

Wartości domyślne argumentów:

  • czas - obecny znacznik czasowy,
  • format - ISO8601
Przykład wywołania ${dateformat('2020-03-12 15:17:22' ,’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00

${dateformat('03/12/2020 15:17:22', ’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00

${dateformat('12.05.2020 15:17', ’g:ia \o\n l jS F Y’)} → 3:17pm on Tuesday 12th May 2020

${dateformat('2020-03-12 15:17:22', ’Y-m-d H:i:sP’)} → 2020-03-12 15:17:22+00:00

${dateformat(now(),’m-d-Y’)} → 07-03-2020

11. Zagnieżdżanie funkcji

Opis funkcji Podane powyżej funkcji można dowolnie zagnieżdżać, np.:

${format( recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’), ‘pl’)}

gdzie funkcje realizowane są w następującej kolejności:

  1. recordset (kapital, ‘harmonogram’)
  2. recordset (finans, ‘harmonogram’)
  3. recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’)
  4. format( recordset (kapital, ‘harmonogram’) + recordset (finans, ‘harmonogram’), ‘pl’)

12. Funkcja sprawdzająca czy tabela RECORDSET jest wypełniona (IsEmptyRs)

Nazwa funkcji IsEmptyRs
Opis funkcji Funkcja zwraca prawdę lub fałsz w zależności od tego czy w pliku z danymi znajdują się wartości do wstawienia w podany RECORDSET.
Format funkcji

${isEmptyRs(nazwa recordsetu)}

gdzie:

nazwa recordsetu - w przypadku jednego recordsetu bez nazwy należy podać "" (pusty string)

Przykład wywołania ${if(!isEmptyRs('nazwa'))}

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

${recordset(pole, 'nazwa')}

${endif}