25. august 2005 - 12:10Der er
12 kommentarer og 1 løsning
Rating bjælke
Jeg vil gerne have lavet en grafisk visning af en rating fra 1-5 i decimaler.
Når rating er 5 skal der vises 5 stjerner og når den er 1 skal der vises 1 stjerne. Man skal stadig kunne se de andre stjerner. De skal bare være grå i stedet for gule. Hvis rating er 4,5 skal der vises præcis 4,5 stjerne osv.
Jeg kan sagtens lave det grafiske, men hvordan skal programmeringen se ud?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Rating = 3 Tor PosibleRating=1 To 5 If Rating <= PosibleRating Then Response.Write "<img src='brightStar.gif'>" Else Response.Write "<img src='dimmedStar.gif'>" End If Next
Du kunne også lave et alternativ, hvor du har en gul stjerne, en grå stjerne, og så et sæt af stjerner som skifter fra gul til grå i f.eks. en skala på 1/10-dele. Så kunne ratingen udskrives som et antal gule stjerner, en af mellem-stjernerne, og så grå stjerner for resten. Godt nok ville dette ikke være helt flydende - men det ville være tæt nok på til at se sådan ud.
Med "runtime" mener jeg at du har installeret en grafisk komponent, som tillader dig at lave billeder ved at programmere - i modsætning til blot at linke til allerede eksisterende billeder.
jeg tror faktisk jeg har fundet løsningen. Jeg laver 2 billeder. Et af alle 5 stjerner i gul og et i gråt. Så starter jeg en tabel i billedets fulde bredde og højde og sætter billedet i gråt ind som baggrund. Derefter lægger jeg en ny tabel indeni den anden og lægger billedet i gul som baggrund. Derefter kan jeg jo bare sætte en funktion til at bestemme bredden af den inderste tabel. Jo mindre bredde jo mere kan man se af det grå og jo mindre af det gule.
function GetRating(OID) sql = "SELECT Avg(Ratings.ARating) AS GennemsnitOfARating FROM Ratings GROUP BY Ratings.OID HAVING (((Ratings.OID)=" & cint(OID) & "));" Set RecRating = DB.Execute(sql) if not RecRating.eof then numberofRatings = round(RecRating("GennemsnitOfARating"))
end if
end function
GetRating OID PraecisRating = round(RecRating("GennemsnitOfARating"),"3") Gange = 40 Pixel = PraecisRating * Gange %>
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.