HTML Vorlagen
  • Bitte beachten Sie, dass die folgenden Informationen für den Maptip im cardoMap gelten!
 

Wenn Sie den Maptip entsprechend bestimmten Stylevorgaben definieren wollen oder über Templates Abfragen einfügen wollen, verwenden Sie die Eigenschaft HTML Vorlage.

Wo? Managementcenter/Berechtigungen und Ebenen/ Reiter cm3 Ebeneneigenschaften

Hinweis: die Umsetzung mit Templates wird im cardo3/4 (Reiter Zusatzeigenschaften) nicht ausgewertet.

Formatierung

Für die Ausgabe des cardo.Map-MapTip werden Spalten aus der Ebene oder der verknüpften Tabelle (Eigenschaft "Titel-Spalten") sowie einer HTML-Vorlage definiert.

Die HTML-Vorlage enthält dabei Platzhalter mit einem 0-basierten Index aus der Liste der angegegeben Spalten. Die Platzhalter werden dabei in einer geschweiften Klammer eingeschlossen. Bsp.: {0} = > stellt den Platzhalter für den Wert der 1. Spalten in der Spaltenliste dar.

Hinweis: Wollen Sie geschweifte Klammern ausgeben, so müssen diese doppelt angegeben werden. Die Syntax entspricht der .Net-Formatierung der String.Format Syntax. Zusätzlich können Parameter z. B. für die Ausgabe von Nachkommastellen (weitere Infos + Beispiel) angegeben werden.

Bedingte Ausgaben

Bedingte Ausgaben können mit Hilfe der Verwendung eins cardo.Button-Templates realisiert werden. In diesen Templates ist es möglich, Bedingungen für den Inhalt definiert werden können.

Ein Template ist ein XML-Fragment, welches immer mit dem Element <Tpl> begonnen werden muss (keine Leerzeichen am Anfang !!!). Der Namespace muss dabei "http://schemas.webs.idu.de/cardo3/templates" lauten.

Innerhalb eines Template sind die Elemente plain, func und if definiert. Diese können in beliebiger Folge und Häufigkeit, aber nicht verschachtelt, auftreten.

  • plain: Ausgabe des Inhaltes wie angegeben
  • if: leitet eine Abfragebedingung ein

Innerhalb einer if - Bedingung wird ein Filterausdruck erwartet. Auf ein if muss mindestens eines der Elemente then oder else folgen. Der Inhalt von then oder else wird so ausgegeben, wie er notiert ist (keine weitere Schachtelung).

Das Ergebnis des Templates ist die Summe der Inhalte aller plain-Elemente und der Inhalt der sich aus der Bedingung ergebenenden then- oder else-Elemente. Die Inhalte werden pro Datenzeile zusammengefügt und anschließend die Platzhalter in den geschweiften Klammern mit den Werten befüllt.

Das XSD-Schema für die Templates finden Sie [hier].

Bsp.:

