Pravidla pro psaní hp stránek

Copyright (c) 2000 Mirek Janata

 

Co je hp stránka

hp (hyper page), je speciální šablona dynamické stránky v HTML formátu propojená s X modulem. Logicky se dělí na dvě části:

Jak HTML zdroj, tak X zdroj může pracovat s parametry příkazu, který stránku vyvolal. HTML zdroj může adresovat a tedy vyvolávat exportované funkce v X modulu, a tyto funkce naopak mohou generovat HTML kód, který v hotovém HTML nahrazuje odkazy na tyto funkce.

 

Příklad:

Následující kód vytvoří stránku, která z databáze přečte jména a příjmení zaměstnanců a vypíše je v tabulce:

HTML zdroj

<HTML>
<BODY>

<xcall:Init>
{tady se volá funkce Init() připojeného X modulu}
<H4>Hello!</H4>

<TABLE>
<TR><TD>Jméno</TD><TD>Příjmení</TD></TR>
<xcall:writeTable>{tady se volá funkce writeTable() připojeného X modulu}
</TABLE>
</BODY>
</HTML>

X zdroj

variables
{
// deklarace kurzoru
    long cur
}
export long Init()
{

// přihlásit kurzor k databázi
    xsqlconn( cur )
}
export long writeTable()
{

    long nRes
    string JMENO, PRIJMENI

// zkompilovat a spustit SQL query
    xsqlprepandexec( cur, '
SELECT JMENO, PRIJMENI FROM ZAMESTNANCI' )
// inicializovat fetch buffer
    xsqlinto( cur )
// cist data
    xsqlfetchnext( cur, nRes )
    while! ( nRes )
// precist hodnoty sloupcu
        xsqlgetstr( cur, 1, JMENO )
        xsqlgetstr( cur, 2, PRIJMENI )

// zformatovat a odeslat ( 1 řádek HTML tabulky se dvěma buňkami )
        xwebout( '<TR><TD>' $ JMENO $ '</TD><TD>' $ PRIJMENI $ '</TD></TR>' )
// dalsi radek
        xsqlfetchnext( cur, nRes )
// otestovat, zda klient neresetoval spojeni
        if! ( nRes )
            xquiton( nRes )
        end
    end
}

 

Rozšířená syntaxe

HTML zdroj

 

Přístup k parametrům a pojmenovaným řetězcům z X modulu

X zdroj

 

Tvorba odkazů na jiné HTML stránky

Je samozřejmé, že se komplexní informace o bohatě strukturových datech obtížně prezentují v prostřednictvím navzájem neprovázané sady reportů - stránek, kde každý z nich perzentuje určitou část dat bez uživatelsky jednoduché možnosti zaměřit se na určitou informaci a nechat si o ní zobrazit další podrobnosti. Fakt, že HTML protokol má v sobě schopnost kumulovat informace z různých zdrojů a zároveň přehledně informovat o odkazech na další, podrobnější údaje o daném problému, je opravdovým štěstím. Je tedy pouze na metodikovi, aby navrhl optimální strukturu obsahu a vazeb jednotlivých reportů.

Základní syntaxe HTML odkazu je
<A HREF="<nová lokace>" [další atributy]>text odkazu</A>. Nová lokace může být relativní anebo absolutní URL, případně volání skriptum např.
<A HREF="javascript:my_function()"...

V HTML zdroji
lze v odkazu použít rozšířenou syntaxi. Uvedeme příklad odkazu na další hp stránku:

<A HREF="fastx.dll?Task=_app_.form&Data=<nová stránka>.hp&_login_[&další parametry...]">text odkazu</A>

V X zdroji
obecně rozšířenou syntaxi použít
nelze, neboť X modul je kompilován před vyvoláním stránky a v průběhu jejího zpracování se pochopitelně nemění. Je tedy nutné použít specifické X operátory, vyjmenované v předchozím odstavci. Pro srovnání uvedeme příklad odkazu na další hp stránku:

export long writeOdkaz()
{

    string
login, app

// zjistit jmeno aplikace
    xappname(
app )
// nacist login-id
    xwebloginstr(
login )
// odeslat text odkazu
    xwebout( '<A HREF=\"fastx.dll?Task=' $
app $ '.form&Data=<stránka>.hp&' $ login $ '&další parametry\">' )
    xwebout( 'text odkazu</A>' )
}

 

Adresování hp stránek z prohlížeče

Máme aplikaci testapp a vytvořili jsme hp stránku customers. Z prohlížeče budeme tuto stránku adresovat příkazem:

http://<computername>/ffs/fastx.dll?Task=testapp.form&Data=customers.hp

 

hp stránky se editují HyperPagerem, což je součást aplikace Freelance Developer. Popis HyperPageru najdete zde.

Popis jazyka X najdete zde.


Přejít na Freelance Developer Home FDK Home