Internet klienti v 602SQL – HTW šablóny

3. července 2003

602SQL v súčasnej verzii 8.0 je balík programov obsahujúci SQL server, databázových klientov a ďalšie nástroje. Základné prvky dynamických stránok sú WBC konektory, HTW šablóny a WBS selektory. A práve HTW šablóny si v tomto článku popíšeme.

Syntax HTW šablóny

Ako už bolo spomenuté, HTW šablóna je objekt 602SQL obsahujúci text vo formáte HTML, v ktorom sa nachádzajú príkazy WBIK, ktoré spracováva príslušný internet klient. Každý taký príkaz sa obvykle nachádza vo vnútri detailu sekcie, ktorá je ohraničená elementmi <%begindetail%> a <%enddetail%>. Každý detail sekcie prislúcha jednému konektoru. Odkazy na dáta vo vnútri detailu sekcie majú formát <%nazov_stlpca%>. V odkazoch sa môžu používať operátory a výrazy (v závislosti od typu). Internet klient do výslednej stránky vloží časť HTML stránky ohraničenú elementmi <%begindetail%> a <%enddetail%> toľkokrát, koľko záznamov je ako odpoveď na príslušný konektor, na ktorý sa sekcia odvoláva. Ak použijeme nasledujúci výraz, môžeme v časti za <%else%> určiť, čo sa vypíše v prípade, že príslušný konektor nevrátil žiadny záznam:

<%begindetail nazov_sqlstatementu%>

<%else%>

<%enddetail%>

Detaily sekcie sa môžu vnárať. V tom prípade je nutné v tabuľkách navrhnúť odlišné názvy stĺpcov v prekrývajúcich sa častiach blokov SQLStatement, v prípade, že názvy stĺpcov už nemôžete meniť, použite aspoň SQL príkaz AS.

Po napísaní výrazu <%nazov_sqlstatementu[i].nazov_stlpca%> WBIK vráti i-ty záznam. Avšak pozor! Výraz <%nazov_sqlstatementu.nazov_stlpca%> vracia vždy prvý záznam, t.j. <%nazov_sqlstatementu[0].nazov_stlpca%>. Preto ekvivalentom vyššie uvedeného jednoduchého zobrazenia stĺpca v detaili sekcie <%nazov_stlpca%> je výraz s využitím systémovej premennej <%nazov_sqlstatementu[currentrecord-1].nazov_stlpca%>. Takúto syntax je nutné použiť vtedy, ak pred názvom stĺpca uvádzame meno bloku SQLStatement, napríklad pri už spomínanom zhodnom pomenovaní stĺpcov z viacerých použitých blokov SQLStatement.

Systémových premenných šablón existuje viac, CurrentRecord patrí medzi najpoužívanejšie. Ak sa vyskytuje v tele detail sekcie, určuje poradie záznamu, mimo tela vracia počet záznamov bloku SQLStatement. Počet záznamov bloku SQLStatement na ľubovoľnom mieste šablóny je možné zistiť aj pomocou výrazu nazov_sqlstatementu#.

Podmienečné výrazy

V šablóne je možné použiť podmienečné príkazy s nasledujúcou syntaxou:

<%if podmienka1%>

<%elseif podmienka2%>

<%else%>

<%endif%>

Ako podmienka musí byť uvedený výraz typu BOOLEAN (pomenovanie podľa terminológie 602SQL, ide o typ nadobúdajúci dva stavy True alebo False), môžu v nej byť hodnoty stĺpcov, systémové premenné, operátory, funkcie, atď. Špeciálnym prípadom sú premenné predávané z konektora. O nich si povieme neskôr. Podmienky sa tiež môžu do seba vnárať.

Cykly

Cyklus FOR pracuje podobne ako v iných programovacích jazykoch. Jeho syntax je nasledujúca:

<%for premenna:=pociatocna_hodnota to|downto koncova_hodnota step hodnota_kroku%>

<%endfor%>

Cyklom FOR môžeme nahradiť detail sekcie. Zodpovedajúca časť predchádzajúcej stránky potom môže vyzerať takto:

<TABLE CELLSPACING=“10″>
<TR>
<TD>AUTOR</TD>
<TD>NÁZOV</TD>
<TD>ROK VYDANIA</TD>
<TD>POČET</TD>
</TR>
<%for i:= 0 to sel_1#-1%>
<TR>
<TD><%sel_1[i].napisal%></TD>
<TD><%sel_1[i].nazov%></TD>
<TD><%sel_1[i].rok_vydania%></TD>
<TD><%sel_1[i].pocet%></TD>
</TR>
<%endfor%>
</TABLE>

Citácie výrazov

V prípade, že chceme formátovať výpis niektorých typov premenných alebo výrazov (napr. reťazce, dátum, čas, desatinné čísla), môžeme použiť tzv. citácie. Napríklad u textového stĺpca nazov môžu byť nasledujúce citácie:

  • <%nazov;0%> – text sa vypíše tak, ako je (štandardné nastavenie pre <%nazov%>)
  • <%nazov;1%> – konce riadkov textu CR+LF sa nahradia <BR>
  • <%nazov;2%> – text sa bude vypisovať bez diakritiky
  • <%nazov;3%> – text sa bude vypisovať bez diakritiky a konce riadkov textu CR+LF sa nahradia <BR>

U reálneho čísla realnum sú najpoužívanejšie citácie takéto:

  • <%realnum;i%> – kde i je číslo kladné alebo záporné. U záporného udáva počet miest za desatinnou čiarkou, u kladného to isté, ale v semilogaritmickom tvare. Štandardné nastavenie pri neuvedení citácie je <%realnum;-3%>
  • <%realnum;100+i%> – ak je citácia väčšia ako 100, zvyšok nad 100 udáva počet desatinných miest s tým, že tisíce budú oddelené oddeľovačom nastaveným v OS
  • <%realnum;-100%> – špeciálny formát s dvoma desatinnými miestami vhodný na zobrazovanie peňažných mien

U dátumu datum môžu byť citácie nasledujúce:

  • <%datum;0%> – mesiac zapísaný číslicou, bez roku
  • <%datum;1%> – mesiac zapísaný číslicou a rok (štandardné nastavenie)
  • <%datum;2%> – mesiac zapísaný slovom, bez roku
  • <%datum;3%> – mesiac zapísaný slovom, a rok
  • <%datum;4%> – v dlhom formáte podľa OS
  • <%datum;5%> – v krátkom formáte podľa OS

Include

Ak potrebujeme vložiť na určité miesto šablóny napríklad často sa opakujúci blok textu (výsek HTML stránky), môžeme použiť príkaz INCLUDE:

<%include nazov_www_objektu%>

V takomto prípade internet klient nahradí tag INCLUDE obsahom definovaným v názve www objektu. Volaný objekt by nemal obsahovať základné HTML elementy <HTML>, <BODY> atď, aby nedošlo k ich zdvojeniu. Vo volanom www objekte je možné použiť všetky premenné z volajúceho objektu-šablóny (vstupné premenné aj premenné WBIK), ale žiaľ už nie obsahy selectov z bloku SQLStatement. Názov vkladaného objektu sa udáva bez prípony (.htw).

Předcházející články

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *