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 |
Speciální chování pro tiskovou sestavu
Předávací protokol. |
|
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>) |
history |
historie objektů (element <historylist>) |
children |
podřazené objekty (element <nodelist>) |
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?, noticelist?, historylist?, nodelist?)>
<!ELEMENT name (#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 |
prop |
vlastnost |
notice |
poznámka k objektu |
history |
záznam historie |
nodelist |
seznam podřazených objektů |
Úprava tiskových sestav
Přidání firemního loga do hlavičky tiskových sestav
Ve složce Csy\Reports nahraďte soubor logo.gif souborem
s logem, které se má vytisknout v záhlaví každé tiskové sestavy.
Obrázek by měl mít výšku maximálně 100 bodů.
Poznámka:
Logo není při zobrazení tiskové sestavy na obrazovce vidět. Logo
se zobrazí až v náhledu na tiskové strany.
Přidání prohlášení o nakládání se software do Předávacího protokolu
V souboru Předávací protokol vnitřní rozdílový.xsl
vyhledejte řetězec "Text prohlášení" a za nalezenou
poznámku vložte vlastní text ve formátu HTML.
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.
|