Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [VB.NET] Raportit treeview checkboxeilla

kSiit [19.12.2011 21:06:22]

#

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.

neau33 [20.12.2011 09:57:41]

#

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 Sub

kSiit [09.01.2012 11:02:10]

#

Kiitoksia!
Sainkin toimimaan, tuosta vaan arraylla checkatut nodet, joinattiin, joista saatiinki sql -lause, jolla täytettin datasetin datatable, jota käytin raportin lähteenä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta