Verknüpfung meherer Tabellen
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Verknüpfung meherer Tabellen
So, damit Martin nicht traurig ist, weil hier so wenig los ist.
Moin Martin....
jetzt mache ich es einmal andersherum. Bisher habe ich immer gebrütet und nachgedacht über ein Problem, habe mich dann nach langer Zeit dazu entschlossen doch jemanden zu fragen und es ergab dann, dass es eine blöde Frage war, oder das ich das Ergebnis kurz danach selbst gefunden habe.
Jetzt frage ich gleich zu Anfang:
Ich "verbinde" etliche DB miteinander über Relationen, oder Scope, oder wie auch immer und erziele ein Ergebnis, welches ich Browsen möchte. So weit so gut. Jetzt sieht es aber so aus, dass die Tabellen selbst sortiert sind, nur sobald eine Verknüpfung stattfindet leider keine Sortierung mehr vorliegt, weil jede DB einen anderen Schlüssel hat, der nur für die Db selbst gilt.
Beispiel:
Ich habe einen Stamm, der von mir aus Sequentiell durchsucht wird. Dieser Stamm hat eine Verbindung über seine Recno() in eine andere Tabelle, in der steht, welcher weitere Satz zum Stamm paßt. Hier ist es einmal ein Filmstamm, der dann über eine Verknüpfungsdb seinen Titel, oder Darsteller zugeteilt bekommt. Die Liste wird auch richtig angezeigt, aber Titel und darsteller sind natürlich unsortiert. Jeweils einer, Titel oder Darsteller, sollten sortiert angezeigt werden. Ich denke mal, dass ich ohne eine weitere DB in die das Ergebnis jeweils geschrieben wird, oder ein zusätzliches Array, ist da wohl nichts zu machen? Oder gibt es einen Trick, den Index irgendwie dazu zu bewegen, das er den Titel/Darsteller mit einbezieht?
Moin Martin....
jetzt mache ich es einmal andersherum. Bisher habe ich immer gebrütet und nachgedacht über ein Problem, habe mich dann nach langer Zeit dazu entschlossen doch jemanden zu fragen und es ergab dann, dass es eine blöde Frage war, oder das ich das Ergebnis kurz danach selbst gefunden habe.
Jetzt frage ich gleich zu Anfang:
Ich "verbinde" etliche DB miteinander über Relationen, oder Scope, oder wie auch immer und erziele ein Ergebnis, welches ich Browsen möchte. So weit so gut. Jetzt sieht es aber so aus, dass die Tabellen selbst sortiert sind, nur sobald eine Verknüpfung stattfindet leider keine Sortierung mehr vorliegt, weil jede DB einen anderen Schlüssel hat, der nur für die Db selbst gilt.
Beispiel:
Ich habe einen Stamm, der von mir aus Sequentiell durchsucht wird. Dieser Stamm hat eine Verbindung über seine Recno() in eine andere Tabelle, in der steht, welcher weitere Satz zum Stamm paßt. Hier ist es einmal ein Filmstamm, der dann über eine Verknüpfungsdb seinen Titel, oder Darsteller zugeteilt bekommt. Die Liste wird auch richtig angezeigt, aber Titel und darsteller sind natürlich unsortiert. Jeweils einer, Titel oder Darsteller, sollten sortiert angezeigt werden. Ich denke mal, dass ich ohne eine weitere DB in die das Ergebnis jeweils geschrieben wird, oder ein zusätzliches Array, ist da wohl nichts zu machen? Oder gibt es einen Trick, den Index irgendwie dazu zu bewegen, das er den Titel/Darsteller mit einbezieht?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
wenn es nicht zu viele Sätze sind, würde ich sie der Einfachheit halber in einem Array zwischenparken und das entsprechend vor der Anzeige sortieren.
Aber das Thema hatten wir doch schon mal? Ich weiß noch, das Tom mit mir geschimpft hatte und sagte, ich sei bescheuert das in Arrays zu machen (waren zwar nicht seine Worte, ...)
Ich suche mal nach dem Thread...
Viele Grüße,
Martin
wenn es nicht zu viele Sätze sind, würde ich sie der Einfachheit halber in einem Array zwischenparken und das entsprechend vor der Anzeige sortieren.
Aber das Thema hatten wir doch schon mal? Ich weiß noch, das Tom mit mir geschimpft hatte und sagte, ich sei bescheuert das in Arrays zu machen (waren zwar nicht seine Worte, ...)
Ich suche mal nach dem Thread...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Martin,
das Thema hatte wir schon mal, das stimmt. Ich wollte aber wissen, ob es auch einen anderen Weg gibt. Das mit dem Array, oder einer weiteren temporären Datei habe ich bisher genommen. Ich finde aber das es recht umständlich ist, zumal ich beim meinem Browsen die Möglichkeit habe eine variable Feldmaske vorzugeben, was mir jetzt auf den 1.Blick bei der temp Methode nicht so gelingt.
Bei Array oder Tempdatei muß halt vorher selektiert werden und das kann dauern. Ich habe zwar einen Hinweis mit Zähler am Bildschirm, aber trotzdem sieht es recht blöde aus, wenn das PRg bis 1000 oder noch mehr hochzählt und dann anzeigt.
Naja, wenn es aber nicht anders geht. SQL geht ja genauso und da meckert auch keiner.
das Thema hatte wir schon mal, das stimmt. Ich wollte aber wissen, ob es auch einen anderen Weg gibt. Das mit dem Array, oder einer weiteren temporären Datei habe ich bisher genommen. Ich finde aber das es recht umständlich ist, zumal ich beim meinem Browsen die Möglichkeit habe eine variable Feldmaske vorzugeben, was mir jetzt auf den 1.Blick bei der temp Methode nicht so gelingt.
Bei Array oder Tempdatei muß halt vorher selektiert werden und das kann dauern. Ich habe zwar einen Hinweis mit Zähler am Bildschirm, aber trotzdem sieht es recht blöde aus, wenn das PRg bis 1000 oder noch mehr hochzählt und dann anzeigt.
Naja, wenn es aber nicht anders geht. SQL geht ja genauso und da meckert auch keiner.
Zuletzt geändert von Manfred am Do, 29. Jun 2006 8:05, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
ja - den Thread damals hattest Du auch angeschubst, habe ihn gerade gefunden...
Was meinst Du mit "variable Feldmaske"?
Viele Grüße,
Martin
ja - den Thread damals hattest Du auch angeschubst, habe ihn gerade gefunden...
Was meinst Du mit "variable Feldmaske"?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
variable Feldmaske ist etwas unglücklich gewählt als Ausruck.
Ich lege eine Datei ab, in die die Felder mit Überschrift und Breite und Reihenfolge der Anzeige usw. geschrieben steht. So kann ich später einen Maskengenerator bauen, mit dem sich jeder entsprechend die Browsemasken zusammenbauen kann.
PS: Welcher Thread war das nochmal? Ist es das gleiche Thema gewesen?
Ich lege eine Datei ab, in die die Felder mit Überschrift und Breite und Reihenfolge der Anzeige usw. geschrieben steht. So kann ich später einen Maskengenerator bauen, mit dem sich jeder entsprechend die Browsemasken zusammenbauen kann.
PS: Welcher Thread war das nochmal? Ist es das gleiche Thema gewesen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Ja stimmt, das war genau das Thema.
Verflixt, das mit den Normalformen ist ja nicht schlecht, aber der Aufwand, der dann danach kommt, der hat es teilweise wieder in sich.
Verflixt, das mit den Normalformen ist ja nicht schlecht, aber der Aufwand, der dann danach kommt, der hat es teilweise wieder in sich.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Manfred,
wenn du in einem Browse mehrere Tabellen vermischst, dann müssen die doch 1:1 Verbindungen sein oder ? Jede dieser Tabellen hat einen eindeutigen Schlüsselbegriff der zur anderen reicht. Um nun nach einzelnen Spalten zu sortieren, mußt du nur eine Routine haben, die in etwa so vorgeht (und natürlich eine Auswahl z.B. compobox für die aktivierbare Sortierspalte):
1. Sortierbegriff auswählen
2. Browseraktualisierung abschalten (weis nicht ob das bei Xbase++ geht)
3. alle Relationen löschen - besser sowieso als scope, dann also scope löschen
4. Sortierfeld (indexfeld in einer der Dateien) DBF mit DBSEEK positionieren (eventuell + scope ?)
5. Abhängige Dateien über den Schlüsselbegriff scopen
6. Browser complett refreshen lassen
7. über das Ergebnis staunen.
PS ein SQL Server gibt immer eine Art von Array zurück (ResultSet ...), daher wäre eine Arraybildung und dann ein Browse sicherlich keine 'unanständige' Technik. Das Sortieren der angezeigten Daten wäre auch sicher schneller als das dauernde Suchen in der DBF, allerdings wird dann NUR das gleiche Ergebnis sortiert, während oben das Ergebnis sehr von der DBF Struktur abhängig ist. Was im Einzelfall gewünscht ist, muss man im Einzelfall entscheiden.
wenn du in einem Browse mehrere Tabellen vermischst, dann müssen die doch 1:1 Verbindungen sein oder ? Jede dieser Tabellen hat einen eindeutigen Schlüsselbegriff der zur anderen reicht. Um nun nach einzelnen Spalten zu sortieren, mußt du nur eine Routine haben, die in etwa so vorgeht (und natürlich eine Auswahl z.B. compobox für die aktivierbare Sortierspalte):
1. Sortierbegriff auswählen
2. Browseraktualisierung abschalten (weis nicht ob das bei Xbase++ geht)
3. alle Relationen löschen - besser sowieso als scope, dann also scope löschen
4. Sortierfeld (indexfeld in einer der Dateien) DBF mit DBSEEK positionieren (eventuell + scope ?)
5. Abhängige Dateien über den Schlüsselbegriff scopen
6. Browser complett refreshen lassen
7. über das Ergebnis staunen.
PS ein SQL Server gibt immer eine Art von Array zurück (ResultSet ...), daher wäre eine Arraybildung und dann ein Browse sicherlich keine 'unanständige' Technik. Das Sortieren der angezeigten Daten wäre auch sicher schneller als das dauernde Suchen in der DBF, allerdings wird dann NUR das gleiche Ergebnis sortiert, während oben das Ergebnis sehr von der DBF Struktur abhängig ist. Was im Einzelfall gewünscht ist, muss man im Einzelfall entscheiden.
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Manfred.
Ich verstehe das Problem nicht ganz, um ehrlich zu sein. Deiner Ausgangsnachricht entnehme ich - so in etwa -, daß Du es zwar schaffst, Tabellen zu verknüpfen, Dir dann aber die Sortierung der verknüpften Tabellen fehlt. Dafür sind kombinierte Indexausdrücke m.E. die richtige Lösung, nötigenfalls mehrere:
USE Darsteller
INDEX ON Str(id,8,0)+Upper(Name) to Darsteller1
INDEX ON Str(id,8,0)+Upper(Filmtitel) to Darsteller2
usw.
Scoping funktioniert trotzdem, und die Untermenge ist sortiert. Nötigenfalls den führenden Index wechseln. Oder habe ich die Frage so falsch verstanden?
Ich verstehe das Problem nicht ganz, um ehrlich zu sein. Deiner Ausgangsnachricht entnehme ich - so in etwa -, daß Du es zwar schaffst, Tabellen zu verknüpfen, Dir dann aber die Sortierung der verknüpften Tabellen fehlt. Dafür sind kombinierte Indexausdrücke m.E. die richtige Lösung, nötigenfalls mehrere:
USE Darsteller
INDEX ON Str(id,8,0)+Upper(Name) to Darsteller1
INDEX ON Str(id,8,0)+Upper(Filmtitel) to Darsteller2
usw.
Scoping funktioniert trotzdem, und die Untermenge ist sortiert. Nötigenfalls den führenden Index wechseln. Oder habe ich die Frage so falsch verstanden?
Herzlich,
Tom
Tom
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Tom,
die Antwort lag mir auch erst auf der Zunge - bringt aber leider nichts!
Schließlich hat ja jeder Darsteller eine andere ID - und Dein Index ist nach ID aufsteigend sortiert und bei gleicher ID (was nicht sein kann!) nach Namen.
Sobald ein neuer Darsteller eingegeben wird, bekommt er die höchste ID - auch wenn er im Alphabet ganz vorne käme...
Das gleiche gilt latürnich analog für die Titel-Datenbank...
Viele Grüße,
Martin
die Antwort lag mir auch erst auf der Zunge - bringt aber leider nichts!
Schließlich hat ja jeder Darsteller eine andere ID - und Dein Index ist nach ID aufsteigend sortiert und bei gleicher ID (was nicht sein kann!) nach Namen.
Sobald ein neuer Darsteller eingegeben wird, bekommt er die höchste ID - auch wenn er im Alphabet ganz vorne käme...
Das gleiche gilt latürnich analog für die Titel-Datenbank...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Tom
das mit dem Index, das hatte ich irgendwie im Kopf, aber kriege es nicht hin, oder es klappt nicht in meiner Konfiguration.
also hier nochmal ganz kurz:
Es gibt eine Titeldatei und eine Interpretendatei. Beide haben jeweils eine eigene ID.
Die Verknüpfung der beiden Dateien zu ihren "Stammdaten" (genannt Stamm) erledigt eine 1:n Datei. Beispiel: TitelStamm, DarstStamm in den beiden Dateien steht jeweils einmal unter einem Index die ID der Titel/Darstellerdatei und des jeweiligen Stammsatzes.
Finde ich jetzt einen Titel, dann wird über die TitelStamm die Verbindung zum jeweiligen Stammsatz geknüpft und über den so gefunden Stammsatz wird wiederum über die DarstStamm eine Verbindung zum Interpreten gefunden.
Die Titeldatei ist ja sortiert nach Titel. Die gefundenen Stammsätze, sind sortiert nach ID der Stammsatzdatei.
titel->id in Titelstamm->idtitel
TitelStamm->idstamm in stamm->id
Wenn ich jetzt über den gefundenen Stamm die Interpreten anzeigen lasse, dann geschieht das über die DarstStamm auf die DarstDatei
stamm->id in DarstStamm->idstamm
DarstStamm->iddarst in Darst->id
Jetzt liegen die Darsteller aber nicht namesortiert, sondern IDsortiert vor. Lasse ich jetzt alle anzeigen, die zu dem Stamm über die DarstStamm gefunden wurden, dann sind die kreuz und quer durcheinander.
Das Ergebnis zeigt dann die Felder der einzelnen DB in einer Zeile an.
vereinfacht dargestellt
Do while darststamm->idstamm = stamm->id
? titel + darst + wasweisich
darststamm->(DBSKIP())
enddo
Da soll es jetzt klappen, dass ich darauf einen Index setzen kann, der 2 DB anpackt?, Oder wie habe ich das zu verstehen?
Ich hoffe ich kriege das hier verständlich rübergebracht, es ist immer so schwer anderen seine Ideen zu vermitteln.
das mit dem Index, das hatte ich irgendwie im Kopf, aber kriege es nicht hin, oder es klappt nicht in meiner Konfiguration.
also hier nochmal ganz kurz:
Es gibt eine Titeldatei und eine Interpretendatei. Beide haben jeweils eine eigene ID.
Die Verknüpfung der beiden Dateien zu ihren "Stammdaten" (genannt Stamm) erledigt eine 1:n Datei. Beispiel: TitelStamm, DarstStamm in den beiden Dateien steht jeweils einmal unter einem Index die ID der Titel/Darstellerdatei und des jeweiligen Stammsatzes.
Finde ich jetzt einen Titel, dann wird über die TitelStamm die Verbindung zum jeweiligen Stammsatz geknüpft und über den so gefunden Stammsatz wird wiederum über die DarstStamm eine Verbindung zum Interpreten gefunden.
Die Titeldatei ist ja sortiert nach Titel. Die gefundenen Stammsätze, sind sortiert nach ID der Stammsatzdatei.
titel->id in Titelstamm->idtitel
TitelStamm->idstamm in stamm->id
Wenn ich jetzt über den gefundenen Stamm die Interpreten anzeigen lasse, dann geschieht das über die DarstStamm auf die DarstDatei
stamm->id in DarstStamm->idstamm
DarstStamm->iddarst in Darst->id
Jetzt liegen die Darsteller aber nicht namesortiert, sondern IDsortiert vor. Lasse ich jetzt alle anzeigen, die zu dem Stamm über die DarstStamm gefunden wurden, dann sind die kreuz und quer durcheinander.
Das Ergebnis zeigt dann die Felder der einzelnen DB in einer Zeile an.
vereinfacht dargestellt
Do while darststamm->idstamm = stamm->id
? titel + darst + wasweisich
darststamm->(DBSKIP())
enddo
Da soll es jetzt klappen, dass ich darauf einen Index setzen kann, der 2 DB anpackt?, Oder wie habe ich das zu verstehen?
Ich hoffe ich kriege das hier verständlich rübergebracht, es ist immer so schwer anderen seine Ideen zu vermitteln.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Egal,
die Frage war doppelt gemoppelt. Es bleibt dabei:
1) Anfrage starten,
2) Ergbnis in "ZwischenSpeicher" schieben
3) Ergebnis auswerten.
die Frage war doppelt gemoppelt. Es bleibt dabei:
1) Anfrage starten,
2) Ergbnis in "ZwischenSpeicher" schieben
3) Ergebnis auswerten.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
auf einen anderen Index umzuschalten und die ID als Bedingung zu nehmen ?
wenn du die Bedingung nicht brauchst übergib nur .T.
gruss by OHR
Jimmy
ok, aber was spricht dagegen nachdem du die ID gefunden hastManfred hat geschrieben: stamm->id in DarstStamm->idstamm
DarstStamm->iddarst in Darst->id
Jetzt liegen die Darsteller aber nicht namesortiert, sondern IDsortiert vor. Lasse ich jetzt alle anzeigen, die zu dem Stamm über die DarstStamm gefunden wurden, dann sind die kreuz und quer durcheinander.
auf einen anderen Index umzuschalten und die ID als Bedingung zu nehmen ?
Code: Alles auswählen
cSUCH := "blabla"
SEEK(cSUCH)
IF FOUND()
bIDblock := Darst->id
Set Index to Interpretsortierung
obrowse := TBROWSEDB(x1,y1,x2,y2 )
obrowse:SKIPBLOCK := {|x| GONEXT (X, {|| Darst->id = bIDblock
} ) }
obrowse:GOTOPBLOCK:= {|| GOTOP ( {|| Darst->id = bIDblock } ) }
obrowse:GOBOTTOMBLOCK := {|| GOBOTTOM( {|| Darst->id = bIDblock} ) }
...
FUNCTION gonext(ntoskip, bwhilecond )
LOCAL nskipped := 0, ndirection
ndirection := IIF(ntoskip > 0, 1, -1)
DO WHILE nskipped != ntoskip .AND. EVAL(bwhilecond) .AND. ;
!EOF() .AND. !BOF()
SKIP ndirection
nskipped += ndirection
ENDDO
IF EOF()
SKIP -1
nskipped--
ELSEIF BOF()
GOTO RECNO()
nskipped++
ELSEIF !EVAL(bwhilecond)
SKIP -ndirection
nskipped += -ndirection
ENDIF
RETURN nskipped
gruss by OHR
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Das geht doch gar nicht!?
Ich habe zu dem Zeitpunkt den Titel, der mir sagt welcher Stamm. Der Stamm, der mir sagt welcher Interpret und das bei jedem Stammsatz, der zum Titel gehört, neu. Es kann also sein, dass es 1 Titel gibt, aber unterschiedliche Interpreten. Nimm mal das Beispiel Greatest Hits, da gibt es ohne Ende verschiedene Interpreten zu.
-------------------------------
Hast Du einen Avatar eingebunden? Es erscheint beim Anzeigen immer kurz der Fleck, auf dem er erscheinen sollte, dann ist aber der Fleck wieder weg. So als ob was gesucht, aber nicht gefunden würde.
Ich habe zu dem Zeitpunkt den Titel, der mir sagt welcher Stamm. Der Stamm, der mir sagt welcher Interpret und das bei jedem Stammsatz, der zum Titel gehört, neu. Es kann also sein, dass es 1 Titel gibt, aber unterschiedliche Interpreten. Nimm mal das Beispiel Greatest Hits, da gibt es ohne Ende verschiedene Interpreten zu.
-------------------------------
Hast Du einen Avatar eingebunden? Es erscheint beim Anzeigen immer kurz der Fleck, auf dem er erscheinen sollte, dann ist aber der Fleck wieder weg. So als ob was gesucht, aber nicht gefunden würde.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
ist Stamm = Album bei dir ? wieso kannst du beim Titel nicht direkt auf
den Interpreten sondern musst erst durch den "Stamm" ?
du wolltest doch jetzt den Interpret sortiert haben.
... die Frage hierzu wäre : zeigst du alle in einem Browse ?
Titel AA1 -> Stamm AA2 ->Interpret AA3
Titel AA1 -> Stamm AB2 ->Interpret AB3
ich dachte an 2x Browser (die optisch aussehen wie einer)
1.) Titel AA1 -> Stamm AA2 in Relation (eindeutig)
Titel AA1 -> Stamm AB2
2.) Stamm AA2 ->Interpret AA3 mit Bedingung (mehrere)
Stamm AB2 ->Interpret AB3
was mich allerdings etwas verwirrt : wieso musst du alles aufteilen
(Titel, Stamm, Interpret). Du brauchst doch pro Relation mindest 1 Feld
für die Relation die dann "doppelt" ist ? ist es nicht "einfacher" alles in
einer DBF zu haben ?
gruss by OHR
Jimmy
hm ... "Greatest Hits" ist aber eigendlich kein Titel sondern das Album ?Manfred hat geschrieben: Das geht doch gar nicht!?
Ich habe zu dem Zeitpunkt den Titel, der mir sagt welcher Stamm. Der Stamm, der mir sagt welcher Interpret und das bei jedem Stammsatz, der zum Titel gehört, neu. Es kann also sein, dass es 1 Titel gibt, aber unterschiedliche Interpreten. Nimm mal das Beispiel Greatest Hits, da gibt es ohne Ende verschiedene Interpreten zu.
ist Stamm = Album bei dir ? wieso kannst du beim Titel nicht direkt auf
den Interpreten sondern musst erst durch den "Stamm" ?
du wolltest doch jetzt den Interpret sortiert haben.
... die Frage hierzu wäre : zeigst du alle in einem Browse ?
Titel AA1 -> Stamm AA2 ->Interpret AA3
Titel AA1 -> Stamm AB2 ->Interpret AB3
ich dachte an 2x Browser (die optisch aussehen wie einer)
1.) Titel AA1 -> Stamm AA2 in Relation (eindeutig)
Titel AA1 -> Stamm AB2
2.) Stamm AA2 ->Interpret AA3 mit Bedingung (mehrere)
Stamm AB2 ->Interpret AB3
was mich allerdings etwas verwirrt : wieso musst du alles aufteilen
(Titel, Stamm, Interpret). Du brauchst doch pro Relation mindest 1 Feld
für die Relation die dann "doppelt" ist ? ist es nicht "einfacher" alles in
einer DBF zu haben ?
ja, hab die Msg von Hubert gelesen. Mein Avatar liegt nicht auf einem Webserver ...-------------------------------
Hast Du einen Avatar eingebunden? Es erscheint beim Anzeigen immer kurz der Fleck, auf dem er erscheinen sollte, dann ist aber der Fleck wieder weg. So als ob was gesucht, aber nicht gefunden würde.
gruss by OHR
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Jimmy,
jetzt muß ich erstmal sortieren:
Also, Greatest Hits ist ein Album, genau, das kann natürlich x Interpreten zugeordnet werden.
Im Stamm steht, wie teuer, wann erschienen, sprich die Daten, die zum jeweiligen Album gehören. Dazu wird dann ein Interpret zugeordnet.
Hm, warum ordne ich den Interpreten, bzw den Titel dem Stamm zu?
Eigentlich läuft es ganu so herum:
Ich suche den EAN-13, der ist einem Stamm zugeordnet und dann sehe ich vom Stamm aus die restlichen Daten:
1) System
2) genre
3) Titel
4) Interpret
usw.
usw.
Irgendwo/wer muß der "Vater" sein.
Im Browse zeige ich das Ergebnis mit den entsprechenden Verknüpfungen, so wie Du unter 1) schreibst.
2x Browser, fände ich auch schick, aber das kann ich noch nicht programmieren. (Leider )
Alles in einer DBF? Das entspricht nicht der Normalform. Hatte ich früher mal. Zum Stamm kommt nämlich der eigentliche Träger nochmal hinzu. Titel, Internpret, Stamm besagen nur, dass es diesen Titel gibt, nicht das er vorhanden ist. Erst wenn dem Stamm ein Objekt zugeordnet wurde, ist garantiert, dass die CD (nenne wir sie mal so) auch vorhanden ist mechanisch. SQL DB arbeiten doch auch alle über Schlüssel. Genau so habe ich es auch gelöst. Nichts doppelt. Wird irgendwo etwas verbundenes geändert, ist alles automatisch angepaßt. Keine Redundanzen.
jetzt muß ich erstmal sortieren:
Also, Greatest Hits ist ein Album, genau, das kann natürlich x Interpreten zugeordnet werden.
Im Stamm steht, wie teuer, wann erschienen, sprich die Daten, die zum jeweiligen Album gehören. Dazu wird dann ein Interpret zugeordnet.
Hm, warum ordne ich den Interpreten, bzw den Titel dem Stamm zu?
Eigentlich läuft es ganu so herum:
Ich suche den EAN-13, der ist einem Stamm zugeordnet und dann sehe ich vom Stamm aus die restlichen Daten:
1) System
2) genre
3) Titel
4) Interpret
usw.
usw.
Irgendwo/wer muß der "Vater" sein.
Im Browse zeige ich das Ergebnis mit den entsprechenden Verknüpfungen, so wie Du unter 1) schreibst.
2x Browser, fände ich auch schick, aber das kann ich noch nicht programmieren. (Leider )
Alles in einer DBF? Das entspricht nicht der Normalform. Hatte ich früher mal. Zum Stamm kommt nämlich der eigentliche Träger nochmal hinzu. Titel, Internpret, Stamm besagen nur, dass es diesen Titel gibt, nicht das er vorhanden ist. Erst wenn dem Stamm ein Objekt zugeordnet wurde, ist garantiert, dass die CD (nenne wir sie mal so) auch vorhanden ist mechanisch. SQL DB arbeiten doch auch alle über Schlüssel. Genau so habe ich es auch gelöst. Nichts doppelt. Wird irgendwo etwas verbundenes geändert, ist alles automatisch angepaßt. Keine Redundanzen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Manfred.
Ich wiederhole mich, glaube ich, aber Du solltest Dir wirklich mal das eXpress++ von Roger Donnay anschauen. Das ist ein Tool, mit dem man wirklich schnell zu GUI-Ergebnissen kommt, also z.B. Browser baut, für deren Gestaltung nur vier, fünf Zeilen nötig sind, und seine Beispielbibliothek zeigt u.a., wie man voneinander abhängige Browser ziemlich easy hinkriegt. Es gibt eine Demo, und einen kostenlosen 30-Tage-Trial:
http://www.donnay-software.com
Davon abgesehen, jetzt mal zusammengefaßt:
Du hast Alben, jedes Album hat eine ID, zum Beispiel die ASIN.
Du hast Titel, jeder Titel hat eine ID, die Du vergibst.
Du hast Interpreten, jeder Interpret hat eine ID, die Du ebenfalls vergibst.
Ein Album hat also eine Untermenge von Titeln. Jeder Titel kann auf mehreren Alben sein. Jeden Titel kann es von mehreren Interpreten geben. Jeder Interpret hat mehrere Titel und kann auf verschiedenen Alben vertreten sein. Soweit richtig?
Jetzt mal ins Blaue gedacht. Ein Album hat einen Namen, ein Erscheinungsjahr, eine Plattenfirma, einen Verlag usw. Das wäre ein Kopfeintrag - nebst ID - in einer Alben-Tabelle. Dann müßte es eine weitere Tabelle geben, die Titel mit Alben verknüpft, also die ID des Albums und des Titels enthält. Diese Verknüpfungstabelle könnte zusätzlich die Information enthalten, an welcher Position auf diesem Album sich der Titel befindet. Zusätzlich sollte sie die ID des Interpreten enthalten.
Die Titeldatei enthält nur den Titel selbst, zum Beispiel "Piano Man". In einer weiteren Verknüpfungsdatei sind Titel und Interpreten miteinander verbunden, also ID des Titels und ID des Interpreten. Damit haben wir eine Version des Titels. Hier kann es dann weitere Informationen wie Genre, Produktionsjahr usw. geben.
Schließlich die Interpreten. Alles über sie steht in einer Tabelle. Über ihre ID sind sie mit den Titeln und zusätzlich mit den Alben verknüpft. Wir haben also insgesamt diese fünf Tabellen:
1. Albenköpfe
2. Verknüpfung Alben <-> Titel (1:n) <-> Interpreten (1:1/n:1)
3. Titel
4. Verknüpfung Titel <-> Interpreten (n:m)
5. Interpreten
(Verknüfungsdatei siehe Alben)
Jetzt suchst Du zum Beispiel nach einem Titel. Über 2. erhälst Du sofort alle Alben (bei entsprechendem Index auch alphabetisch), aber auch alle Interpreten. Undsoweiter. Datenmäßig voneinander abhängige Browses scheinen mir hier die beste Lösung zu sein (man nennt das "One-To-Many").
Ich verstehe immer noch nicht, was eigentlich Dein Problem ist. <kopfkratz>
Ich wiederhole mich, glaube ich, aber Du solltest Dir wirklich mal das eXpress++ von Roger Donnay anschauen. Das ist ein Tool, mit dem man wirklich schnell zu GUI-Ergebnissen kommt, also z.B. Browser baut, für deren Gestaltung nur vier, fünf Zeilen nötig sind, und seine Beispielbibliothek zeigt u.a., wie man voneinander abhängige Browser ziemlich easy hinkriegt. Es gibt eine Demo, und einen kostenlosen 30-Tage-Trial:
http://www.donnay-software.com
Davon abgesehen, jetzt mal zusammengefaßt:
Du hast Alben, jedes Album hat eine ID, zum Beispiel die ASIN.
Du hast Titel, jeder Titel hat eine ID, die Du vergibst.
Du hast Interpreten, jeder Interpret hat eine ID, die Du ebenfalls vergibst.
Ein Album hat also eine Untermenge von Titeln. Jeder Titel kann auf mehreren Alben sein. Jeden Titel kann es von mehreren Interpreten geben. Jeder Interpret hat mehrere Titel und kann auf verschiedenen Alben vertreten sein. Soweit richtig?
Jetzt mal ins Blaue gedacht. Ein Album hat einen Namen, ein Erscheinungsjahr, eine Plattenfirma, einen Verlag usw. Das wäre ein Kopfeintrag - nebst ID - in einer Alben-Tabelle. Dann müßte es eine weitere Tabelle geben, die Titel mit Alben verknüpft, also die ID des Albums und des Titels enthält. Diese Verknüpfungstabelle könnte zusätzlich die Information enthalten, an welcher Position auf diesem Album sich der Titel befindet. Zusätzlich sollte sie die ID des Interpreten enthalten.
Die Titeldatei enthält nur den Titel selbst, zum Beispiel "Piano Man". In einer weiteren Verknüpfungsdatei sind Titel und Interpreten miteinander verbunden, also ID des Titels und ID des Interpreten. Damit haben wir eine Version des Titels. Hier kann es dann weitere Informationen wie Genre, Produktionsjahr usw. geben.
Schließlich die Interpreten. Alles über sie steht in einer Tabelle. Über ihre ID sind sie mit den Titeln und zusätzlich mit den Alben verknüpft. Wir haben also insgesamt diese fünf Tabellen:
1. Albenköpfe
2. Verknüpfung Alben <-> Titel (1:n) <-> Interpreten (1:1/n:1)
3. Titel
4. Verknüpfung Titel <-> Interpreten (n:m)
5. Interpreten
(Verknüfungsdatei siehe Alben)
Jetzt suchst Du zum Beispiel nach einem Titel. Über 2. erhälst Du sofort alle Alben (bei entsprechendem Index auch alphabetisch), aber auch alle Interpreten. Undsoweiter. Datenmäßig voneinander abhängige Browses scheinen mir hier die beste Lösung zu sein (man nennt das "One-To-Many").
Ich verstehe immer noch nicht, was eigentlich Dein Problem ist. <kopfkratz>
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Tom,
mein Problem ist, dass ich immer der Meinung bin eine einfache leichte Frage gestellt zu haben und später feststelle, was ich angerichtet habe.
Titel pro Album sind noch nicht in der Mache, werden wohl auch nicht benötigt werden.
Es ist wie verhext. Ich grübel und grübel über eine Lösung und finde sie nicht. nach einer Zeit X frage ich dann endlich und plötzlich sehe ich, wo ich den Bockmist gebaut, oder falsch gedacht habe. Dann ist die Lawine aber schon losgetreten.
Das habe ich doch alles nicht gewollt.
Sorry, aber ihr alle seid immer so eifrig bei der Sache, das es mir nachher schon wieder fast peinlich ist so blöde Fragen gestellt zu haben.
Ich habe mich in diesem Fall hier erstmal entschieden, eine TempDatei aufzumachen, in die das Ergebnis geschrieben und dann angezeigt wird.
Ich glaube das mit dem express++ muß ich mir wirklich einmal angucken.
PS: Außerdem wird jetzt gefeiert. Ich sehe gerade, ich habe 800....
mein Problem ist, dass ich immer der Meinung bin eine einfache leichte Frage gestellt zu haben und später feststelle, was ich angerichtet habe.
Titel pro Album sind noch nicht in der Mache, werden wohl auch nicht benötigt werden.
Es ist wie verhext. Ich grübel und grübel über eine Lösung und finde sie nicht. nach einer Zeit X frage ich dann endlich und plötzlich sehe ich, wo ich den Bockmist gebaut, oder falsch gedacht habe. Dann ist die Lawine aber schon losgetreten.
Das habe ich doch alles nicht gewollt.
Sorry, aber ihr alle seid immer so eifrig bei der Sache, das es mir nachher schon wieder fast peinlich ist so blöde Fragen gestellt zu haben.
Ich habe mich in diesem Fall hier erstmal entschieden, eine TempDatei aufzumachen, in die das Ergebnis geschrieben und dann angezeigt wird.
Ich glaube das mit dem express++ muß ich mir wirklich einmal angucken.
PS: Außerdem wird jetzt gefeiert. Ich sehe gerade, ich habe 800....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Huhu, Manfred.
Ich find's spannend. Man macht sich - zumindest geht es mir so - bei diesen Fragen viele Gedanken über den eigenen Code, über die Spaghettiprogrammierung, die hier und da noch steckt, über die Datennormalisierungen, die man auch in der anderen Ecke da noch hätte vornehmen sollen usw. Ist ein gemeinsamer Lernprozeß. Mir macht das Spaß.Das habe ich doch alles nicht gewollt.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Tom,
ich sehe es genauso. Was ich hier in diesem Forum, durch dieses Forum in den letzten Monaten dazugelernt habe.....
...das habe ich in den letzten 10 Jahren nicht gelernt.
Auch durch meine etwas merkwüdrigen Fragen teilweise. Wenn ich aber wiederum die Klingelglöckchen vor den einzelnen Beiträgen sehe, dann muß ich zu meiner Freude feststellen, das doch etliche meiner Beiträge (Fragen sind es wohl mehr) von höherem Interesse waren/sind, sodass ich wieder aufatme und sage: So schlimm waren die Fragen dann doch wieder nicht.
ich sehe es genauso. Was ich hier in diesem Forum, durch dieses Forum in den letzten Monaten dazugelernt habe.....
...das habe ich in den letzten 10 Jahren nicht gelernt.
Auch durch meine etwas merkwüdrigen Fragen teilweise. Wenn ich aber wiederum die Klingelglöckchen vor den einzelnen Beiträgen sehe, dann muß ich zu meiner Freude feststellen, das doch etliche meiner Beiträge (Fragen sind es wohl mehr) von höherem Interesse waren/sind, sodass ich wieder aufatme und sage: So schlimm waren die Fragen dann doch wieder nicht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
moin,
nutzt du den oBrowse:stable (TBrowse) bzw. oBrowse:stableblock
(Xbpbrowse) ? Diesen könnte man z.b. dazu nutzen um ein Achoice,
XbpListbox oder den 2st Browse mit den Interpreten aufzubauen.
gruss by OHR
Jimmy
mal eine andere Idee / Frage und auch als Einstieg in den 2st Browser :Manfred hat geschrieben: 2x Browser, fände ich auch schick, aber das kann ich noch nicht programmieren. (Leider )
nutzt du den oBrowse:stable (TBrowse) bzw. oBrowse:stableblock
(Xbpbrowse) ? Diesen könnte man z.b. dazu nutzen um ein Achoice,
XbpListbox oder den 2st Browse mit den Interpreten aufzubauen.
gruss by OHR
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Jimmy,
nein benutze ich nicht. Ich habe mir das Teil irgendwie zusammengebaut, bis es lief. Wenn ich ehrlich bin weiß ich noch nicht so recht wie es läuft. (xbpbrowse, xbpquickbrowse)
Also auch hier noch einiges an Nachholbedarf.
nein benutze ich nicht. Ich habe mir das Teil irgendwie zusammengebaut, bis es lief. Wenn ich ehrlich bin weiß ich noch nicht so recht wie es läuft. (xbpbrowse, xbpquickbrowse)
Also auch hier noch einiges an Nachholbedarf.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
die Interpreten "on the fly" zu sortieren.
also baue neben deinen Browser als "dritte Spalte" eine leer Xbplistbox.
wenn du nun in deinem Browse navigierst wird der Zustand "stable"
erreicht und oBrowse:stableblock ausgeführt.
Als Codeblock gibst du nun deine Funktion an die das Array erstellt und
damit die XbpListbox "füllt". Wenn du zum Interpreten auch noch die
RECNO() in das Array nimmst wäre sogar eine "rückwärtz suche"
möglich da du durch einen doppel click in der XbpListbox eine neue
Suche auslösen könntest.
Ich kam vorhin auf die Idee als ich etwas ähnliches machen musste und
an dein Problem dachte. Nun konnte ich mir all die Varianten sparen die
wir hier schon diskutiert und verworfen hatten ... also Zeit "gespart"
gruss by OHR
Jimmy
ich denke das es für dein Problem wohl die "einfachste" Lösung wäreManfred hat geschrieben:nein benutze ich nicht. Ich habe mir das Teil irgendwie zusammengebaut, bis es lief. Wenn ich ehrlich bin weiß ich noch nicht so recht wie es läuft. (xbpbrowse, xbpquickbrowse)
die Interpreten "on the fly" zu sortieren.
also baue neben deinen Browser als "dritte Spalte" eine leer Xbplistbox.
wenn du nun in deinem Browse navigierst wird der Zustand "stable"
erreicht und oBrowse:stableblock ausgeführt.
Als Codeblock gibst du nun deine Funktion an die das Array erstellt und
damit die XbpListbox "füllt". Wenn du zum Interpreten auch noch die
RECNO() in das Array nimmst wäre sogar eine "rückwärtz suche"
möglich da du durch einen doppel click in der XbpListbox eine neue
Suche auslösen könntest.
Ich kam vorhin auf die Idee als ich etwas ähnliches machen musste und
an dein Problem dachte. Nun konnte ich mir all die Varianten sparen die
wir hier schon diskutiert und verworfen hatten ... also Zeit "gespart"
gruss by OHR
Jimmy