webForumDet fria alternativet

Hur jämföra arrays och skriva ut data rätt?

ASP

2 svar · 217 visningar · startad av solbulle

Medlem sedan mars 20015 287 inlägg
Frågan#1

Med risk för lite dubbelpost.. men frågan är annorlunda.

Jag har denna funktion som "loopar" ut fakta ur en db.
Jag vill kombinera den med en liknande sats som hämtar fg. års siffror och sen sätta in dom i en htmltabell.

Mitt problem ligger i hur gör jag för att matcha veckorna?
Om jag har valt v 1-10 år -99 och samma period fg år kommer inte raderna att matcha OM det saknas data fg år, jag önskar få in ett tomrum i så fall. Hur göra?

Detta hämtar ett års siffror:

<% 
Set cADO = Server.Createobject("ADODB.Connection")
Set rADO = Server.Createobject("ADODB.Recordset")
sDSN = "databasXL"
cADO.Open sDSN

sSQL = "select Mid(VECKA, 6,2), SUM(BELOPP) from kundtabell where VECKA >= '1999-01' and VECKA <= '1999-15' and kundtabell.KNDNR = '100' Group by VECKA"

    Set rADO = cADO.Execute(sSQL)
    
    If Not rADO.EOF Then
	myArray = rADO.GetRows()
    End If
	%>

Här hämtar jag fg års siffror: (hur smart det nu är att göra på detta sätt?)

<% 
sSQL = "select Mid(VECKA, 6,2), SUM(BELOPP) from kundtabell where VECKA >= '1998-01' and VECKA <= '1998-15' and kundtabell.KNDNR = '100' Group by VECKA"

    Set rADO = cADO.Execute(sSQL)
    
    If Not rADO.EOF Then
	myArray2 = rADO.GetRows()

    End If
	%>

Här skrivs det hela ut, det är här det inte fungerar:


<table border = "1">
<tr><td> Veckonr: </td><td> Belopp i år</td><td> Veckonr fg år: </td><td> Belopp fg år</td></tr>

<% For i = 0 To Ubound(myArray,2) %>

<td>	<% response.write myArray(0,i)%>
</td><td><% response.write myArray(1,i)%>
</td><td><% response.write myArray2(0,i)%>
</td><td><% response.write myArray2(1,i)%>
</td></tr>
<% next 
  cADO.Close %>

------------------
/solbulle

[Redigerat av solbulle den 06 jul 2001]

[Redigerat av solbulle den 06 jul 2001]

Medlem sedan juni 200032 967 inlägg
#2
<% [b]if isArray(myArray) then[/b]
For i = 0 To Ubound(myArray,2) %>

<td> <% response.write myArray(0,i)%>
</td><td><% response.write myArray(1,i)%>
</td><td><% response.write myArray2(0,i)%>
</td><td><% response.write myArray2(1,i)%>
</td></tr>
<% next 
[b]else
' skriv ut tomt i stället
end if[/b]

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

[Redigerat av @nders den 07 jul 2001]

Medlem sedan mars 20015 287 inlägg
#3

Hm, jag får inte det att fungera, om "myArray" är tom skriver den inget.
Men jag vill ha ut det som finns i myArray, och om jag då får ut tex v 1,2,3,4,5,6
Vill jag på samma rad i htmltabellen få ut föregående års v 1,2,3,4,5,6.
Saknas då tex v 1-2 fg år vill jag att det inte ska skrivas något i den cellen -alltså skall årets värde stå, men är det tomt idatabasen på fg år skall den sas hoppa över - skriva inget i motsvarande cell.
Nu blir det ju som så att myArray2 töms på sitt innehåll från början till slut och tar datan i arrayen slut får jag ett felmedelande:

Körningsfel i Microsoft VBScript fel '800a000d'

Inkompatibla typer: 'myArray2'

/databas/testpilot_fg.asp, rad 36 '

(Rad 36 är där myArray2 skrivs ut.)
Finns det något sätt att jämföra värdena på? Så att den kollar att veckonumren matchar?

(Snacka om att ha tagit sig vatten över huvudet..)

[r]stavfel mm[/r]
------------------
/solbulle

[Redigerat av solbulle den 07 jul 2001]

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