Tiskové sestavy
V této kapitole je popsána technika, jakou jsou vytvořeny standardní
tiskové sestavy. Program je z hlediska tiskových sestav otevřený a uživatel
si může standardní tiskové sestavy sám upravit nebo vytvořit sestavy zcela
nové. Vlastnosti programu popsané v této a souvisejících kapitolách se mohou
v budoucnu změnit. Další text předpokládá znalost formátů HTML, XML a XSL.
Program vytváří výstupní tiskové sestavy jako dokumenty ve formátu HTML.
Pro prohlížení a tisk sestav je použit MS Internet Explorer.
Uživatel postupuje při vytvoření tiskové sestavy takto:
- Ve stromu objektů vybere objekt, který chce vytisknout.
- V hlavní nabídce Soubor vybere příkaz - Tisk.
- Na obrazovce se otevře okno pro výběr tiskové sestavy tj.
souboru s příponou REP, RP2 resp. EPQ. Soubory EPQ obsahují uložené
dotazy, kterými se v této kapitole nebudeme zabývat. Soubory s
příponou REP jsou základní soubory tiskových sestav. Každý soubor
definuje jeden typ tiskové sestavy, např. soubor Evidenční karta.rep
definuje tiskovou sestavu Evidenční karta.
Další zpracování probíhá podle následujícího schématu:
Program vygeneruje pracovní XML soubor popisující objekt, který byl
uživatelem vybrán pro tisk. Podrobnost informací ukládaných do XML souboru
záleží na nastavení uvedeném v REP souboru. Soubor REP dále obsahuje název
HTML souboru tiskové sestavy, který je, po nahrazení maker, zobrazen v MS
Internet Exploreru.
V HTML souboru mohou být použita tato makra:
Makro |
Popis |
%HTMLPATH% |
Absolutní cesta k HTML souboru na pevném disku.
Např. je-li soubor stylů style.css uložen ve stejném
adresáři jako HTML soubor, může být pro jeho načtení použita
tato konstrukce:
<link rel="stylesheet" href="%HTMLPATH%\style.css"> |
%XMLPATH_C% |
Název s cestou k pracovnímu XML souboru ve formátu pro
použití v javascriptu. |
Soubor REP
Soubor s příponou REP je textový soubor, který definuje výstupní
tiskovou sestavu.
Soubor obsahuje několik řádků ve formátu:
Proměnná=Hodnota
Např.:
VERSION=XMLReport1
Proměnná |
Popis |
VERSION |
Určuje verzi formátu tiskové sestavy. Tato proměnná musí
být uvedena na prvním řádku v souboru REP a musí mít hodnotu
XMLReport1. |
TYPE |
Hodnota této proměnné určuje speciální postup při
generování XML souboru, který je zdrojem dat pro tiskovou
sestavu.
Hodnota |
Popis |
Null |
Při zadání implicitní hodnoty Null bude
XML soubor obsahovat pouze objekt (včetně
podřazených objektů), který je vybrán ve
stromu objektů při vytváření tiskové
sestavy. |
Transfer Inner |
Tisková sestava typu "předávací protokol
vnitřní". |
Transfer Inner Summary |
Tisková sestava typu "předávací protokol vnitřní souhrnný". Je možné ji použít pouze na objektu druhu Uživatel. |
Transfer Outer |
Tisková sestava typu "předávací protokol
vnější". |
|
SEQUENCE |
Název číselné řady, která bude použita pro generování
čísla dokumentu tiskové sestavy typu "Předávací protokol".
Např.: "Zápůjčky".
Pozn.: Pokud je hodnota prázdná, pro předávací protokoly
vnitřní se použije systémová řada „Předávací protokoly“. Pro
předávací protokoly vnější se nepoužije žádná řada.
|
HTML |
Název souboru ve formátu HTML, který se použije jako
výchozí soubor pro zobrazení tiskové sestavy. Název souboru
je zadán relativní cestou k souboru REP. Je-li soubor HTML
uložen ve stejném adresáři jako soubor REP, stačí zadat
pouze název souboru. |
FLAGS |
Hodnotou může být prázdný řetězec (např. "FLAGS=") nebo
seznam dále uvedených položek oddělených čárkou, např.
"FLAGS=children,ownprop,inheritedprop". Každá položka
seznamu povoluje zápis určité informace do XML souboru.
Seznam položek je uveden v následující tabulce:
Položka |
Popis |
notice |
poznámky k objektům (element <noticelist>),
pouze záznamy které nebyly v Deníku
odstraněny (skryty). |
history |
historie objektů (element <historylist>),
pouze záznamy které nebyly v Deníku
odstraněny (skryty). |
children |
podřazené objekty (element <nodelist>) |
responsibility |
Pod objekty druhu Uživatel se vygenerují
nové podstromy. Obsahují objekty, které mají
ve vlastnosti „Za majetek zodpovídá“ hodnotu
daného objektu uživatele. |
ownprop |
vlastní vlastnosti (element <prop> v <proplist>) |
inheritedprop |
zděděné vlastnosti (element <prop> v <proplist>) |
owninfo |
element <own>1</own> pro vlastní
vlastnosti |
inhritedinfo |
element <iherited>1</inherited> pro
zděděné vlastnosti |
specialinfo |
element <special>1</special> pro
speciální vlastnosti (vlastnosti pro interní
použití při vzdáleném sběru údajů, atd.) |
|
Příklad obsahu souboru Evidenční karta.rep:
VERSION=XMLReport1
TYPE=Null
HTML=Evidenční karta.htm
FLAGS=children,ownprop,inheritedprop,notice
Soubor XML
V této kapitole je popsána struktura XML souboru, který je použit při
vytváření tiskové sestavy. Do souboru se zapíše obraz objektu (včetně
podřazených objektů), nad kterým se tisková sestava vytváří (tj. objektu,
který je vybrán ve stromu objektů). Které elementy budou v XML souboru
uvedeny, a které ne, záleží na nastavení položky FLAGS v souboru REP.
Formát souboru XML (DTD):
<!ENTITY ONE "1">
<!ELEMENT report (node*)>
<!ELEMENT node (name, icon, proplist?, responsiblefor?, noticelist?, historylist?, nodelist?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT path (#PCDATA)>
<!ELEMENT icon (#PCDATA)>
<!ELEMENT proplist (prop*)>
<!ELEMENT noticelist (notice*)>
<!ELEMENT historylist (history*)>
<!ELEMENT nodelist (node*)>
<!ELEMENT prop (value, kind, own?, inherited?, special?)>
<!ELEMENT value (#PCDATA)>
<!ELEMENT kind (#PCDATA)>
<!ELEMENT own (&ONE;)>
<!ELEMENT inherited (&ONE;)>
<!ELEMENT special (&ONE;)>
<!ELEMENT notice (date, desc, user)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT desc (#PCDATA)>
<!ELEMENT user (#PCDATA)>
<!ELEMENT history (date, desc, user)>
Význam elementů:
Element |
Popis |
node |
objekt |
path |
cesta k objektu ve stromu objektů |
prop |
vlastnost |
notice |
poznámka k objektu |
history |
záznam historie |
nodelist |
seznam podřazených objektů |
Tiskové sestavy RP2
Asset Management podporuje také tiskové sestavy s příponou RP2
(Report v2), které jsou ve formátu Active Script Template. Tento systém
umožňuje rychle vytvořit tiskovou sestavu bez znalosti XSL. Tiskovou
sestavu RP2 tvoří pouze jeden soubor ve formátu generovaného HTML
uložený v kódování UTF-16 (Unicode). Soubor musí mít na začátku
identifikační hlavičku - viz ukázková sestava.
Parametry, které je možné ve skriptu použít:
Parametr |
Popis |
ConnectionString |
Připojovací řetězec do databáze. |
iNodeId |
ID aktuálně vybraného objektu ve stromu. |
iPersonId |
ID přihlášeného uživatele v AM Console |
Ukázková tisková sestava ve formátu RP2:
<!--ALVAO.Report2-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ukázková tisková sestava</title>
<style type="text/css"></style>
</head>
<body>
<%
Set con = CreateObject("ADODB.Connection")
con.Open param("ConnectionString")
sql = "select * from tblNode where intNodeId=" & param("iNodeId")
Set rs = CreateObject("ADODB.Recordset")
rs.Open sql,con
If Not rs.EOF Then %>
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>Vybraný objekt ve stromu</td>
<td><%WriteHtml(rs("txtName").Value)%></td>
</tr>
<tr>
<td>ID přihlášeného uživatele</td>
<td><%WriteHtml(param("iPersonId"))%></td>
</tr>
<%
End If
rs.Close
%>
</body>
</html>
Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.
|