HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

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


Naptár 6. rész

Példaprogram letöltése

13003 bájt

Az előző heti példát továbbfejlesztve most megvalósítjuk azt, hogy az adatbázisba eltárolt naptári bejegyzéseket meg is jelenítsük a web lapon.
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/webcalendar06.exe, persze a szervernev mindenkinél más és más lehet.


Mivel programunk még most sem foglalkozik a biztonsági kérdésekkel, így egyelőre megjelenik a publikus és nem publikus bejegyzés is a naptárban.


A bejegyzések megjelenítéséhez a programot kell továbbfejlesztenünk, méghozzá azon a részen, ahol a naptár megjelenítése történik.

Ha visszaemlékszünk még a kezdetekre, akkor tudjuk, hogy minden egyes cella a naptár táblázatában egy <#celldata> címkét tartalmaz. Ezt a címkét eddig csupán az adott nap számára cseréltük ki. Mostantól viszont ellenőriznünk kell az adatbázist, hogy a cellához tartozó naphoz van-e bejegyzés. Ha igen, akkor már ezt is meg kell jelenítenünk.

Ezt az ellenőrzést úgy végezzük el, hogy a TTable komponens Filter property-ének segítségével megszűrjük az adatbázist úgy, hogy csak az adott naphoz tartozó rekordok legyenek elérhetőek. Ezek után egy ciklus segítségével végigmegyünk az összes megmaradt rekordon, hiszen egy naphoz több bejegyzés is tartozhat.
procedure TWebModule1.PageProducer2HTMLTag(
      Sender: TObject; Tag: TTag; const TagString: 
      String; TagParams: TStrings; var ReplaceText: String);
…
begin
…
  if TagString='celldata' then begin
    case FY of
      0: begin
        ReplaceText:=days[FX];
      end;
      else begin
        if b then begin
          ReplaceText:='<span class=f8b>'+IntToStr(d)+
             '.</span>';
          tCalendar.Filter:='date='''+IntToStr(FYear)+
              DateSeparator+IntToStr(FMonth)+DateSeparator+
              IntToStr(d)+'''';
          tCalendar.Filtered:=true;
          while not tCalendar.EOF do begin
            ReplaceText:=ReplaceText+'<br>'+
               tCalendarTIME.Value+' '+tCalendarEVENT.Value;
            tCalendar.Next;
          end;
        end else begin
          ReplaceText:=' ';
        end;
      end;
    end;
...


Cikksorozat



Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2000 évkönyv 499. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |