20. marts 2003 - 08:19Der er
19 kommentarer og 2 løsninger
Søjlediagram
Jeg er løbet ind i et lille problem. Jeg skal have lavet nogle søjler hvor hver søjle afspejler antal point. Point kan både være positiv og negativ. Hvis point er negativ skal søjlen selvfølgelig vende nedad. Jeg har fået den til at vise søjler når de er positive, men negativ der går det helt i kage. Der skal ikke anvendes diagramkomponent, idet kode kommer til at ligge på mange forskellige servere.
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Jeg har før med succes benyttet html tabeller og fyldt dem med farve afhængig af værdien.
Dvs. du opretter en tabel som sådan:
<table> <tr>
<% IF værdi = negativ Then %> <td bgcolor="#ff0000" width="<% dynamisk ifht. din værdi %>"> </td> <% ELSE %> <td bgcolor="EN anden farve"> </td> <% END IF %>
<% IF værdi = positiv Then %> <td bgcolor="#00ff00" width="<% dynamisk ifht. din værdi %>"> </td> <% ELSE %> <td bgcolor="EN anden farve"> </td> <% END IF %>
</tr> </table>
Lidt simplificeret, men jeg håber du forstår hvad jeg mener :-)
Denne liggger ned, men konceptet er det sammen ved lodrette. Dette virker og er virkelig simpelt og virker derfor også i alle browsere.
Du kan evt. vælge at benytte en ligge gif og så strække den...
Den viser jo blot en anden farve når søjlen skal være negativ eller positiv. Det jeg er ude efter er at når værdien er positiv skal søjlen bevæge sig opad eller til højre. Er værdien negativ så skal søjlen bevæge sig nedad eller til venstre. Altså alt efter om det er vandrette eller lodrette søjler jeg anvender. Ligesom når man ser en rigtigt diagram med x,y
<td bgcolor="#00ff00" width="<% dynamisk ifht. din værdi %>"> </td>
Værdien som du sætter inde i width vil jo ekspandere (få den til at bevæge sig op eller ned til venstre eller til højre) td.
Den værdi har beregnet søjlerne skal flytte sig efter skal du indsætte der. DVs. response.write dinværdi inde i width. Du skal evt. benytte en faktor så søjlerne for den rigtige størrelse. Eks.: dinværdi * 10
Det skal selvfølgelig være absolute tal! Du vælger et punkt på din side som udgør 0 herfra udvide du op og ned med absolute tal det vil således fungere som et søjlediagram.
........|
eller
|.........
Det virker! Jeg ved det jeg har brugt det mange gange til at vise den slags grafik i gamle netscape browsere. Men som jeg også skrev i mit første indlæg kan man også benytte en gif som strækkes henholdsvis. Som desuden vil fungere på samme måde...Du havde jo hellere ikke ikke tænkt dig at skrive :<img src="billede.gif" height="-13"> vel? :-)
Så har jeg fået det lavet, men det er lodrette søjler. Det fungere udemærket, men det ville være kanon med vandrette søjler istedet for. Er der en af jer 2 der lige har en løsning på dette?
Billedet "blank.gif" har samme farve som din baggrund. Farve.gif har en anden farve.
Ved at kombinere de to billeder kan du let lave negative vandrette søjler. Eks. 1 angiver en positiv værdi på 100 Eks. 2 angiver en negativ værdi på 130 Eks. 3 angiver en negativ værdi på 180
Nu kan jeg husker hvad problemet med giffer er...de er længere om at loade. Frem for den rene html. Løsningerne er i princippet ens, du skal nok bare teste hvad der virker bedst for dig. Fordelen ved htm er at du kan benytter mange forskellige farver dynamisk uden at skulle lave små giffer i det uendelige. Det kunne f.eks. være at du havde lyst til at have et interval fra 10-20 som skulle være gul og et andet fra 20-30 blåt osv osv. Hvis værdien er en sammensætning af flere værdier.
Jeg har opdaget at jeg har skrevet forkert kl. 11:26:42. Det er med vandrette søjler jeg har lavet og det fungere nemlig. Men det er de lodrette søjler jeg har problemer med...det må i undskylde ;-)
<table> <% IF værdi = positiv Then %> <tr> <td bgcolor="black" height="5"></td> </tr> <% End IF %> <% IF værdi = negativ Then %> <tr> <td bgcolor="black" height="5"></td> </tr> <% End IF %> </table>
Jeg tror nu ikke et højkomprimeret gif-billede på 1x10 pixels tager længere tid at lægge i cachen end en halv side html-tags. Desuden er der jo den fordel ved billeder, at du f.eks. kan lave dine grafer til runde pinde eller stiblede linier.
Ikke for at nedgøre din løsning, krsk. Jeg foretrækker det bare selv sådan ;)
Jeg har lavet begge :-) Jeg kan lide begge, men jeg ville bare forsøge at forklare leasing fordele og ulemper. Men >good point< med striperne og den ekstra grafik! Så har han lidt at vælge mellem.
Så bruger du den første løsning med vandrette TD'er men du benytter <height> istedet for width. Så vil de ændre størrelse opad.
Måske skulle du finde en guide til html tabeller, eller bruge MS Frontpage til at lave tabellerne og kopiere dem over i det program du sidder med, så er det nemmere at overskue TD og TR i store mængder :-)
Her er et eksempel, jeg har smækket styles på ret hurtigt så der er nok nogle af dem som er overflødige, men prøv dig frem og find det du bedst kan lide:
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.