Skip Navigation LinksALVAO 10.2ALVAO Asset ManagementImplementace systému v organizaciVlastní úpravy a rozšířeníTiskové sestavy Skip Navigation Links. Skip Navigation Links Skip Navigation Links.


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:

  1. Ve stromu objektů vybere objekt, který chce vytisknout.
  2. V hlavní nabídce Soubor vybere příkaz - Tisk.
  3. 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:

Zpracování tiskových sestav

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ů

Ú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.

Změna okrajů, či zobrazení čísla strany a celkový počet stran

  1. V programu MS Word vytvořte nový prázdný dokument a nastavte mu požadované vlastnosti, např. velikost okrajů pro tisk, text/logo do záhlaví, případně číslo stránky a celkový počet stran.
  2. Uložte dokument do souboru s názvem "PrintTemplate.docx" a tento soubor nakopírujte do složky s nainstalovanou AM Console.
  3. Všechny tiskové sestavy pak budou používat tuto šablonu pro tisk.

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.