webForumDet fria alternativet

diagram typ...

ASP

16 svar · 298 visningar · startad av Cactuz

Medlem sedan okt. 2001670 inlägg
Frågan#1

hur gör man ett diagram i asp? en sån som ibland visar resultat i en omröstning...

Medlem sedan feb. 20012 412 inlägg
#2

Hej, utgå från 100 %

1 % motsvarar en bild med en tjocklek på 1 px. Gör uträkningen och tex:

60 / 100 = 0.60

vilket motsvarar 60 %, alltså ska bilden loopas ut 60 ggr.

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan okt. 2001670 inlägg
#3

hmm... kan du förklara lite bättre? :)

är inte bäst på asp... kan du visa hur scriptet ska se ut om den ska visa en stapel på 60% som ska "betyda" 320 o en på 90% som betyder 560? då kan jag lista ut hur det funkar :)

[Redigerat av Cactuz den 25 jan 2002]

Medlem sedan feb. 20012 412 inlägg
#4

Okey vi startar med lite matematik.

utgår från ett röstnings-script:

wF har fått 320 röster vilket motsvarar 60% av alla röster, antal röster totalt blir då:

1,6 * 320 = 512

detta innebär att stapeln wF ska ha en bredd på 60 pixlar.

dim intTotal
dim intVotes
dim intImageWidth

intTotal = RS("intTotal")
intVotes = RS("intVotes")

intImageWidth = Round((intVotes/intTotal)*100, 0)

<img src="bild.gif" width="<%=intImageWidth %>">

ungefär så här, har du många olika alternativ får du loopa igen uträkningen.

RED: bild.gif är 1 px bred

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

[Redigerat av jorgen den 25 jan 2002]

Medlem sedan okt. 2001670 inlägg
#5

den ska visa statistik över hur måsga besökare jag har olika datum... men jag får bara ut det senaste datumet...

<%
Do Until rs.EOF
%>

<%

SQL = "SELECT * FROM totalt"
Set rs = db.execute(SQL)

besok = "SELECT * FROM besok"
Set RecSet = db.execute(besok)

dim intTotal
dim intVotes
dim intImageWidth
intTotal = RS("besok")
intVotes = RecSet("antalbesok")
intImageWidth = Round((intVotes/intTotal)*100, 0)
%>

<%=RecSet("Datum")%><img src="kant.gif" height="10" width="1"><img src="bla.gif" height="10" width="<%=intImageWidth %>"><img src="kant.gif" height="10" width="1"><%=RecSet("Antalbesok")%>

<%
rs.MoveNext
Loop
%>
Medlem sedan dec. 200012 464 inlägg
#6

Vilka kolumner innehåller tabellerna besök och totalt och vad finns det för data i dom.

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001670 inlägg
#7

i besok ligger antalbesok och datum... där ligger hur många besök det är ett visst datum... i totalt ligger besok som är summan av alla antalbesok... man kan säkert göra detta smidigare genom att lägga ihop alla antalbesok men jag vet inte hur...

Medlem sedan dec. 200012 464 inlägg
#8
<%
dim intTotal,besok,intVotes,intImageWidth,rs
sql = "SELECT total FROM totalt"
Set RS = db.execute(sql)
intTtotal = rs("total")
rs.close

SQL = "SELECT * FROM besok order by datum desc"
Set rs = db.execute(SQL)

Do Until rs.EOF
intVotes = RS("antalbesok")
intImageWidth = Round((intVotes/intTotal)*100, 0)
%>
<% =RS("Datum")%><img src="kant.gif" height="10" width="1"><img src="bla.gif" height="10" width="<%=intImageWidth %>"><img src="kant.gif" height="10" width="1"><%=intVotes%>

<%
rs.MoveNext
Loop
%>

Det är otestat, och så vet jag inte vad alla kolumnnamn heter.

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001670 inlägg
#9

jag ändrade alla kolumnnamn

jag får felmeddelandet:

Körningsfel i Microsoft VBScript (0x800A000B)
Division med noll

det står att det ska vara fel här

intImageWidth = Round((intVotes/intTotal)*100, 0)

[Redigerat av Cactuz den 26 jan 2002]

Medlem sedan dec. 200012 464 inlägg
#10

Då ligger det 0 i den första posten du får från tabellen totalt, men det finns poster i tabellen besok.

Finns det flera poster i tabellen totalt så att du måste ha något villkor?

Du borde i och för sig ha en kontroll innan du går in i loopen

if clng(intTtotal) > 0 then
do until rs.eof
intVotes = RS("antalbesok")
intImageWidth = Round((intVotes/intTotal)*100, 0)
%>
<% =RS("Datum")%><img src="kant.gif" height="10" width="1"><img src="bla.gif" height="10" width="<%=intImageWidth %>"><img src="kant.gif" height="10" width="1"><%=intVotes%>

<%
rs.MoveNext
Loop
end if
%>

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001670 inlägg
#11

hmm.. samma fel meddelande.. o det ligger inte 0 nånstans

Medlem sedan feb. 20012 412 inlägg
#12

Hej, värdet av intVote eller intTotal måste vara 0 på något ställe.

red: stavar som en kratta

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

[Redigerat av jorgen den 26 jan 2002]

Medlem sedan okt. 2001670 inlägg
#13

Nu fixade det sig... intTotal hette intTtotal... jag fick oxå ta bort kontrollen för med den funkade det inte

[Redigerat av Cactuz den 26 jan 2002]

Medlem sedan okt. 2001670 inlägg
#14

men det är ytterligare ett problem... nu är den i px per nr... allså.. om det är 40 så är stapeln 40px lång... jag vill ju att den som har högst värde ska vara width="100%"

Medlem sedan okt. 2001670 inlägg
#15

det fixade sig tror jag :)

Medlem sedan okt. 2001670 inlägg
#16

nix.. det gjorde den inte... om värdet är typ 2000 så blir stapeln väldigt lång :)

Medlem sedan feb. 20012 412 inlägg
#17

Matematiskt sett kan den bara bli 100 px under förutsättning att intVotes inte är större än intTotal, vilket inte borde vara möjligt.

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

256 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)