Version 20 (modified by jachtelik, 12 years ago) |
---|
Przewodnik wdrożeniowca > Praca z szablonami Flexy
Menu
- Wprowadzenie
- Tworzenie szablonu Flexy i wykorzystanie go w raportach
2.1 Tworzenie raportu SQL - Funkcje PHP dostępne w szablonach
1. Wprowadzenie
Flexy to bardzo szybki i dysponujący wielkimi możliwościami silnik szablonów. Może być używany zarówno w raportach, blokach jak i generowaniu plików zewnętrznych np. do połaczenia z Symfonią.
http://pear.php.net/manual/en/package.html.html-template-flexy.php
Przejdź do Menu
2. Tworzenie szablonu Flexy i wykorzystanie go w raportach
1. Tworzenie raportu SQL
Tworzenie raportu z wykorzystaniem Flexy należy rozpocząć od zdefiniowania raportu SQL. W module raporty tworzymy nowy raport. W zakładkę Ogólne wprowadzamy nazwę raportu, miejsce jego przechowywania. Przechodzimy do zakładki Definicja, gdzie wprowadzamy definicję SQL. W zakładce Wybór kolumn możemy wybrać, jakie kolumny będą wykorzystywane w raporcie.
Przykładowo tworzymy raport dla Notatek służbowych. W tym celu tworzymy raport w grupie Dokumenty pt. Notatka Służbowa. W zakładce definicji raportu wprowadzamy SQL-a:
SELECT dv.dscrpt, dv.conten, dv.srctxt, dv.trgtxt, p.symbol||' - '||p.dscrpt as symbol, COALESCE(c.name_2, c.name_1) AS cname_ FROM documents_view dv LEFT JOIN processes p USING (prc_id) --ON (dv.prc_id = p.prc_id) LEFT JOIN doc_link_cont dlc ON (dv.doc_id = dlc.doc_id AND dlc.role__ = 'RELATED') LEFT JOIN contacts c ON (dlc.contid = c.contid) WHERE dv.doc_id = {DOC_ID}
Dodatkową funkcjonalnością, którą może być wykorzystana w raportach Flexy są kwerendy. jest to ostatnia zakładka okienka definicji raportu. Parametry takiego raportu muszą być identyczne z parametrami głównego raportu. W odniesieniu do naszego przykładu mogą być to np. kometarze:
SELECT dc.commnt, u.firnam||' '|| u.lasnam as addtxt, to_char(dc.adddat, 'YYYY-MM-DD') AS adddat FROM document_comments AS dc LEFT JOIN users u ON (dc.adduid = u.usr_id) WHERE dc.doc_id = {DOC_ID} ORDER BY dc.adddat ASC
Przejdź do Menu
3. Funkcje PHP dostępne w szablonach:
- str_replace
Przykład użycia: {str_replace(#-#, ##, documents.dscrpt):h} Powyższe wywołanie usunie wszystkie wystąpienia znaku "-" z tekstu znajdującego się pod zmienną "documents.dscrpt"
- trim
{trim(documents.dscrpt):h} Powyższe wywołanie usunie wszystkie białe znaki z początku i końca tekstu znajdującego się pod zmienną "documents.dscrpt"
- preg_replace
- substr
{substr(documents.dscrpt, 2, 0):h} Powyższe wywołanie zwróci tekst ze zmiennej "documents.dscrpt" począwszy od drugiego znaku.
- strpos / stripos
Opis dokumentu {if:strpos(documents.dscrpt, #123#)}ZAWIERA{else:}NIE ZAWIERA{end:} ciąg: "123"
- funkcje porównujące (eq, gt, gte, lt, lte)
eq(1,2) jednoznaczne z 1 == 2 gt(1,2) jednoznaczne z 1 > 2 gte(1,2) jednoznaczne z 1 >= 2 lt(1,2) jednoznaczne z 1 < 2 lte(1,2) jednoznaczne z 1 <= 2
przykład:{if:gt(vatnote.netto_,0)} kwota netto jest większa od zera {end:}
wszystkie dostępne funkcje:
round($val, $precision = NULL); in_array($val, $array); array_key_exists($key, $array); strpos($haystack, $needle); stripos($haystack, $needle); substr($string, $start, $length); str_replace($from, $to, $source); trim($string); preg_quote($str); preg_replace($from, $to, $source); date($format, $time = NULL); number_format( float $number , int $decimals , string $dec_point , string $thousands_sep ) str_pad( string $input , int $pad_length [, string $pad_string= " " [, int $pad_type= STR_PAD_RIGHT ]] )
Przejdź do Menu
Załączniki
-
example_ext_list.html
(550 bytes) - dodany przez MK
8 years temu.
Przykład szablonu html (z możliwością zaznaczania textu) + lista (dopasowyjący się do strony)
- MojaKlasa.inc (1016 bytes) - dodany przez TS 7 years temu.
- printComments.png (51.8 KB) - dodany przez pkuznik 5 years temu.