Delphi - Internetes naptár készítése Delphi-vel

Naptár 5. rész

forráskód letöltése
Most jutottunk el addig a pontig, hogy elkészíthessük az internetes naptárunk azon funkcióját, mely lehetővé teszi, hogy a naptárba új bejegyzést vegyünk fel. A mellékelt példa kipróbálása előtt az alábbi teendők szükségesek:
  • A sorozat első részében mellékelt adatbázisok alkönyvtárára létre kell hozni egy BDE alias-t, ASWEBCALENDAR névvel.
  • A Main.pas-ban található HTMDIR konstansnál adja meg azt az elérési útvonalat, ahová a mellékelt példa HTM alkönyvtárát helyezte.
  • Ezek után fordítsa le a programot (Project - Build).
  • A létrejött EXE-t másolja át web szerverének azon könyvtárába, ahonnan van joga futtatni internetes alkalmazásokat (Pl.: C:\InetPub\Scripts\)
  • Indítson el egy böngészőt és írja be a következő címet: http://szervernev/scripts/webcalendar05.exe, persze a szervernev mindenkinél más és más lehet.


Az új naptári bejegyzéshez tovább kell fejlesztenünk a web lapunkat is. Itt létre kell hoznunk egy olyan HTML Form-ot melyen keresztül a szükséges adatok bekérhetők. Ezt a mellékelt main.htm-ben tesszük meg. Itt létrehozzuk ezt a Form-ot melyhez a következő akciót rendeljük:
<form action="/scripts/webcalendar05.exe/append" method=get>

A /append-ot egyelőre még nem kezeli az eddigi programunk, így majd ezt is ki kell egészítenünk.

A web lapon bevihető adatok a következők lesznek: a bejegyzés dátuma év, hó, nap formájában, az időpontja óra, perc formájában, valamint egy logikai érték, miszerint a bejegyzés publikus lesz és bárki megtekintheti, vagy csak saját magunk láthatjuk a naptárunkban.

Mivel a program még nem foglalkozik biztonsági kérdésekkel, így még bárki bejegyezhet a naptárunkba bármit.


A programban a /append kezeléséhez egy új akciót veszünk fel a WebModule1-ben. Ennek az OnAction eseményénél kell a web lapon megadott adatokat eltárolni.

Ehhez megnyitjuk a tCalendar adatbázist és a web lap adatait egyszerűen bemásoljuk egy új rekord megfelelő mezőibe.

Az akció kezelésének végén nem új web lapot jelenítünk meg a kliens számára, hanem visszaugrunk a naptárra. Megtehetnénk azt is, hogy egy olyan web lapot küldünk vissza a felhasználónak, hogy köszönjük az új bejegyzést, tárolása sikeresen megtörtént. Valószínűleg azonban erre az lenne a reakciója, hogy visszalép egy lapot és frissíti annak tartalmát, hogy ellenőrizze, hogy a naptárba valóban bekerült-e az új bejegyzése a megfelelő helyre. Így az a legcélszerűbb, hogy rögtön visszaugrunk a naptárra és annak új tartalmát mutatjuk a felhasználónak.

Ehhez a Response objektumnak most a SendRedirect metódusát használjuk fel. Ennek segítségével például egy teljesen másik web site-ra is átirányíthatjuk a klienst. Paraméterként a kérdéses web címet kell megadnunk. A mellékelt példában a következő módon történik ez az ugrás:

Response.SendRedirect(Request.ScriptName);

A Request objektum ScriptName property-e tárolja az aktuális programunk nevét elérési útvonallal. Mivel a naptár megjelenítése a http://szervernev/scripts/webcalendar.exe hívásával történik, így a Request.ScriptName pontosan ezt fogja visszaadni, amire itt szükségünk van.

A program jelen állapotában már képes arra, hogy új bejegyzést vegyen fel az adatbázisba, viszont arra még nem, hogy ezt meg is jelenítse a naptárban. Így jelenleg az adatbázisba kell belenéznünk, ha ellenőrizni akarjuk, hogy az új bejegyzésünk tényleg be került-e. A jövő héten megvalósítjuk, hogy az eltárolt bejegyzések már a web lapon is megjelenjenek.


Naptár cikksorozat