Indexsortierung
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
Indexsortierung
Hi,
ich habe folgende Struktur:
land -> Char
reserve -> logisch
lagernr -> numerisch
Genre -> Char
Interpret -> Char
Die Indizierung soll auf Land sein.
Innerhalb des Landes soll auf reserve sortiert werden
und innerhalb Reserve auf wenn Reserve, dann lagernr
wenn nicht Reserve dann Genre+Interpret
wie löst man das am besten?
So weit bin ich jetzt
upper(land) + If(reserve,'J','N')
aber jetzt wird des heikel, wie kann ich zwischen "J" und "N" eine weitere Differenz wie oben beschrieben machen? Oder muß ich da anders vorgehen? Mit Subindex, oder wie die Dinger heißen?
ich habe folgende Struktur:
land -> Char
reserve -> logisch
lagernr -> numerisch
Genre -> Char
Interpret -> Char
Die Indizierung soll auf Land sein.
Innerhalb des Landes soll auf reserve sortiert werden
und innerhalb Reserve auf wenn Reserve, dann lagernr
wenn nicht Reserve dann Genre+Interpret
wie löst man das am besten?
So weit bin ich jetzt
upper(land) + If(reserve,'J','N')
aber jetzt wird des heikel, wie kann ich zwischen "J" und "N" eine weitere Differenz wie oben beschrieben machen? Oder muß ich da anders vorgehen? Mit Subindex, oder wie die Dinger heißen?
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
Hi Andreas,
Hm,
das mit dem Left() kann ich jetzt nicht so genau einordnen.
Hm,
das mit dem Left() kann ich jetzt nicht so genau einordnen.
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,
das ist eine "Krücke", da ein Indexausdruck ja immer eine einheitliche Länge haben muss, Du aber verschiedene Felder in Deinem Index (in Abhängigkeit einzelner Felder) unterbringen willst!
Also musst Du den letzten Teil "gleich lang" machen!
Die beiden Felder Genre+Interpret müssen also in Summe so lang sein, wie das Feld lagernr!
Wie lang sind denn Genre und Interpret?
Du könntest auch statt left(...+space(50),50) die Zahl in der Funktion str(... auf die Summe der Feldlängen von Genre und Interpret setzen, das würde auch reichen.
Viele Grüße,
Martin
das ist eine "Krücke", da ein Indexausdruck ja immer eine einheitliche Länge haben muss, Du aber verschiedene Felder in Deinem Index (in Abhängigkeit einzelner Felder) unterbringen willst!
Also musst Du den letzten Teil "gleich lang" machen!
Die beiden Felder Genre+Interpret müssen also in Summe so lang sein, wie das Feld lagernr!
Wie lang sind denn Genre und Interpret?
Du könntest auch statt left(...+space(50),50) die Zahl in der Funktion str(... auf die Summe der Feldlängen von Genre und Interpret setzen, das würde auch reichen.
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
ah,
ich Depp habe das Left in Gedanken auf das logische Feld bezogen.
ich Depp habe das Left in Gedanken auf das logische Feld bezogen.
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
Aber eine Frage habe ich noch:
Lagernr = 6
Genre = 20
Interpret = 50
dann müßte doch eigentlich
genug sein, oder?
Lagernr = 6
Genre = 20
Interpret = 50
dann müßte doch eigentlich
Code: Alles auswählen
Upper(land) + if(reserve,'J','N') + if(reserve,Str(lagernr,6,0)+Space(64),genre+interpret)
Zuletzt geändert von Manfred am Mi, 23. Apr 2008 18:31, 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:
Manfred,
völlig egal - Hauptsache, der Ausdruck ist gleich lang!
Egal ob:
Dein Fehler in Deinem Ausdruck (iif und das zweite Mal vergessen) habe ich korrigiert.
War übrigens eine gute Idee von Andreas - auf die "Krücke" wäre ich nicht gekommen, ich wollte vorhin schon antworten: geht nicht!
Viele Grüße,
Martin
völlig egal - Hauptsache, der Ausdruck ist gleich lang!
Egal ob:
Code: Alles auswählen
Upper(land) + iif(reserve,'J','N') + iif( reserve, Str(lagernr,6,0)+Space(64),genre+interpret)
Upper(land) + iif(reserve,'J','N') + iif( reserve, Str(lagernr,70,0),genre+interpret)
Upper(land) + iif(reserve,'J','N') + left( iif( reserve, Str(lagernr,6,0),genre+interpret) + Space(64), 64 )
War übrigens eine gute Idee von Andreas - auf die "Krücke" wäre ich nicht gekommen, ich wollte vorhin schon antworten: geht nicht!
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
Fehler?
Ich weiß nicht was Du meinst
Ich mußte auch erstmal staunen, was so alles möglich ist. Ich glaube wenn das die anderen Programmierer wüßten, was Xbase++ so alles kann.....
Oder kann man das in den anderen Sprachen auch?
Ich weiß nicht was Du meinst
Ich mußte auch erstmal staunen, was so alles möglich ist. Ich glaube wenn das die anderen Programmierer wüßten, was Xbase++ so alles kann.....
Oder kann man das in den anderen Sprachen auch?
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: 12910
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Indexsortierung
Hi,
warum machst du daraus nicht 2 oder 3 oder 4 Indexe ?
warum einfach wenn es auch komplizert geht ...Manfred hat geschrieben: upper(land) + If(reserve,'J','N')
aber jetzt wird des heikel, wie kann ich zwischen "J" und "N" eine weitere Differenz wie oben beschrieben machen? Oder muß ich da anders vorgehen? Mit Subindex, oder wie die Dinger heißen?
warum machst du daraus nicht 2 oder 3 oder 4 Indexe ?
gruss by OHR
Jimmy
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
Jimmy,
das war ja meine Anfangsfrage, wenn Du eine Idee hast, dann schieß man los....
das war ja meine Anfangsfrage, wenn Du eine Idee hast, dann schieß man los....
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: 12910
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
nun würde ich erstmal ein SEEK() ausführen um den neunen Datensatz
zu erhalten dann eine Prüfung was nun ansteht und "umschalten" auf den
nächsten Index
schon die Entscheidung getroffen. Bei einem FOUND() kommt der Index
mit der "LagerNr" dran und sonst der Index mit "Genre+Interpret", oder?
Das SEEK()/FOUND() meine ich nun als "Logic" die dann "entscheidet"
welcher Index nun dran ist.
Den Anfang (1st Index) hast du doch schon mitManfred hat geschrieben: das war ja meine Anfangsfrage, wenn Du eine Idee hast, dann schieß man los....
Code: Alles auswählen
upper(land) + If(reserve,'J','N')
zu erhalten dann eine Prüfung was nun ansteht und "umschalten" auf den
nächsten Index
also du hast mit "reserve" = "J"/"N" ein SEEK() gemacht und damit dochund innerhalb Reserve auf wenn Reserve, dann lagernr
wenn nicht Reserve dann Genre+Interpret
schon die Entscheidung getroffen. Bei einem FOUND() kommt der Index
mit der "LagerNr" dran und sonst der Index mit "Genre+Interpret", oder?
Das SEEK()/FOUND() meine ich nun als "Logic" die dann "entscheidet"
welcher Index nun dran ist.
gruss by OHR
Jimmy
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
Oops,
da muß ich jetzt aber sagen, dass ich dass recht kompliziert finde. Wenn das mit dem Vorschlag von Andreas so klappt, dann ist das doch einfacher.
Gut, ich habe natürlich nicht das Einsatzgebiet genannt.
Die Tabelle wird gefüllt und dann nur einfach ausgedruckt. Sie muß halt in der Reihenfolge gedruckt werden. Nach Ländern sortiert, dann käme eh ein Seitenvorschub und innerhalb des Landes halt so, das Reserve zuerst kommt und dann der Rest.
Obwohl ich immer noch so meine Probleme habe der Lösung gedanklich zu folgen, aber in ein paar Stunden weiß ich mehr.
da muß ich jetzt aber sagen, dass ich dass recht kompliziert finde. Wenn das mit dem Vorschlag von Andreas so klappt, dann ist das doch einfacher.
Gut, ich habe natürlich nicht das Einsatzgebiet genannt.
Die Tabelle wird gefüllt und dann nur einfach ausgedruckt. Sie muß halt in der Reihenfolge gedruckt werden. Nach Ländern sortiert, dann käme eh ein Seitenvorschub und innerhalb des Landes halt so, das Reserve zuerst kommt und dann der Rest.
Obwohl ich immer noch so meine Probleme habe der Lösung gedanklich zu folgen, aber in ein paar Stunden weiß ich mehr.
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!!