C Cactuz Medlem sedan okt. 2001 670 inlägg Frågan 25 jan. 2002 20:18 #1 hur gör man ett diagram i asp? en sån som ibland visar resultat i en omröstning...
J jorgen Medlem sedan feb. 2001 2 412 inlägg 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 :.
C Cactuz Medlem sedan okt. 2001 670 inlägg 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]
J jorgen Medlem sedan feb. 2001 2 412 inlägg 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]
C Cactuz Medlem sedan okt. 2001 670 inlägg 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
%>
L LarsG Medlem sedan dec. 2000 12 464 inlägg Vilka kolumner innehåller tabellerna besök och totalt och vad finns det för data i dom.
------------------
essentitia preter non sans multiplicandum
C Cactuz Medlem sedan okt. 2001 670 inlägg 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...
L LarsG Medlem sedan dec. 2000 12 464 inlägg <%
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
C Cactuz Medlem sedan okt. 2001 670 inlägg 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]
L LarsG Medlem sedan dec. 2000 12 464 inlägg 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
C Cactuz Medlem sedan okt. 2001 670 inlägg hmm.. samma fel meddelande.. o det ligger inte 0 nånstans
J jorgen Medlem sedan feb. 2001 2 412 inlägg 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]
C Cactuz Medlem sedan okt. 2001 670 inlägg 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]
C Cactuz Medlem sedan okt. 2001 670 inlägg 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%"
C Cactuz Medlem sedan okt. 2001 670 inlägg det fixade sig tror jag :)
C Cactuz Medlem sedan okt. 2001 670 inlägg nix.. det gjorde den inte... om värdet är typ 2000 så blir stapeln väldigt lång :)
J jorgen Medlem sedan feb. 2001 2 412 inlägg 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 :.