Erstellen von Python Script im Vorsatzformular
Grundlagen
Mit einem Python Script kann ein dynamisches SQL-Statement erstellt werden. Die Basisklasse für alle Operatoren und funktionen ist "Sql".
Sämtliche im Vorsatzformular verfügbaren Felder werden in das Python Script übergeben. Dabei entspricht der Variablenname dem Editnamen. Bei BlankSQL kann wie gewohnt mit ":" als Parameter auf die Werte der Vorsatzformulare zugegriffen werden.
1. Übersicht Funktionen / Operatoren
Operator Operator mit dem Feld und Inhalt verknüpft werden, default "LIKE"
Jeder SQL Operator kann verwendet werden.ValueOperator Operator mit dem der Feldwert behandelt wird. Default "keiner", zB. AEOUEUPPER usw. Ergebnis: "Feld" Operator Valueoperator(Inhalt) {ak_nr LIKE UPPER('beispiel)}
Jede SQL-Funktion kann verwendet werden.modulname Der Modulname entspricht dem Druckmodulnamen bei Vorsatzformularen beim Druck. sql_add Hinzufügen von Statements zum bestehenden SQL Term. Parameter
Erster Parameter entspricht dem Datenbankfeld (String). 2. Paremeter ist das Editfeld (Name) aus dem Vorsatzformular.add_and(Feld, Edit=Wert) Mit "AND" hinzufügen.
Sql.sql_add(Sql.add_and('ac_i', ak_ic))add_or(Feld, Edit=Wert) Mit "OR" hinzufügen. Parameter
Erster Parameter entspricht dem Datenbankfeld (String). 2.+33 Paremeter sind die Editfelder (Name) aus dem Vorsatzformular. (von und bis)add_between Hinzufügen von BETWEEN an den bestehenden SQL Term.
Sql.sql_add(Sql.add_between('ag_ldatum', ag_ldatum_von, ag_ldatum_bis))add_between_or Mit "OR" hinzufügen. Parameter
Einzelner String welcher komplett angehangen wirdcustom_sql_add_and if pickstat==0:
Sql.custom_sql_add_and('not ag_done')custom_sql_add if modulname=='VERKSTATISTIK':
Sql.sql_add('\n ORDER BY ag_lkn, ag_ldatum, ag_nr, ag_pos')keywordsearch Sql.custom_sql_add_and(Sql.keywordsearch('art', keywords_art)) add_where Durch aufrufen von add_where wird der bestehenden SQL Term geschrieben und zusammengesetzt. Sql.add_where()
if sortby==0 :
Sql.custom_sql_add('ORDER BY ak_nr')
Hinweis: Das Python Script erstellt ein SQL-WHERE Statement, welches an das aus der Liste bzw. F2-Fenster geschriebene Grund-Statement gehangen wird. Es ist also zu beachten, dass die Spalten, welche im Vorsatzformular-Script angesprochen werden können auch im SELECT-Statement vorhanden sein müssen (JOIN).
Siehe auch