-
1) Typ: EDIT
-
2) ID des Styles des Formulares
-
3) Datenquellenname (aus web.config)
-
4) Tabellenname
-
5) Primary key-Feld (z.B. ID [Default])
-
6) zusätzliche Einschränkung (z.B. anderesfeld=13 oder=[selected] für {%kritsel_)
-
7) gewählter PK (Übergabe der Datensatz-ID)
-
8) gewählte Seite (für mehrseitige Auswahllisten)
-
9) Sortierfeld der Tabelle
-
10) gewähltes Kriterium (Link)
-
11) File-Verzeichnis ab .\libresso\
Datensatzauswahl
Die Parameterübergabe für den ausgewählten Datensatz erfolgt über das Feld 7 "gewählter PK", wobei das PK-Feld in Feld 5 "Primary Key Feld" definiert wird (Default = ID)
Der Tabelleneditor kann Einschränkungen in der Auswahl der Datensätze bearbeiten, z.B. um auf Werte der Kriterien-Selektion {%kritsel_ zuzugreifen. Im Feld "Einschränkung" des Templates kann derart zugegriffen werden:
gemeinde='[val]' ... erzeugt im SQL-String ein "...where gemeinde='ausgewählterwert'
ebenso kann der Mandantencode verwendet werden: Feldname='[mand]',
sowie die übergebene ID: Feldname='[id]' (aber nicht aus dem URL heraus)
und die User-ID bzw. Firmen-ID des angemeldeten Users:
'[userid]' und '[firmaid]'
Weiters kann mit code='innd' and bereich=35 and minrecht < 2 auf den SQL-Teil aus dem Link bzw. Template zugegriffen werden (beim TREE funktioniert auch code=''innd'' and bereich=35 and minrecht < 2,das die Anführungsstriche verdoppelt)
Selbstverständlich werden Eingaben die SQL-Injection hervorrufen dabei vom System herausgefiltert.
Realisierung einer Suche:
Grundlagen:
Die Funktionalität der Datensatzauswahl kann auch für eine Suche verwendet werden:
gemeinde='[val]' and Name like '%[search1]%' or Vorname ='[search2]' or PLZ='[search3]'
Darstellung im Formular (im Style):
die Suchfelder müssen exakt so benannt sein (search1 bis search3) und als Texteingabefeld dargestellt werden.
Weiters erfordert die Suche einen button
Beispiele für mögliche Style-Felder im Style-Typ TabEditor:
Erstellung von Listen für die Verwendung in Feldern:
der Parameter [liste=
kann mit einer textlich erfassten Liste val1§vtext1;val2§vtext2.... gefüllt werden
kann mit einem SQL-Statement gefüllt werden: select ...as val, ...as vtext where bedingung
kann mit einem Array aus {%createarray1..4 gefüllt werden [liste=array1#
der Parameter [zweitliste=
kann mit textlich erfassten Listen oder einem Array gefüllt werden, nicht mit SQL
{%createarray1..4
Mit diesem Tag lassen sich Listen vordefinieren die in Eingabefeldern mehrfach Verwendung finden können.
möglich sind:
{%createarray1, {%createarray2, {%createarray3, {%createarray4
Syntax: {%createarray1[liste=...#zweitliste=...]%}
wobei für den Parameter liste und zweitliste dasselbe gilt wie oben beschrieben
Der Zugriff auf die empfangenen Daten erfolgt in den Tags über den Parameter [liste=
wobei auch das Feld {%hid und das Feld {%lbl drauf zugreifen können,
in diesem Fall wird ausschliesslich der erste Wert von val1 verwendet
(z.B.: val1§vtext1;val2§vtext2)
dieser erste Wert kann auch für {%tb_....[default=array1]%} verwendet werden
Eingabefelder:
blau dargestellt sind immer die Feldnamen in der Datenbanktabelle
{%tb_id[maxlength=5#cols=5#class=eingabe#]%}
{%tb_autor[maxlength=40#cols=40#class=eingabe#default=Eddi#check=text]%}
{%ta_untertitel[maxlength=10#cols=40#rows=4#class=eingabe#wrap=virtual]%}
{%dat_updatedatum[cols=10#class=eingabe#default=01.12.2008#check=datum]%}
{%chk_janein[chkname=janein ist wichtig#class=normal#default=0]%}
{%hid_anderesfeld[liste=array1...4]%}
{%sel_bereich[liste=select distinct bereich as val, bereich as vtext from buecher where len(rtrim(bereich)) > 1 order by bereich#zweitliste=1§test1#class=tabblue#default=]%} Wichtig ist auch die Reihenfolge der Felder, z.B. muss default vor check stehen damit der Check den Defaultwert mit in die Überprüfung einbeziehen kann
Im select können auch [val], [mand],[id] und code='innd' and bereich=35 and minrecht < 2 verwendet werden (siehe oben)
Besonderheit von {%sel_ :
Darstellung der einzelnen Zeilen in bestimmten Farben:
#rgbfeld=farbeRGBhex#
Darstellung des Dropdown in bestimmter Schriftart:
#schriftfeld=schrift# (Achtung: dazu darf kein class=... definiert sein)
Übrigens lassen sich auch andere Felder in Datenbank-hinterlegten Schriften darstellen:
<span style="FONT-FAMILY: {%lbl_schrift%}">{%lbl_meinespalte%} span>
maxlength="13" size="13"
Darstellung der Farben als Box:
RGB: {%farbe_farbeRGBhex[width=30#height=30]%}
CMYK (ungenau!): {%farbe_farbeCMYKproz[width=30#height=30#cmyk=1]%}
{%colorcmyk_asin[maxlength=13#cols=13#class=eingabe]%}
wie Kriterien-Dropdown:
{%kritsel" id="icon_, aber mit Farbboxaufruf für CMYK-Farben
Kriterien-Dropdown:
{%
kritsel')">
Der ausgewählte Wert wird dann als
[val] an die Seite zurückgegeben.
es können 5 Dropdowns definiert werden:
{%kritsel [val]
{%kritsel2 [val2]
{%kritsel3 [val3]
{%kritsel4 [val4]
{%kritsel5 [val5]
Die Darstellung der Werte in der Verlinkung erfolgt durch | getrennt
Achtung: es müssen immer alle vorherigen {%kritsel ebenfalls definiert sein, wenn mehr als ein {%kritsel vorhanden ist.
Liste von Datensätzen:
{%liste[listanzahl=7#class=eingabe#field=autor#field2=titel#maxlength=25#noid=noid#order=feldname]%}
Im select können auch [val], [mand] und code='innd' and bereich=35 and minrecht < 2 verwendet werden (siehe oben)
noid: definiert daß die ID (der Primärschlüssel) am Anfang der Liste nicht angezeigt wird.
der ausgewählte Datensatz wird als ID an die Seite zurückgegeben.
Upload-Felder:
Es können bis zu 9 Uploadbereiche eingerichtet werden.
{%upload_1[type=pdf#dir=aufgabe#titel=erstes feld#file=pdf1_#class=tabwhite]%}
{%upload_2[type=psdpng#class=baumarkt_normal#titel=MeinEingabeFeld]%}
{%upload_3[type=zip#class=eingabe#file=zip_#titel=drittesFeld]%}
{%upload_4[type=gifjpg#class=eingabe#file=pic2_[id]#titel=Feld 4²]%}
{%upload_5[type=xls#class=eingabe#file=xls2_#titel=Feld 5²]%}
{%upload_6[type=ai#class=eingabe#file=ai_#titel=Feld 5² Illustrator]%}
Anmerkung: file= bestimmt den Namen, der normalerweise um die codierte ID ergänzt wird, ausser es wird die ID mit eingebunden file=name_[id], dann kommt statt [id] die Datensatz-ID
Verlinkungen mit vorhandenen Dateien:
{%filelink[class=eingabe#type=zip#dir=#file=zip_#]%}
{%filelink[class=normal#titel=meine_pdf_datei#type=pdf#dir=aufgabe#file=pdf1_#]%}
{%filelink[class=normal#titel=meine_zip_datei#type=psd#]%}
{%filelink[class=normal#titel=meine_bild_datei#type=jpggif#file=pic2_#]%}
{%filelink[class=normal#titel=Excel_datei#type=xls#file=xls2_#]%}
{%filelink[class=normal#titel=Illustrator_datei#type=ai#file=ai_#]%}
GIF-/JPG-Dateien im Template anzeigen:
{%showpic[titel=mein_gif#file=pic2_#]%}
Textausgabe:
: Ausgabe eines Feldinhaltes
5006: Ausgabe der selektierten ID
: Ausgabe des selektierten Wertes (aus {%kritsel_)
Um abhängig von der Verfügbarkeit eines aktuellen Datensatzes etwas auszugeben:
Ausgabetext wenn was da ist
Schaltflächen:
Button neuer Datensatz: {%bt_neu%}
Button Datensatz speichern: {%bt_speichern%}
Button Datensatz löschen: {%bt_loeschen%}
Button Datensatz kopieren: {%bt_kopieren%}
Anmerkung: das Kopieren von Datensätzen funktioniert nur bei Tabellen,
deren Primary Key das Feld ID ist (autoincrement)
Hilfe-Icon: {%help:.....Hilfetext....%}
Ergänzung im Stylesheet:
Für die Darstellung der Upload-Tabelle sind folgende zwei CSS-Einträge vorgesehen:
tab_upload
tab_upload_header