iContent Anwenderdokumentation

iContent im Detail:
 
 

Tabelleneditor

Kurzbeschreibung
Generischer Formulareditor, wird über Styles gesteuert. in web.config muß ein geeigneter Connection String mit dem Datenquellennamen gespeichert sein, inklusive providerName (derzeit nur System.Data.SqlClient möglich)
 
in der Konfigurationsdatei muß ein geeigneter Connection String mit dem Datenquellennamen gespeichert sein,
inklusive providerName (derzeit nur System.Data.SqlClient möglich)

 

Anwender:
angemeldete User entsprechend ihrem Anmeldestatus, User für die Datenansicht

Aufrufcode:dtab

Parameter:
  • 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" value="0" type="textbox" class="eingabe" >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