Array/måneder/diagram

Tags:    asp

Hejsa. jeg er igang med at lave et diagram over ordre i kr. pr. mdr. problemet er min select sætning ikke viser de mdr. hvor der ikke har været nogen ordre. så har forsøgt lidt selv
en for løkke der løber fra 1 til 12
hvis i er ligmed resultatet skal den udskrive et billedet hvor jeg har angivet højden med resultatet, hvis ikke skal den udskrive intet her. jeg bruger getRows funktionen til at få data ud. den melder en fejl der siger Subscript out of range: '11'...

**********FØRSTE KODE STUMP****************
resultat er et array, som rs ligger i. hentes ved hjælp af følgende kode "resultat = rs.getrows()"


videre...
'udskrivning af rs felt ”1” og resultat ”i”
response.write resultat(1,i)

************2.KODE STUMP******************'
for i = 1 to 12

%><td height=150 align=center valign=bottom bgcolor="#fffaf0"><%


If i=resultat(1,i) Then %>
<a href="<%response.write resultat(4,i)%>"title="året <%response.write resultat(3,i)%>">

<!-- ganger med 10 for at få en sum til diagram altså højden på billedet-->
<img src="/images/sta.gif" height="<%response.write resultat(1,i) %>"width=15 border="0"></a>

<%
Else
%>intet her<%
End If

next




7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Noget i denne her stil, ret selv småfejl (bruger ikke ASP).


************2.KODE STUMP******************'
dataIndex = 1;
for i = 1 to 12

%><td height=150 align=center valign=bottom bgcolor="#fffaf0"><%


If i=resultat(1,dataIndex) Then %>
<a href="<%response.write resultat(4,i)%>"title="året <%response.write resultat(3,i)%>">

<!-- ganger med 10 for at få en sum til diagram altså højden på billedet-->
<img src="/images/sta.gif" height="<%response.write resultat(1,i) %>"width=15 border="0"></a>

<%
dataIndex = dataIndex +1
Else
%>intet her<%
End If

next

************2.KODE STUMP******************'

Så mangler du bare at teste antallet af resultater, og det bruger du så også i din if ... så du ikke tester i=resultat(1,dataIndex) hvis dataIndex > antalResultater.
Ved ikke lige hvordan man får antal resultater i asp, men det kan vel slås op vil jeg tro.




Hej igen Chris.

Du indexerer ud over de data der findes i dit dataset, i dit forsøg på at finde ud af om der er data.

Altså, hvis du f.eks. har 10 resultater, kunne være månederne (1,2,3,4,6,7,8,9,10,12) har du kun 1-10 i dit data sæt, men du tester også 11 og 12, dvs du når ikke længere end til 11 for resultat 11 findes ikke.

Løsningen er at du har et loop fra 1-12 (som du har det nu) og så bruger du en tæller som du kalder dataIndex som starter med 1, og hver gang der er match mellem resultat(1.dataIndex) og i, viser du data og tæller dataIndex frem med en.

På den måde skulle du ikke komme for langt, med mindre at der slet ingen resultater var, og det må du sp lige teste for inden du går ind i dit loop.

Håber det hjælper lidt.



kunne du komme med et forslag til hvordan det skal gøres??




nope aou of range 8 melder den, der er 6 resultater i db. så forstår ikke lige noget. husk resultat er et array,derfor 0 - 11

dataIndex = 0
for i = 0 to 11
%><td height=150 align=center valign=bottom bgcolor="#fffaf0"><%


If i= resultat(1,dataIndex) Then %>
<a href="<%response.write resultat(1,i)%>"title="året <%response.write resultat(1,i)%>">
<!-- ganger med 10 for at få en sum til diagram altså højden på billedet-->
<img src="/images/sta.gif" height="<%response.write resultat(1,i) %>"width=15 border="0"></a>

<%
dataIndex = dataIndex +1
Else%> intet her</td> <%

End If

next


next




SVAR PÅ NEDESTÅENDE:

det gør jeg længere oppe med denne sætning
<%'antal resultater(rækker) der blev returneret
matches = ubound(resultat, 2)

hvor ville du sætte det ind??
************2.KODE STUMP******************'

Så mangler du bare at teste antallet af resultater, og det bruger du så også i din if ... så du ikke tester i=resultat(1,dataIndex) hvis dataIndex > antalResultater.
Ved ikke lige hvordan man får antal resultater i asp, men det kan vel slås op vil jeg tro.





denne her spytter de første rs ud, men det sidste mangler.


dataIndex = 0
for i = 0 to 11
%><td height=150 align=center valign=bottom bgcolor="#fffaf0"><%

If dataIndex < matches then

If i+1= resultat(1,dataIndex) Then %>
<a href="<%response.write resultat(1,i)%>"title="året <%response.write resultat(1,dataIndex)%>">
<!-- ganger med 10 for at få en sum til diagram altså højden på billedet-->
<img src="/images/sta.gif" height="<%response.write resultat(1,dataIndex) %>"width=15 border="0"></a>

<%
dataIndex = dataIndex +1
Else%> intet her</td> <%
End If
Else%> intet her</td> <%

End If
next



oki tak for hjælpen. fik det selv på plads. så skal jeg bare ha rettet sql sætningen til. da den viser flere resultater end den burde. noget med at den ikke lægge månederne sammen, men vise én ordres total. nå men tak og hop over på sql hvis du vil, har oprettet et indlæg



t