Tipps und Tricks

 

Hier werden ein paar Tipps zu Lösung von Problemen aus der täglichen Praxis aufgeführt.

 

Mehrseitige Karteikarten

Es ist mit dem Werkzeug AMIC Etikettendruck möglich, auch mehrseitige Karteikarten zu erstellen. Folgendes Beispiel erstellt einen Report mit zwei unterschiedlichen Seiten. Dazu muss man zwei Dinge beachten:

1)   Im Editor vom AMIC Etikettendruck im Menü unter Projekt muss man den Punkt „Ebenen bearbeiten“ aufrufen.



Bei der Bearbeitung von Reporten mit mehreren Seiten muss man in der Spalte „Sichtbar“ immer nur in der Zeile einen Haken setzen, die man bearbeiten will.
Im obigen Beispiel sind zwei unterschiedliche Seiten definiert und in der Spalte Bedingung wird angegeben, wann welche Ebene zu sehen sein soll.

Die hier abgebildeten Formel „Page()/2<>floor(page()/2“ liefert bei allen ungeraden Seiten true zurück und die Formel „Page()/2<>floor(page()/2“ bei allen geraden Seiten.

 

2)   Die Datenbereitstellung muss jetzt entsprechend angepasst werden. Es wird nämlich immer der erste Datensatz auf Seite 1, der zweite Datensatz auf Seite 2, der dritte auf Seite 3 usw. gedruckt. Wenn man also z.B. für ein Anlagegut eine zweiseitige Karteikarte drucken will, muss man jeden Datensatz zweimal zur Verfügung stellen und dabei auch auf die Sortierung achten, damit die zusammengehörenden Datensätze auch direkt nacheinander geliefert werden. Dazu ist es Sinnvoll, die Daten per privater Datenbankprozedur zusammen zu stellen, weil man dort auch eine Sortierung angeben kann.

 

 

Spezielle Vorlauf-Funktion

Es gibt von AMIC eine mitausgelieferte Vorlauffunktion. Diese sucht die Daten aus der zugrundeliegenden Auswahlliste zusammen und schreibt die Werte der Felder, die hinter dem Schlüsselwort IDENT angegeben worden sind, in die Tabelle Crystaldaten. Dabei wird ID1 in crw_datestring1, ID2 in crw_datstring2, usw. geschrieben. Es gibt bis zu vier IDENT-Felder. Der Name der Funktion lautet:

 

Anwrpt_al_vorlauf

 

Sie hat einen String-Parameter, über den die Daten identifiziert werden können. Dieser kann beliebig vergeben werden. Man trägt also z.B. folgendes in das Feld Vorlauf-Funktion ein:

 

 

Dabei ist LILA_KONTOBLATT der Parameter. In der View selber muss man dann die Tabelle Crystaldaten mit den anderen Tabellen joinen:

 

Create view p_kontoblatt as select

 …

from KontoBlattStamm ks

join CRYSTALDATEN cd on cd.crw_datstring1 = cast (ks.JahrNummer as char)

                    and cd.crw_datstring2 = ks.KontoBlDruckId

                    and cd.crw_datanwendung = 'LILA_KONTOBLATT'

                    and cd.loginid = db_loginid

 

Da Crystaldaten eine Tabelle ist, die von verschiedenen Programmteilen verwendet wird, muss sichergestellt werden, dass man die Daten eindeutig zuweisen kann. Dazu dient das Feld crw_datanwendung, welches den String-Parameter enthält, und die loginid.

 

Tabelle auf einem Etikett darstellen

Etiketten selber haben keine Möglichkeit Tabellen, so wie es sie bei dem Format Listen darzustellen. Aber man kann das Spezialfeld HTML verwenden um eigene Tabellen an den AMIC Etikettendruck zu übergeben. Folgendes kleines Beispiel erstellt eine einfache Tabelle:

 

 

select XMLELEMENT( Name html,

         XMLELEMENT( Name body,

           XMLELEMENT( Name "table",

xmlagg(cast('<tr><td width=200>'||Bezeichnung||'</td><td>'||trim(amic_fstr(Wert,15,2))||'</td></tr>'  as xml) )

                     )

                   )

                 )

from Daten

 

 

Ergebnis:

<html>

  <head>

    <table>

      <tr>

        <td width=200>Eiweiß</td>

        <td>0,10</td>

      </tr>

      <tr>

        <td width=200>Fett</td>

        <td>0,10</td>

      </tr>

      <tr>

        <td width=200>Kohlenhydrate</td>

        <td>5,30</td>

      </tr>

    </table>

  </head>

</html>