[Vbscript]Probleem met recordset (niet de juiste data)

Pagina: 1
Acties:

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
hallo, ik wil met owc chart een grafiek maken in vbscript. Nu is me dit allemaal gelukt en was ik bezig met een tweede grafiek die de afwijking weergeeft tussen de lijnen van de eerste grafiek. Dus de data voor de lijnen A en B haal ik uit de database. Ik trek ze van elkaar af (gewoon A-B), dit gebeurd per record. En dat wil ik nu in een grafiek weergeven.

Nu is het me al wel gelukt om 3 arrays te maken, de eerste van de datum en tijd van een record (hoort onder de x-as te komen), de tweede van de waarde van het verschil (A-B), en de derde van bij welke reeks het hoort.
Ik kan deze arrays naast elkaar weergeven en de goede waarden komen eruit. Echter het lukt me niet om deze arrays te verbinden aan een owc chart. Het gaat om het volgende stukje code:

Dit is voor het aanmaken en vullen van de recordset:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open conectiestring
    Set rs = Server.CreateObject("ADODB.RecordSet")
    selectie = "Select blaat from blaat etc etc)"
    rs.open selectie, conn

i=-1
ReDim fx(i)
ReDim fy(i)
ReDim fserie(i)

While not rs.eof

'nu worden hier de arrays gevuld, lang stuk code, niet relevant want het werkt

wend
conn.close


En vervolgens maak ik hier de chart aan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'Add a Chart with a legend to the Chartspace
'-------------------------------------------------------------

set m_cspace = server.CreateObject("OWC.Chart")
set objChart = m_cspace.Charts.Add()
set c = m_cspace.Constants

marker = Request.QueryString("marker")
if marker = "on" then 
        objChart.Type = c.chChartTypeSmoothLineMarkers
    else 
        objChart.Type = c.chChartTypeSmoothLine
end if

objChart.HasLegend = True

'set the Chartspace's data source to the Recordset and add the
'reeks field for series names, the fictievedatum field for the chart's
'categories and the element field for the chart's values
'-----------------------------------------------------------------------

set m_cspace.DataSource = rs
objChart.SetData c.chDimSeriesNames, 0, fserie(i)
for each objSeries in objChart.SeriesCollection
    objChart.SetData c.chDimCategories, 0, fx(i)
    objChart.SetData c.chDimValues, 0, fy(i)
        Set dl = objSeries.DataLabelsCollection.Add()
        dl.HasValue = labels
        dl.Font.Size = 7
        dl.Position = c.chLabelPositiontop
next


Ik snap dat in de recordset alleen de kollommen zitten, maar ik moet toch op de een of andere manier een datasource opgeven. Want als ik dat weghaal werkt het helemaal niet meer (nu krijg ik gewoon een lege grafiek). Wie heeft een goed idee en kan mij helpen? Het liefst natuurlijk met code, maar met gewoon een suggestie ben ik ook al heel blij :)

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Je zou kunnen proberen om een Recordset aan te maken ipv een array. Ik weet dat het kan alleen niet precies hoe. Ik denk dat Google hiervoor je vriend is,

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
kan je niet meerdere arrays in een recordset maken...
Ik heb wel gevonden hoe je nieuwe collumns moet aanmaken in een disconnected recordset, maar niet hoe je die moet vullen

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
DarkShadow schreef op 11 mei 2004 @ 15:33:
kan je niet meerdere arrays in een recordset maken...
Ik heb wel gevonden hoe je nieuwe collumns moet aanmaken in een disconnected recordset, maar niet hoe je die moet vullen
Je kunt naast kolommen dus ook rijen aanmaken.
Procedure:
rs creeren
kolommen aanmaken

dan steeds een nieuwe rij aanmaken
kolomwaarden instellen (rs.Fields("kolomnaam").Value = "newvalue")

Maar eigenlijk vraag ik mij af of je je query niet zodanig kan maken dat je uberhaupt de data al op de juiste manier in je rs krijgt?

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
Kan je de waarden uit een database dan ook al bewerken in je query?

We moeten gewoon het verschil tussen 2 kollommen weten namelijk?

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Ja dat kan, misschien moet je eens kijken naar de mogelijkheden van SQL. :)

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
haha, ik zie het ineens, werk nu al een flinke tijd met sql en wist ook dat je wel kon vermenigvuldigen met gewoon een waarde. Maar niet dat je gewoon "select veld1 - veld2 as bias from tabel" kon doen zegmaar. Nou dan doe ik dat maar ff. Zonde van al die code zeg, zag er wel tof uit :). Als iemand nog een oplossing heeft voor het bovenstaande probleem hoor ik het alsnog graag :)
Pagina: 1