Hei taas!
Eli aikaisemmin kysyin apua treeview:n täyttämiseen, joihin foorumin guruilta sainkin vastauksen, nyt ongelmana olisi, että onko mahdollista ajaa nodejen checkboxien kautta raportti?
Eli nodet menee:
-Keskus1
---------Lähtö1
---------Lähtö2
-Keskus2
---------Lähtö3
Jokaiselle keskus-lähtö kombinaatiolle on annettu oma uniikki tunnus, laitepaikka.
Haluaisin ajaa raportin esimerkiksi valitsemalla lähdöt 1 ja 3, jolloin saisin luettelon lähtöjen 1 ja 3 laitteista, jotka sijaitsevat tietokannassa laitepaikkojen alapuolella, erillisessä taulussa.
Eli ohjelmistona löytyisi Crystal Reports 9 ja VS2005, kannat Access -kantoja, eli siis käytän monia kantoja, mutta kannat ovat rakenteeltaan samanlaisia.
Moi kSiit!
tutki saatko oheisista esimerkeistä ideoita...
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hakusana(1, 0) As String, cnt As Integer = -1
For i As Integer = 0 To treeView1.Nodes.Count - 1
For Each node As TreeNode In treeView1.Nodes(i).Nodes
With node
If .Checked Then
cnt += 1
Redim preserve hakusana(1, cnt)
hakusana(0, cnt) = .Parent.Text
hakusana(1, cnt) = .Text
End If
End With
Next node
Next i
If hakusana(0, 0) <> String.Empty Then
For i As integer = 0 To hakusana.GetUpperbound(1)
'testi...
MsgBox(hakusana(0, i) + _
Environment.Newline + _
"----" + hakusana(1, i))
Next
End If
hakusana = Nothing
End Sub'tai jokainen valinta erikseen suoraan tapahtumasta
Private Sub TreeView1_AfterCheck(ByVal sender As Object, _
ByVal e As TreeViewEventArgs) Handles TreeView1.AfterCheck
Dim hakusana(1) As String
Try
If e.node.Checked Then
hakusana(0) = e.node.parent.text
hakusana(1) = e.node.text
End If
Catch ex As Exception
End Try
If hakusana(0) <> String.Empty Then
'testi...
MsgBox(hakusana(0) + _
Environment.Newline + _
"----" + hakusana(1))
End If
hakusana = Nothing
End SubKiitoksia!
Sainkin toimimaan, tuosta vaan arraylla checkatut nodet, joinattiin, joista saatiinki sql -lause, jolla täytettin datasetin datatable, jota käytin raportin lähteenä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.