Avatar billede prodic Mester
07. september 2005 - 20:04 Der 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.

Hvis der er flere spørgsmål, så fyr ENDELIGT løs.
Avatar billede The Real Yoda Juniormester
13. oktober 2005 - 12:42 #1
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>"

events.movenext
loop
Avatar billede The Real Yoda Juniormester
13. oktober 2005 - 12:43 #2
er at fange på messenger (therealyoda666@hotmail.com) hvis der skulle være spørgsmål .. så kan vi poste endelig løsning her på eksperten til sidst.
Avatar billede prodic Mester
09. august 2007 - 18:53 #3
Vi fik aldrig brugt løsningen, men testede med bl.a. den nævnte. Det skal belønnes.
Avatar billede The Real Yoda Juniormester
21. august 2007 - 07:59 #4
årh hvad en gammel en .. super :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester