Skip to main content

AccessTr.neT


Değişik Bir Treeview Uygulaması

Değişik Bir Treeview Uygulaması

#13
buda seçili noda kadar olan nodları açma kodu
Kod:
Private Sub Komut40_Click()
Dim sd As Integer
     Dim Node As MSComctlLib.Node
      sd = TreeView1.Nodes(TreeView1.SelectedItem.Index).Index
Dim i As Integer
   Dim strNodes As String
   For i = 1 To sd
  With TreeView1.Nodes(i)
       .Expanded = True
  Call sec
  End With
   Next i
End Sub

4.sorunda halledilmiş oldu
meşhur çin atasözü  "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Cevapla
#14
Merhaba,

Şimdi uyguluyorum verdiklerinizi. Bitince mesajı güncelleyeceğim, ekle. Teşekkürler.
Başlangıçta seçimi eşitleme ve id aktarımı oldu.

Icon_rolleyes Fakat, Seçimi Aç kodu çalışmadı, ya da çalıştı ama ben farklı bir şey demek istedim. Diyelim ki: Pansiyon > Erkek > Birinci kat oda dalını seçtim. id'si = 38'dir. Tüm dallar açık, kapalı veya seçimin yanında birkaç dal daha açık olabilir.. Seçimi Aç'a tıkladığımızda sadece Pansiyon dalı ve seçim olan 38 id'ye kadar dalların açık olmasını, bu dala giden dal dışında aynı gurup altındaki dalların bile kapalı olmasını istiyorum. Tüm TreeView'de sadece seçime giden dallar açık gerisinin kapalı olmasını istiyorum. Bu sayede hangi birim üzerinde işlemler yapılıyor ya da yeni birim eklenince konumu nedir görsel olarak gösterecek ve emin olmamızı sağlayacak.

Seçimi Aç kodunu da fonksiyon olarak yazdım, çünkü her kayıt gezintisinden sonra TreeView de değişecek ve dönüt verecek bu sayede. Ayrıca yeni kayıt eklemekten vazgeçince son incelenen kayda geri döndüreceğimden bu kodu fonksiyon olarak kullanmak istedim.

Teşekkürler.
.zip Birimler.zip (Dosya Boyutu: 43,58 KB | İndirme Sayısı: 19)
Son Düzenleme: 20/07/2009, 16:03, Düzenleyen: mehmeser.
Cevapla
#15
gelinen kaydın nodunu açma olayıda eklendi ve örnek ektedir şimdi ben sizin bir önceki sorunuz yanlış anladım siz ilgili nodların tümünün açılamsını istiyormuşsunuz

neyse onuda yaparız şu anda kayıt gezinti tuşları ile gezinirken hangi kayıtta iseniz o nod açılır şekliörnektedir

ve onuda yaptık denemeyi pansiyon üzerinde yapın ondaki ali ye tıkladıktan sonra seçimi aça tıklayın


mantık şöyle çalışyor önce nodun ilk child ini buluyor ve onu açıyor eğer başka child yoksa kod duruyor şayet varsa bir sonraki childi açmak için diğer child açma kodu çağırıyor

gerçekten bende önce bu ne işe yarayacak diye merak ediyordum ancak düşünsenize onun childi onun childi derken bir sürü birbiri üzerine açılan child ler var işte onları yani seçilen nodun childlerini topluca açmaya yarıyor
.rar Birimler.rar (Dosya Boyutu: 78,22 KB | İndirme Sayısı: 31)
meşhur çin atasözü  "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Cevapla
#16
Merhaba,

Örneğinizi hayranlıkla inceledim. Tam istediğim şey idi. Gayet güzel çalışıyor. İlk başta modül eklenince örneğe sandım işler yine anlamayacağım şekilde karışacak. Ama modül içindekiler de gayet anlaşılır ve öz idi.

