| |
VB.NET - FortgeschritteneTREEVIEW (DATENEINGABE) | | | Autor: ERBRU | Datum: 28.08.18 15:40 |
| OK das ist sicher schon mehrmals mein Anliegen gewesen, dennoch muss ich noch mal nachfragen.
wie kann ich das TreeView bei Mouseklick auf Node die dazugehörigen Daten anzeigen lassen!
oder über die Eingabemaske s. Bild Datendetails hinzufügen, bearbeiten?
Anzeigen:
https://picload.org/view/dlciilil/liefermangel_details_anzeigen.png.html
Erfassen, bearbeiten, entfernen:
https://picload.org/view/dlciilpl/liefermangelerfassen.png.html
Private Sub dtxInitialisieren()
'(nur benötigte Spalten)
dtx.TableName = "LMMaßnahme"
With dtx.Columns
.Add("ID", GetType(Integer)) 'falls eindeutige Schlüssel
' benötigt werden
.Add("Maßnahmedatum", GetType(Date))
.Add("Maßnahme", GetType(String)) 'eventuell Gettype(String)
.Add("Verantwortlich", GetType(String))
.Add("TerminStart", GetType(Date))
.Add("TerminEnde", GetType(Date))
.Add("erledigt", GetType(Date))
.Add("abgearbeitet", GetType(Boolean))
End With
'Frage: benötige ich diese Zeile noch?
dtx.PrimaryKey = _
New DataColumn() {dtx.Columns("ID")} 'Schlüssel ggf. einrichten
End Sub Private Sub init_TVLiefermangelverwaltung()
Dim Rootnode As TreeNode = Nothing
Trv.Nodes.Clear()
'Treeview-Knoten gemäß Datarelations erstellen
Dim nd_i, nd_k As TreeNode
Dim row_i, row_k As DataRow 'aktuelle Datarow in Schleife
Dim rel_i, rel_k As String 'Name der Datarelation
Dim col_i, col_k As Integer 'Index der anzuzeigenden Spalte im Treeview
Dim val_i, val_k As String 'anzuzeigender Daten-Wert im Treeview
For i As Integer = 0 To DSABLAGE.Tables("LMMELDER").Rows.Count - 1
row_i = DSABLAGE.Tables("LMMELDER").Rows(i)
col_i = 1
val_i = row_i(col_i).ToString
nd_i = GetNode(Trv.Nodes, val_i)
rel_i = DSABLAGE.Relations( _
"LMMELDER_LMINFORMATION").RelationName
For k As Integer = 0 To row_i.GetChildRows(rel_i).Length - 1
row_k = row_i.GetChildRows(rel_i)(k)
col_k = 2
val_k = row_k(col_k).ToString
nd_k = GetNode(nd_i.Nodes, val_k)
rel_k = DSABLAGE.Relations( _
"Liefermangel_Liefermangelmaßnahme").RelationName
'Speichern einer Referenz des Childrows-Array im Knoten
nd_k.Tag = row_k.GetChildRows(rel_k)
'zusätzlich: Text des Knotens erweitern
nd_k.Text = "Liefermangel: " & val_k
nd_k.ImageIndex = 1
nd_k.SelectedImageIndex = 3
Next k
Next i
Trv.ExpandAll()
End Sub | |
Re: TREEVIEW (DATENEINGABE) | | | Autor: ERBRU | Datum: 29.09.18 13:59 |
| kann mir da keiner helfen?
bin seit Wochen am verzweifeln, wuerde es aber gerne lernen verstehen.
Danke!!!!!!
mein Vorhaben ist:
ein Ablagearchiv fuer verschiedenes (Themen) zu realisieren
Ablageordner(Node) = Ordner-2018
Register(Node) = Woche 39-2018
in der Woche sind dann die Datuemer mit den details DGV, erfasstam: Thema: etc.
24.09.2018
24.09.2018
25.09.2018
usw.
Beitrag wurde zuletzt am 29.09.18 um 14:07:37 editiert. | |
Re: TREEVIEW (DATENEINGABE) | | | Autor: Franki | Datum: 07.10.18 02:07 |
| Hallo ERBRU
Zitat: | |
mein Vorhaben ist:
ein Ablagearchiv fuer verschiedenes (Themen) zu realisieren | |
Das schreit ja gradezu nach einer Datenbank.
Zitat: | |
Ablageordner(Node) = Ordner-2018
Register(Node) = Woche 39-2018
in der Woche sind dann die Datuemer mit den details DGV,
erfasstam: Thema: etc.
| |
So etwas kann man zur Ansicht machen nicht zur Speicherung der Datan selbst.
das V beideutet ja View, bzw. ansehen sowohl im TV als auch im DGV.
Einen Ordner für jedes Jahr / jede KW und dann auch noczh jeden Tag mit mehreren Einträgen kann man nur vernünftig in einer Datenbank verwalten. Sonst wird es sehr schnell unübersichtlich und kompliziert in der Programmierung.
Jeder Eintrag bekommt eine ID und nattürlich das Datum.
Über SQL Abfragen kann man dann die Steuerelemente zur Ansicht füllen, sei es nach Jahr, Monat, Tag oder was auch immer. (Da gibt es noch viel mehr Möglichkeien).
Ein TV und ein Grid arbeiten immer zusammen das ist auch beim Windows Explorer der Fall. Links die Struktur, rechts der Inhalt des ausgewählten Knotens. So solltest du das auch mnachen, das sind die User gewohnt und sie fnden sich dann auch in deiner Anwendung schnell zurecht. Und du vereinfachst dir die Programmierung.
Mit konkretem Code kann ich dir jetzt nicht helfen weil du erst mal die Datenbasis beschreiben solltest wie du die Daten verwaltest bzw. gespeichert hast.
Gruß
Frank | |
Re: TREEVIEW (DATENEINGABE) | | | Autor: ERBRU | Datum: 09.10.18 19:31 |
| Danke Franki,
werde dir das noch genauer zusammen fassen, speichern tue ich das in eine accdb bzw einem Dataset
mehr kommt gerne spćter, wenn du wirklich mags.
fšr heute ist bei mir erst mal schluss.
Melde dich | |
Re: TREEVIEW (DATENEINGABE) | | | Autor: Franki | Datum: 10.10.18 01:37 |
| Hallo,
es geht ja erst mal nicht um die Details deiner Daten und wie diese zusammen hängen sonders um Prinzip wie du an so etwas programmiertechnisch gesehen heran gehen kannst.
Für solche Fälle bei denen man etwas lernen möchte empfehle ich immer ein Minimalprojekt zu erstellen. mit ganz wenigen Testdaten.
Also du hast eine DB du weißt wie du auf diese zugreifen kannst. Also Minimalprojekt wäre z.B.
A, B, C und 1, 2, 3 sowie ein Text der den Eintrag beschreibt.
Damit kannst du experimentieren in der DB und dem Tree. Daraus würde z.B.
A
1 (Bemerkung)
2 (Bemerkung)
3
B
1
2
3 (Bemerkung)
usw. usw. Wenn du das hin bekommst (nur lesen) dann kannst du im nächsten Schritt anfangen den Bermerkungstext über ein Formular zu editieren. Danach geht es daran z.B. C hinzu zu fügen oder 4 oder was auch immer.
Um die Grundlagen zu erlernen (und das lohnt sich) sollte man mit solchen Minimalprojekten anfangen, dann läuft man auch nicht Gefahr die schon vorhandenen Daten irgendwie zu gefährden. Als Testprojekt aufsetzen, testen, testen, testen und wenn alles klapppt erst auf das eigentliche Projekt umsteigen.
Gruß
Frank | |
Re: TREEVIEW (DATENEINGABE) | | | Autor: ERBRU | Datum: 10.10.18 11:26 |
| OK, aber sind das nun mehr als eine Tabelle oder ist es eine Tabelle in der halt A,B,C... steht + Bemerkungen
also eine Tabelle in der DB? | |
Re: TREEVIEW (DATENEINGABE) | | | Autor: Franki | Datum: 13.10.18 00:02 |
| Hallo,
das Beispiel bezieht sich auf eine Tabelle mit mehreren Spalten.
Natürlich könnte man dieses Beispiel auch auf mehrere Tabellen erweitern, aber für den Lerneffekt ist eine Tabelle erst mal einfacher.
Aber sorry, dass ich mich da unverständlich ausgedrückt habe.
Das Problem bzw. die Aufgabe liegt halt darin zu unterscheiden, ob es sich um Fragen zur verwendeten Programmiersprache handelt oder um die Kenntnisse über Datenbanken. Beides hat erst mal nichts miteinander zu tun.
Seit es Programmiersprachen und Datenbanken gibt ist das immer eine zweischneidige Sache, auch für die Programmierer die eigentlich in beiden Bereichen geleichwertige Kenntnisse haben sollten (egal auf welchem Miveau) Aber ist oft nicht der Fall, war es auch in der Vergangenheit nicht und wird es wohl auch nie sein.
Gruß
Frank | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|