Dateien tabellarisch ausgeben
Am Freitag habe ich versprochen, ich verrate, wozu man das neue Tag table nutzen kann. Wozu braucht man die interne Tabellennummer einer Datenbank? Zum Zugriff auf diese natürlich. Nun muss ich zugeben, dass man das durchaus auch mit Bordmitteln hätte lösen können, aber wenn man auf eine Tabelle zugreifen möchte, von der man nicht weiß, ob sie bereits geöffnet ist, ist das etwas Aufwand. Das table-Tag macht das schlicht einfacher.
Ein Beispiel:
Angenommen ich habe bei eforia einige Dateien, die ich direkt als Tabelle zum Download anbieten möchte. Mit einem kleinen Script ist das schnell erledigt. Dieses Beispiel greift hier auf die Echtdaten zu. Ich gebe alle Dateien aus, die in eforia mit "presse/" gespeichert sind. Das Resultat sieht so aus:
Und der Code dafür ist:
<table width="100%">
<tr>
<td><b>Datum</b></td>
<td><b>Name</b></td>
<td><b>Download</b></td>
</tr>
{execprog} var fhAusgabe,nEL,nEL2 : integer var db,nRec : integer var cELFiles : string[99999,1] var cTemp : string setpara('ec 0') fhAusgabe:=Rewrite('ramtext:out',0)
db:={[9]table:cms_files} Access(db,'cms_files.id') nEL:=0 nRec:=FindRec(db,'presse/','cms_files.id') While nRec>0 Do ReadRec(db,nRec) If GetField(db,'Name') like 'presse/*' then cELFiles[nEL,0]:=GetField(db,'Name') cELFiles[nEL,1]:=GetField(db,'Dateidatum') nEL++ nRec:=NextRec(db) Else nRec:=0 End End
StrSort(cELFiles,nEL-1,0,'0')
nEL2:=0 while nEL2<nEL do writeln(fhAusgabe,'<tr>') writeln(fhAusgabe,'<td>'+cELFiles[nEL2,1]+'</td>') cTemp:=cELFiles[nEL2,0] cTemp:=cTemp[length('presse/')+1,255] writeln(fhAusgabe,'<td>'+tohtml(cTemp)+'</td>') writeln(fhAusgabe,'<td><a href="{[4]file="'+cELFiles[nEL2,0]+'"}" target="_blank">Download</a></td>') writeln(fhAusgabe,'</tr>') nEL2++ end
setpara('ec 1') close(fhAusgabe)
{/execprog}
</table>
Wie man sieht, öffne ich die Tabelle noch ganz einfach in Standard-HTML-Code. Nur die Zeilen werden dann per Execprog-Script eingefügt. Die Datenbank wird mit {table:cms_files} abgefragt. Die Ermittlung der Datensätze und die Ausgabe sind 2 Schleifen. Das hat einfach den Sinn, dass man dazwischen noch beliebig sortieren kann.
Selbstverständlich könnte man dafür auch ein eigenes Modul machen. In der Praxis ist aber jede Ausgabe immer wieder ein wenig anders. Da ist es schön einfach das kleine Code-Schnippsel schnell und direkt anpassen zu können.
Dieser Artikel wurde veröffentlicht am 15.02.2010 um 09:52 Uhr.
Tags: beispiel
table
execprog
praxistipp
| Permalink
| Trackback URI
Ähnliche Beiträge:
Noch kein Kommentar. Sei der Erste:
Der Beitrag ist älter als 30 Tage. Keine Kommentare mehr möglich.
|
|
Hier bloggt Horst Klier mit und über eforia web manager und was dazugehört (HTML, Javascript, Internet, Webdesign, Such- maschinenoptimierung, usw.).
Übersicht über alle Beiträge
|