Zaten bir önceki isteğimle bu yaptığınız aynı idi. Burdaki kodu Seçimi Aç düğmesine uyarladım. Aynı görevi görüyor:
Kod:
Private Sub Komut40_Click()
Treeviewara (Me.BirimId)
End Sub

Bu özelliği yeni kayıt eklendikten sonra da çalıştıracağım, nereye eklenmiş hemen gösterecek.

Şu an TreeView'de seçili kaydı buldurmakla ilgili sorun kalmadı Eşref Bey, teşekkür ediyorum. Rayof

Seçili dal silindiğinde ona ait dalların tümünü silsin şeklinde uyarlayabilir misiniz? Önceki örneğinizde ara dalları silince ya da çok alt dalı olanlarda hata vermişti. Ben de merakla bekliyorum nasıl bir döngü olacak bu iş? Ohmy

Önceden bahsettiğiniz sürükleme yöntemi bu örneğe de uygulanabilir mi? Bir dalı başkasının üzerine sürükleyince sürüklenen dalın BirimUstId'si yeni dalın BirimId'si olacak. Sanırım bu şekilde tüm alt dalları da taşınmış olur. Icon_rolleyes

Sağlıkla, esen kalınız.
Cevapla
#17
bu koduda yazarsanız aynı menüler gibi üzerine mouse okunu getirdikçe kendiliğinden seçim gerçekleşir ve expand olanlar otomotik açılır

Kod:
Private Sub TreeView1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)

Dim esr As Node
Set esr = TreeView1.HitTest(x, y)
    
If Not esr Is Nothing Then
    esr.Selected = True
End If
    

End Sub


yalnız unutmadan label edit manuel olacak
sayın mehmet eser kardeş birde buna drag drop uygularsak işin cılkı cıkacak sadece bir formda bir sürü kod olacak ancak birz ara vermek zorundayım sınavım var ona çalışmak zorundayım çalışmaktan sıkıldığım bir arada yapabilirim

birde değişik bir uygulma bu uygulamadada treeview de üzerinde gezdiğiniz kayda tıklamadan formda aynı anda gösteriyor
Kod:
Private Sub TreeView1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)
Dim nodSelected As MSComctlLib.Node
Set nodSelected = Me.TreeView1.SelectedItem
Dim Node2 As Node
Set Node2 = TreeView1.HitTest(x, y)
If Not Node2 Is Nothing Then
    Node2.Selected = True
End If
If nodSelected.Key Like "AZ*" Then
Dim rs As Object
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[PERSONELNO] = " & Str(Nz(Mid(nodSelected.Key, 3), 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    rs.Close
        Else
     End If
  
End Sub

meşhur çin atasözü  "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Son Düzenleme: 21/07/2009, 16:19, Düzenleyen: esrefigit.
Cevapla
#18
Merhaba,

Sağolun. Çok güzel oldu. 2. Koddaki fare üzerine gelince kayıt eşitleme gezmek için ideal, düzenleme modu için kovalamaca havası olacak. Duruma göre mutlaka eklenmesi gerken güzel bir kod. Herşeyiyle tam takır bir TreeView başvurusu oldu sayenizde. Bu derece başarılı ve işlevsel bir örnek yabancı forumlarda bile yok bu konuda.

Drag konusunda, evet sizi yordum farkındayım. En azından silme olayını yakın zamanda halledebilirseniz memnun olurum. Dediğiniz drag şimdi elzem değil ama olursa profesyonel uygulamalarda olduğu gibi konforlu bir kullanım sunacak.

Sınavınızda başarılar dilerim. Sıvanı etkileyecekse silme olayı da bekleyebilir boş zamanınızı, beklerim daha iyi olur.

Böyle bir başvuru hazırladığınız için Allah razı olsun. Sağlıkla kalın.
+rep
.zip Birimler.zip (Dosya Boyutu: 381,38 KB | İndirme Sayısı: 33)
Son Düzenleme: 21/07/2009, 17:51, Düzenleyen: mehmeser.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da