<Tpl
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tpl="http://schemas.webs.idu.de/cardo3/templates"
xsi:noNamespaceSchemaLocation="http://webs.idu.de/xsdschemas/Cardo/Button/templates.xsd">
<!-- immer ausgeben ... -->
  <tpl:plain>{0} in {1}</tpl:plain>
  <tpl:if>
    <!-- Bedingung definieren -->
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <SingleComparison compareBehavior="Default">
        <ColumnName>wb</ColumnName>
        <Is>IsNotNull</Is>
      </SingleComparison>
    </ButtonComparision>
    <!-- wenn zutrifft ..-->
    <tpl:then>
      <br/>Wärmebedarf: {2:#.0} MWh/a
    </tpl:then>
    <!-- ... sonst ... -->
    <tpl:else>* keine Angabe *</tpl:else>
  </tpl:if>
  <!-- immer ausgeben ... -->
  <tpl:plain>
    <hr/>
  </tpl:plain>
</Tpl>
 

Das Schema für die Abfragen finden Sie hier:

http://webs.idu.de/xsdschemas/Cardo/Button/Button.xsd 

Für die Erstellung des Ausdrucks ist ein XML-Editor mit Schema Unterstützung zu empfehlen (Visual Studio). 

Hinweis: Innerhalb der plain-Elemente oder der then-, else-Blöcke muss XHtml notiert werden. Ist die Angabe als valides XHtml nicht möglich, kann mit <![CDATA[ ..Inhalt.. ]]> gearbeitet werden.

Hinweis:
Folgende gemischte Notation ist nicht zulässig:
{0} </br>
<Tpl ...>

Betten Sie die {0} in das Template ein:
<Tpl ..>
<tpl:plain>{0}</tpl:plain>
Beispiel Template 1 - sekundärer Maptip
<Tpl
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tpl="http://schemas.webs.idu.de/cardo3/templates"
     xsi:noNamespaceSchemaLocation="http://webs.idu.de/xsdschemas/Cardo/Button/templates.xsd">
  <!--Felder, welche in diesem Beispiel  für Maptip verwendet  werden. -->
  <!--pzlnodetitle,vert_status,vert_erfolg,pzlnodeid, published-->
  <!--<div> - Anweisungen , zur Einleitung eines Blockelementes,   -->
  <!--sind kein valides xhtml deshalb muss hier!  [CDATA[Inhalt]-->
  <!--verwendet werden.-->

<tpl:plain>
     <![CDATA[
      <div id="eea" style="padding:5px;">
      <div class="listingRecord">
     ]]>
  <h3 style="margin-bottom:10px;">{0}</h3>
</tpl:plain>

<!--immer ausgeben.-->
  <tpl:plain>{0}</tpl:plain>
  <tpl:if>
    <!-- Bedingung definieren -->
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <SingleComparison compareBehavior="Default">
        <ColumnName>vert_status</ColumnName>
        <Is>IsNotNull</Is>
      </SingleComparison>
    </ButtonComparision>

    <!-- wenn zutrifft ..-->

    <tpl:then>
      <p>
        <span class="spanLabel">Teilnahmestatus: </span> {1}
      </p>
    </tpl:then>
    <!-- ... sonst ... -->
    <tpl:else>
      * keine Angabe *
    </tpl:else>
  </tpl:if>
  <!--Prüfung: (ert_erfolg ist Wert = nicht Null) und  -->
  <!--(published Wert = 1 oder Wert= - 1) -->

  <tpl:if>
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <And>
        <SingleComparison compareBehavior="Default">
          <ColumnName>vert_erfolg</ColumnName>
          <Is>IsNotNull</Is>
        </SingleComparison>
        <Or>
          <SingleComparison compareBehavior="Default">
            <ColumnName>published</ColumnName>
            <Is>Equal</Is>
            <Value>1</Value>
          </SingleComparison>
          <SingleComparison compareBehavior="Default">
            <ColumnName>published</ColumnName>
            <Is>Equal</Is>
            <Value>-1</Value>
          </SingleComparison>
        </Or>
      </And>
    </ButtonComparision>

    <tpl:then>
      <p>
        <span class="spanLabel">Erfolgsquote:</span> {2}%
      </p>
      <!--Detaillink anzeigen-->
      <![CDATA[<a class="detaillink" style="font-size:11px;" href="%EEA_URL%{3}">zur Detailseite></a>]]>

    </tpl:then>
    <tpl:else>

      <p>
        <i style='color:gray'>Diese Seite befindet sich noch im Aufbau</i>
      </p>

    </tpl:else>

  </tpl:if>
  <!--<div> - Block-Anweisungen abschließen -->
  <tpl:plain><![CDATA[</div></div>]]></tpl:plain>
</Tpl>

 

Beispiel Template 2 - Prüfung Spaltennamen

Template für eine Tabellenabfrage, wenn eine Vielzahl an Spalten unterschiedlich gefüllt sind, d. h. viele Spalten leere Einträge haben. Damit nicht jedes Mal "keine Angabe" im MapTip steht, kann über eine If-Abfrage der MapTip entsprechend konfiguriert werden.

Im Folgenden werden die einzelnen Spaltennamen geprüft. Enthalten diese Werte und die Bedingung ist erfüllt, wird die entsprechende MapTipzeile ausgegeben, sonst nichts.

Spaltennamen sind hier: Name {0}, Strasse {1}, Ort {2}, Telefon {3}

<Tpl     
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:tpl="http://schemas.webs.idu.de/cardo3/templates"    xsi:noNamespaceSchemaLocation="http://webs.idu.de/xsdschemas/Cardo/Button/templates.xsd">

  <!-- immer ausgeben ... -->         <if>
    <!-- Bedingung definieren -->
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <SingleComparison compareBehavior="Default">
        <ColumnName>NAME</ColumnName>
        <Is>IsNotNull</Is>
      </SingleComparison>
    </ButtonComparision>
    <then>
      <p style="color:#C40009">
        <b>{0}</b>
      </p>
    </then>
  </if>         <if>
    <!-- Bedingung definieren -->
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <SingleComparison compareBehavior="Default">
        <ColumnName>STRASSE</ColumnName>
        <Is>IsNotNull</Is>
      </SingleComparison>
    </ButtonComparision>
    <then>
      {1}<br/>
    </then>
  </if>         <if>
    <!-- Bedingung definieren -->
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <SingleComparison compareBehavior="Default">
        <ColumnName>ORT</ColumnName>
        <Is>IsNotNull</Is>
      </SingleComparison>
    </ButtonComparision>
    <then>
      {2}<br/>
    </then>
  </if>         <if>
    <!-- Bedingung definieren -->
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <SingleComparison compareBehavior="Default">
        <ColumnName>TELEFON</ColumnName>
        <Is>IsNotNull</Is>
      </SingleComparison>
    </ButtonComparision>
    <then>
      Tel.: {3}<br/>
    </then>
  </if>

  ....
</Tpl>

 

Beispiel Template 3 - Verknüpfung mehrerer Single Comparison

Verknüpfung mehrerer Single Comparisons über eine AND Bedingung. Die IF Abfragen werden nacheinander geschrieben. Es können beliebig viele definiert werden. 

<Tpl      
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tpl="http://schemas.webs.idu.de/cardo3/templates"
xsi:noNamespaceSchemaLocation="http://webs.idu.de/xsdschemas/Cardo/Button/templates.xsd">
  <!-- immer ausgeben ... -->
  <if>
    <!-- Bedingung definieren -->
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <And>
        <SingleComparison compareBehavior="Default">
          <ColumnName>str</ColumnName>
          <Is>IsNotNull</Is>
        </SingleComparison>
        <SingleComparison>
          <ColumnName>tel</ColumnName>
          <Is>IsNotNull</Is>
        </SingleComparison>
        ....
      </And>
    </ButtonComparision>
    <then>
      <p style="color:#C40009">
        <b>{0}</b>
      </p>
      {1} {2}<br/>
      {3} {4}, {10}<br/><br/>
      Tel.: {5}<br/>
      Fax: {6}<br/><br/>
      Web: <a href="http://{8}" target="_blank">0</a><br/>

    </then>
  </if>
  <if>
    <!-- Bedingung definieren -->
    <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
      <And>
        <SingleComparison compareBehavior="Default">
          <ColumnName>str</ColumnName>
          <Is>IsNull</Is>
        </SingleComparison>
        <SingleComparison>
          <ColumnName>tel</ColumnName>
          <Is>IsNull</Is>
        </SingleComparison>
        .......
      </And>
    </ButtonComparision>
    <then>
      <p style="color:#C40009">
        <b>{0}</b>
      </p>
      {3} {4}, {10}<br/><br/>
    </then>
  </if>
  .....

</Tpl>