Unsere Tabelle hat ja nun eine Gesamtbreite von 100mm. Das Formular, wie wir es eingestellt haben, bietet und eine Breite von 150mm. Natürlich könnten wir jetzt die Spaltenbreiten manuell anpassen. Aber spätestens, wenn wir die Spaltenränder im Formular verändern, oder die Papierausrichtung ändern oder von DinA4 auf DinA3 wechseln, passt unsere Tabelle wieder nicht über gesamte Breite. Nun wäre es doch gut, wenn wir die Breite abfragen könnten, die uns zur Verfügung steht.
Dafür gibt es im Rtf Modul die Funktion Get_KKP_ScriptParameter
Schauen wir uns noch einmal unsere Vorlage an.
Das Skript, welches wir eingefügt haben, befindet sich selbst in einer Tabelle. In der ersten Zeile können wir frei einen Infotext vergeben. In der 2. Zeile steht, wo sich das Skript befindet. In der 3. Zeile können wir selbst diverse Parameter angeben und in unserem Python-Skript verwenden. Ferner können wir die Breite der Tabelle angeben, die wir in der Vorlage sehen.
Damit kann also der Designer für das Formular unser Skript einbauen, und egal wie er es konfiguriert, wir brauchen uns um nichts mehr kümmern. Ferner können wir hier auch eigene Parameter ausgeben. Z.B. könnten wir einen Parameter angeben, der besagt, „Drucke alle Details oder nur eine Zusammenfassung“. Wie wir die Parameter gestalten ist dabei vollkommen uns überlassen. So brauchen wir dann nur 1 Skript programmieren, welches gleich in zwei Vorlagen verwendet werden kann.
Hier mal ein paar Beispiele wie solche Parameter aussehen könnten.
Damit wir die Parameter verwenden können, müssen wir im Skript eine spezielle Variable definieren. KKP_strXML_SriptParameter.
Diese Variable wird vom KKP automatisch mit Inhalt gefüllt. Die nachfolgende Funktion holt uns dann schon mal diverse Werte aus der Variablen heraus.
In dem Sktript sagen wir, dass die 1. Spalte 33% der Gesamtbreite bekommt und die letzte Spalte einfach bis an den rechten Rand reicht.
import kkp
import rtf
#twipsToMM = 57
#SPA_Breite = 60 #mm
#SPB_Breite = 40 #mm
#SPA_Rand = SPA_Breite * twipsToMM
#SPB_Rand = SPB_Breite * twipsToMM + SPA_Rand
KKP_strXML_SriptParameter = „“
tblId, tblWidth, paramString = rtf.Get_KKP_ScriptParameter(KKP_strXML_SriptParameter)
SPA_Rand = tblWidth * 33 / 100
SPB_Rand = tblWidth
Die eigenen Parameter können wir natürlich auch auswerten.
KKP_strXML_SriptParameter = „“
tblId, tblWidth, paramString = rtf.Get_KKP_ScriptParameter(KKP_strXML_SriptParameter)
SPA_Rand = tblWidth * 33 / 100
SPB_Rand = tblWidth
print(paramString)
Python bietet übrigens Parser für XML und JSON. Ansonsten kann man sich natürlich seinen eigenen Parser schreiben.