07. september 2005 - 20:04Der er
3 kommentarer og 1 løsning
Fødselsdag & Jubilæum-script
Kan det lade sig gøre, at lave et script der kan følgende:
Viser x antal kommende fødselarer samt x antal jubilarer på følgende måde:
(det viste eks. er for en dag hvor en person ikke har fødselsdag/jubilæum) Fødselsdag: Navn(dato for fødselsdagen) Navn(dato for fødselsdagen) Navn(dato for fødselsdagen) Navn(dato for fødselsdagen)
Jubilæum: Navn(dato for jubilæum)
(det viste eks. er for en dag hvor en person har fødselsdag/jubilæum) Fødselsdag: Billede(Flag) Navn(dato for fødselsdagen) - skrevet i bold. Navn(dato for fødselsdagen) Navn(dato for fødselsdagen) Navn(dato for fødselsdagen)
Jubilæum: Billede(flag) Navn(dato for jubilæum) - skrevet i bold.
I det tilfælde, at der på samme dag er flere fødselarer/jubilarer, så skal disse naturligvis vises alle sammen(med hvert sit billede/flag).
Billedet/flaget skal være forskelligt(dansk, norsk etc.) ud fra hvilken afdeling folk er i. Afdelingerne er angivet i IU_div, hvor f.eks. værdien 1 og 2 er Danmark, og 3 er norge etc.
De kommende fødselsdage/jubilærer skal vise de kommende x antal fødselsdage fra dags dato sorteret stigende(?)
Jubilæumsdato er på 5, 10, 15, 20, 25, 30 års dagen for personens ansættelse.
Alle data(navn, fødselsdato, ansættelsesdato, afdeling) er placeret i en access-database og i følgende tabel Intra_user(de koloner der skal anvendes er henholdsvis IU_div, IU_navn, IU_fdate, IU_ansdate). IU_date & IU_ansdate er skrevet således: dd-mm-yyyy.
Giver det overhovedet mening? Hvis det giver mening, og der blandt de script-kloge sidder en med den rigtige løsning, så er der 200p til samlingen.
Ville mene den nemmeste måde ville være at lave en ekstra tabel med events.. hvor du udregner datoen for diverse events på forhånd .. en gang for alle .. og hver gang der så kommer en ny bruger/ansat, så udregner den persons events og smider i tabellen.
Så vil det være meget nemmere for dig at hente frem og vil køre en del hurtigere.
samtidig ville jeg så gemme datoen som yyyymmdd format.
du kunne lave en tabel der hed events som indeholder: ID (unik) dato ( YYYYMMDD) person (UI_ID) type (eventtype) (fxx for fødselsdag xx år og jxx for jubilæum xx år)
og koden til at udregne kunne være :
sql="select id,IU_fdato From intra_user order by id" set users=rs.execute(sql)
do while not users.eof faar=right(users("IU_fdato"),4) fmaaned=mid(users("IU_fdato"),4,2) fdag=left(users("IU_fdato"),2)
for t= year(now)-1 to faar+100 sql="insert into intra_user_events(dato,person,type) values('"&t&fmaaned&fdag&"','"&users("id")&"','f"&t-year(now)&"')" set tmp=rs.execute(sql) next users.movenext loop
sql="select id,IU_ansdato From intra_user order by id" set users=rs.execute(sql)
do while not users.eof jaar=right(users("IU_ansdato"),4) jmaaned=mid(users("IU_ansdato"),4,2) jdag=left(users("IU_ansdato"),2)
for t= year(now)-1 to jaar+100 if t+jaar mod 5 = 0 then sql="insert into intra_user_events(dato,person,type) values('"&t&fmaaned&fdag&"','"&users("id")&"','j"&t+jaar&"')" set tmp=rs.execute(sql) end if next users.movenext loop
og herefter er det jo ret så simpelt at hente fødselarer og jubelarer..
sql="select top5(*) from intra_user_events where dato>="&year(now)&right("0"&month(now),2)&right("0"&day(now),2)&" order by dato" set events=rs.executeS(sql) do while not events.eof sql="select * from intra_users where id="&events("person") set users=rs.executeS(sql)
if dato=year(now)&right("0"&month(now),2)&right("0"&day(now),2) then response.write "<b>" response.write users("navn")&" ("&replace(replace(events("type"),"j","jubilæum "),"f","fødselsdag ")&" år)<br>"
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.