SOLUTION: Für die Erstellung einer tabellenartigen Telefonliste bietet der Objektklassen-Typ 'Datentabelle' eine schnelle Lösung: Modellierung über das Special-Objekt-Interface und autamatische Tabellen-Darstellung über die Standard-Methode "f_recordset_grid". Wichtig ist die Parametrisierung des grids über diverse Variablen, für die eine Vorbelegung definiert werden muss (qsize, qorder etc.). Das Suchinterface gibt eine Datenfilterung zurück und bleibt als Session-Variable erhalten.

Simples Basis-Modell für die Telefonliste

Eingabe von Datensätzen

Darstellung des ZMI-Grids zur Datensatzauswahl

Render-Ergebnis im ZMS

Render-Ergebnis in der Drittsicht (Preview, User-Ansicht)

Suche innerhalb des Datenbestandes über die Filter-Mimik

Simples Basis-Modell für die Telefonliste

Eingabe von Datensätzen

Darstellung des ZMI-Grids zur Datensatzauswahl

Render-Ergebnis im ZMS

Render-Ergebnis in der Drittsicht (Preview, User-Ansicht)

Suche innerhalb des Datenbestandes über die Filter-Mimik

<dtml-call "REQUEST.set('qrecords',getObjProperty(getMetaobj(meta_id)['attrs'][0]['id'],REQUEST))">
<dtml-call "REQUEST.set('qsize',REQUEST.get('qsize',10))">
<dtml-call "REQUEST.set('qorder',REQUEST.get('qorder',''))">
<dtml-call "REQUEST.set('qorderdir',REQUEST.get('qorderdir','asc'))">
<dtml-call "REQUEST.set('qstart',REQUEST.get('qstart',0))">
<dtml-call "REQUEST.set('qbatch',REQUEST.get('qbatch',3))">
<dtml-call "REQUEST.set('qindex',REQUEST.get('qindex',-1))">
<dtml-call "SESSION.set('qfilter%s'%id,REQUEST.get('qfilter',SESSION.get('qfilter%s'%id,'')))">


<dtml-if "REQUEST.get('btn','')=='Neu'">
 <dtml-call "SESSION.set('qfilter%s'%id,'')">
</dtml-if>
<dtml-if "_.len(SESSION.get('qfilter%s'%id,''))>0">
 <dtml-call "REQUEST.set('qrecords',filter_list(qrecords,_.None,SESSION.get('qfilter%s'%id,'').lower()))">
</dtml-if>
<dtml-if "_.len(REQUEST.get('qorder',''))>0">
 <dtml-call "REQUEST.set('qrecords',sort_list(qrecords,qorder,qorderdir))">
</dtml-if>


<dtml-call "REQUEST.set('res',[])">
<dtml-in qrecords mapping>
 <dtml-let row=sequence-item>
  <dtml-call "res.append({
       'name':_.str(name)+', '+_.str(vorname),
       'tel':_.str(tel)
       })">
 </dtml-let>
</dtml-in>


<form method="get">
 <input type="text" name="qfilter" value="<dtml-var "SESSION.get('qfilter%s'%id,'')">" size="25" />
 <input type="submit" name="btn" value="Suche" />
 <input type="submit" name="btn" value="Neu" />
</form>
<hr size="1" />


<dtml-if "_.len(res)>0">
<dtml-var "f_recordset_grid(_,_
    ,grid_url=URL
    ,grid_cols=
      [{'key':'name','label':'Name','sort':1,'type':'string'}
      ,{'key':'tel','label':'Telefon','sort':0,'type':'string'}
      ])">
<dtml-else>
 Es wurden keine Mitglieder in dieser Konstellation gefunden
</dtml-if>

telephonelist.metaobj_ger.xml (4KB)

COMMENT: Hinweis: die XML-Datei ist die Konfigurationsdatei für das dargestellte Spezielle Objekt.

Erstellt von: Dr. F. Hoffmann , erstellt am:  27.06.2008 , zuletzt geändert: 23.07.2008

Erstellt von: Dr. F. Hoffmann , erstellt am:  27.06.2008 , zuletzt geändert: 23.07.2008