<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Treeview mit Werten aus Datenbank]]></title><description><![CDATA[<p>Hallo Leutz,</p>
<p>ich komme mit dem Treeview Steuerelement nicht klar ... und zwar möchte ich das mit Werten aus einer Datenbank füllen.</p>
<p>Ich habe eine Access Tabelle namens Event. Dort drinn ist das Jahr, das Ereignis, Beschreibung usw. gespeichert.</p>
<p>Ich möchte mir eine Übersicht verschaffen und in einem Treeview die Jahre anzeigen lassen. Als Unterpunkt sollen die Ereignisse des Jahres aufgelistet werden.</p>
<p>Meine Tabelle sieht zb. so aus:</p>
<p>ID Jahr Ereignis Beschreibung Verein usw.<br />
----------------------------------------------------<br />
1 2000 Bikertreffen Nürburgring Testverein<br />
2 2000 Bikerparty ............................<br />
3 2000 AusfahrtX .............................<br />
4 2001 Bikertreffen .............................</p>
<p>usw.</p>
<p>Im Treeview Steuerelement will ich mir nur die Jahre als Hauptknoten anzeigen lassen:</p>
<p>zb.</p>
<p>+2000<br />
+2001<br />
+2002<br />
+2003<br />
+2004</p>
<p>Wenn man dann auf das jahr 2000 klickt, wollte ich einfach nur die Ereignisse dieses Jahres auflisten</p>
<p>zb.</p>
<p>-2000<br />
|__Bikertreffen<br />
|__Bikerparty<br />
|__AusfahrtX</p>
<p>Ich bekomme das zwar hin, dass alle Jahre ordentlich aufgelistet werden, aber die Ereignisse des Jahres werden nicht zugeordnet sondern alle in den ersten Knoten geschrieben.</p>
<pre><code class="language-cpp">vector &lt;AnsiString&gt; Ereignis;
vector &lt;int&gt; Jahr;

dbzugriff-&gt;ADOQuery1-&gt;Close();
dbzugriff-&gt;ADOQuery1-&gt;SQL-&gt;Clear();
dbzugriff-&gt;ADOQuery1-&gt;SQL-&gt;Add(&quot;SELECT distinct Jahr FROM Eventtable Where Verein ='&quot;+cmbVereinauswahl-&gt;Text+&quot;'&quot;);
dbzugriff-&gt;ADOQuery1-&gt;Open();
for(int i=0; i&lt;dbzugriff-&gt;ADOQuery1-&gt;RecordCount; i++)
{

 Jahr.push_back(dbzugriff-&gt;ADOQuery1-&gt;FieldByName(&quot;Jahr&quot;)-&gt;AsInteger);
 dbzugriff-&gt;ADOQuery1-&gt;Next();

}

// Treeview füllen

for(unsigned int j=0; j&lt;Jahr.size();j++)
{
 TreeView1-&gt;Items-&gt;Add(NULL,Jahr[j]);

}
</code></pre>
<p>Ich weiß nicht wie ich es anstellen soll, dass die Ereignisse dem jeweiligen Jahresknoten untergeordnet werden.</p>
<pre><code class="language-cpp">Treeview1-&gt;Items-&gt;Addchild(Treeview1-&gt;Items-&gt;Item[j], &quot;Ereignisse des Jahres...&quot;);
</code></pre>
<p>Es wäre super wenn mir jemand helfen könnte.<br />
Danke,<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/80585/treeview-mit-werten-aus-datenbank</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 14:21:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/80585.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Jul 2004 14:06:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Treeview mit Werten aus Datenbank on Thu, 22 Jul 2004 14:06:58 GMT]]></title><description><![CDATA[<p>Hallo Leutz,</p>
<p>ich komme mit dem Treeview Steuerelement nicht klar ... und zwar möchte ich das mit Werten aus einer Datenbank füllen.</p>
<p>Ich habe eine Access Tabelle namens Event. Dort drinn ist das Jahr, das Ereignis, Beschreibung usw. gespeichert.</p>
<p>Ich möchte mir eine Übersicht verschaffen und in einem Treeview die Jahre anzeigen lassen. Als Unterpunkt sollen die Ereignisse des Jahres aufgelistet werden.</p>
<p>Meine Tabelle sieht zb. so aus:</p>
<p>ID Jahr Ereignis Beschreibung Verein usw.<br />
----------------------------------------------------<br />
1 2000 Bikertreffen Nürburgring Testverein<br />
2 2000 Bikerparty ............................<br />
3 2000 AusfahrtX .............................<br />
4 2001 Bikertreffen .............................</p>
<p>usw.</p>
<p>Im Treeview Steuerelement will ich mir nur die Jahre als Hauptknoten anzeigen lassen:</p>
<p>zb.</p>
<p>+2000<br />
+2001<br />
+2002<br />
+2003<br />
+2004</p>
<p>Wenn man dann auf das jahr 2000 klickt, wollte ich einfach nur die Ereignisse dieses Jahres auflisten</p>
<p>zb.</p>
<p>-2000<br />
|__Bikertreffen<br />
|__Bikerparty<br />
|__AusfahrtX</p>
<p>Ich bekomme das zwar hin, dass alle Jahre ordentlich aufgelistet werden, aber die Ereignisse des Jahres werden nicht zugeordnet sondern alle in den ersten Knoten geschrieben.</p>
<pre><code class="language-cpp">vector &lt;AnsiString&gt; Ereignis;
vector &lt;int&gt; Jahr;

dbzugriff-&gt;ADOQuery1-&gt;Close();
dbzugriff-&gt;ADOQuery1-&gt;SQL-&gt;Clear();
dbzugriff-&gt;ADOQuery1-&gt;SQL-&gt;Add(&quot;SELECT distinct Jahr FROM Eventtable Where Verein ='&quot;+cmbVereinauswahl-&gt;Text+&quot;'&quot;);
dbzugriff-&gt;ADOQuery1-&gt;Open();
for(int i=0; i&lt;dbzugriff-&gt;ADOQuery1-&gt;RecordCount; i++)
{

 Jahr.push_back(dbzugriff-&gt;ADOQuery1-&gt;FieldByName(&quot;Jahr&quot;)-&gt;AsInteger);
 dbzugriff-&gt;ADOQuery1-&gt;Next();

}

// Treeview füllen

for(unsigned int j=0; j&lt;Jahr.size();j++)
{
 TreeView1-&gt;Items-&gt;Add(NULL,Jahr[j]);

}
</code></pre>
<p>Ich weiß nicht wie ich es anstellen soll, dass die Ereignisse dem jeweiligen Jahresknoten untergeordnet werden.</p>
<pre><code class="language-cpp">Treeview1-&gt;Items-&gt;Addchild(Treeview1-&gt;Items-&gt;Item[j], &quot;Ereignisse des Jahres...&quot;);
</code></pre>
<p>Es wäre super wenn mir jemand helfen könnte.<br />
Danke,<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/566145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566145</guid><dc:creator><![CDATA[st37]]></dc:creator><pubDate>Thu, 22 Jul 2004 14:06:58 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview mit Werten aus Datenbank on Thu, 22 Jul 2004 16:22:01 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich weiss nicht was bei dir nicht geht, aber dies hier funzt.</p>
<pre><code>TreeView1-&gt;Items-&gt;Add(NULL,&quot;2004&quot;);
TreeView1-&gt;Items-&gt;Add(NULL,&quot;2005&quot;);
TreeView1-&gt;Items-&gt;Add(NULL,&quot;2006&quot;);

TreeView1-&gt;Items-&gt;AddChild(TreeView1-&gt;Items-&gt;Item[1], &quot;Ereignisse des Jahres...&quot;);
</code></pre>
<p>Ich hoffe es hilft Dir weiter, denn ich sehe eigendlich keinen Unterschied ;-().<br />
wenn du zwischen deinen Zeilen oben auf eine andere EBENE wechselst kann es sein, das das von dier beschriebene passiert.</p>
<p>gehst du irgendwie wieder in den ROOT zurueck vor</p>
<pre><code>Treeview1-&gt;Items-&gt;Addchild(Treeview1-&gt;Items-&gt;Item[j], &quot;Ereignisse des Jahres...&quot;);
</code></pre>
<p>??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/566235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566235</guid><dc:creator><![CDATA[YLIREBUS]]></dc:creator><pubDate>Thu, 22 Jul 2004 16:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview mit Werten aus Datenbank on Thu, 22 Jul 2004 19:01:28 GMT]]></title><description><![CDATA[<p>st37,</p>
<p>st37 schrieb:</p>
<blockquote>
<p>Ich weiß nicht wie ich es anstellen soll, dass die Ereignisse dem jeweiligen Jahresknoten untergeordnet werden.</p>
<pre><code class="language-cpp">Treeview1-&gt;Items-&gt;Addchild(Treeview1-&gt;Items-&gt;Item[j], &quot;Ereignisse des Jahres...&quot;);
</code></pre>
</blockquote>
<p>ein paar Anregungen: Rufe alle relevanten Daten mit <em>einer</em> Abfrage ab und füge diese in einem Durchlauf in die TreeView ein. Ich kenne Deine Tabellenstruktur nicht, aber so ungefähr stelle ich mir das vor:</p>
<pre><code>SELECT * FROM Eventtable WHERE ... ORDER BY Jahr
</code></pre>
<p>TTreeNodes::Add liefert Dir das erzeugte TTreeNode-Objekt zurück. Benutze dieses, statt über einen Index zuzugreifen:</p>
<pre><code class="language-cpp">TTreeNode* node = TreeView1-&gt;Items-&gt;Add(NULL, jahr);
//über alle Datensätze des Jahres iterieren und ...
    node-&gt;AddChild(node, eventBeschreibung);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/566361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566361</guid><dc:creator><![CDATA[dschensky]]></dc:creator><pubDate>Thu, 22 Jul 2004 19:01:28 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview mit Werten aus Datenbank on Thu, 22 Jul 2004 20:10:42 GMT]]></title><description><![CDATA[<p>Zuerst mal eine Frage: Wird es bei diesen zwei Ebenen bleiben, oder wird eine noch tiefere Verschachtelung angestrebt? Wenn ja, ist der DB-Ansatz schon schwierig zu handhaben... Aber falls dem so ist, hab' ich ein paar Anregungen für Dich.</p>
<p>Ansonsten: Die Jahreszahlen hast Du ja offensichtlich schon hinbekommen. Du mußt jetzt nur noch eine Schleife duch alle vorhandenen TTreeNodes machen, die Jahreszahl aus dem -&gt;Text holen, und eine Abfrage auf die Datenbank für diese Jahreszahl machen. Alle Ergebenisse fügst Du mit dem aktuellen TTreeNode als Parent mit AddChild ein.</p>
<p>So die grobe Schleife wäre:</p>
<pre><code class="language-cpp">TTreeNode* ttn = TreeView1-&gt;Items-&gt;GetFirstNode();
int jahr;
while (ttn)
{
  jahr = ttn-&gt;Text.ToInt();
  // hier DB-Abfrageschleife: jeweils alle Ereignisse eines Jahres suchen
      // in der Schleife
      AnsiString Ereignis = dbzugriff-&gt;ADOQuery2-&gt;FieldByName(&quot;Ereignis&quot;)-&gt;AsString;
      TreeView1-&gt;Items-&gt;AddChild(ttn, Ereignis);
      ADOQuery2-&gt;Next();
  ttn = ttn-&gt;getNextSibling();
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/566399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566399</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 Jul 2004 20:10:42 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview mit Werten aus Datenbank on Fri, 23 Jul 2004 12:33:02 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>erstmal vielen Dank für die Antworten, echt super!!</p>
<p>@Joe_M</p>
<p>es bleibt bei 2 Ebenen, ich wollte mir dann die restlichen Daten des Datensatzes in einem Listview ausgeben lassen (zwecks Übersichtlichkeit).</p>
<p>Ich werde jetzt versuchen die geposteten Ansätze praktisch umzusetzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Also vielen Dank nochmal.</p>
<p>grüße<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/566845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/566845</guid><dc:creator><![CDATA[st37]]></dc:creator><pubDate>Fri, 23 Jul 2004 12:33:02 GMT</pubDate></item></channel></rss>