Array und Filter
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21197
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Array und Filter
hm, gerade stoße ich auf ein Problem. Eine DBF kann man ja mit Scope und Filter eingrenzen. Wie macht man das mit einem Array?
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!!
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Array und Filter
Hallo Manfred,
ohne jetzt die Möglichkeiten des Browses in Express++ zu kennen: Lies einfach nur die Teilmenge der Sätze in das Array ein, die dem Scope-Inhalt entspricht. Das geht auf dem Scope ja supoer schnell. und dann kannst Du das Array ja jederzeit per ASort() umsortieren. Mit einem :refreshAlle() hast Du das dann im Browse auch direkt korret stehen.
Wobei ich mir gerade die Frage stellt, ob man das auch mit DataObjects machen könnte ... Jeder Datensatz ist ein Array-Satz, die Felder sind Methoden im DataObject. Soweit arbeite ich da ja auch schon mit. Ob man die DataObject-Methode im Browse-Datalink angeben kann? Das wäre mal spannend auszutesten ...
Jan
ohne jetzt die Möglichkeiten des Browses in Express++ zu kennen: Lies einfach nur die Teilmenge der Sätze in das Array ein, die dem Scope-Inhalt entspricht. Das geht auf dem Scope ja supoer schnell. und dann kannst Du das Array ja jederzeit per ASort() umsortieren. Mit einem :refreshAlle() hast Du das dann im Browse auch direkt korret stehen.
Wobei ich mir gerade die Frage stellt, ob man das auch mit DataObjects machen könnte ... Jeder Datensatz ist ein Array-Satz, die Felder sind Methoden im DataObject. Soweit arbeite ich da ja auch schon mit. Ob man die DataObject-Methode im Browse-Datalink angeben kann? Das wäre mal spannend auszutesten ...
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Array und Filter
Hallo,
DC_SOPEARRAY(aRec) dürfte das sein was Du suchst, Du kannst ein mehrdimensionales Array verwenden, nur das erste Element muss die Record Nummer sein. die anderen kannst Du zum Sortieren nehmen. Geht sehr schnell auch bei größeren Datenmengen.
Grüße
Rudolf
DC_SOPEARRAY(aRec) dürfte das sein was Du suchst, Du kannst ein mehrdimensionales Array verwenden, nur das erste Element muss die Record Nummer sein. die anderen kannst Du zum Sortieren nehmen. Geht sehr schnell auch bei größeren Datenmengen.
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Array und Filter
Ein Scope auf die Daten im Browser dürfte hier eher falsch sein. Die Vorgehensweise bei Manfred ist: Es werden nur Sätze mit einer bestimmten Bedingung angezeigt (das Datum muß das gewählte sein). Das ginge ja noch mit einem Scope auf diese Spalte. Aber man muß dann die gefilterten Sätze noch nach verschiedenen Spalten sortieren können.
Und das geht ja mit einem Scope nicht mehr. Sobald ich den Index wechsle, ist der Scope nicht mehr aktiv. Xbase++ merkt sich zwar, wie der Scope auf einen Index lautet, wenn auf einen anderen gewechselt wird. Wechselt man also wieder auf den Scope-Index zurück, ist auch der Scope wieder da. Aber der Scope wirkt nicht, wenn der betreffende index nicht der aktive ist.
Jan
Und das geht ja mit einem Scope nicht mehr. Sobald ich den Index wechsle, ist der Scope nicht mehr aktiv. Xbase++ merkt sich zwar, wie der Scope auf einen Index lautet, wenn auf einen anderen gewechselt wird. Wechselt man also wieder auf den Scope-Index zurück, ist auch der Scope wieder da. Aber der Scope wirkt nicht, wenn der betreffende index nicht der aktive ist.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: Array und Filter
Hallo,
genau das macht dc_setscopearray(), und man kann mehrere Arrays gleichzeitig aufbauen und dann sehr schnell welchseln. Also zuerst über den Index z.B. auf Datum alle Records die entsprechen mit Sortierkriterien als zusätzliche Elemente ins Array, geht sehr schnell. Dann dc_setscoparray() und man hat nur die gewünschte Teilmenge. Beim wechseln der Reichenfolge einfach das Array umsortieren. Kann mir nicht vorstellen dass es schneller oder komfortabler gehen könnte.
Grüße
Rudol
genau das macht dc_setscopearray(), und man kann mehrere Arrays gleichzeitig aufbauen und dann sehr schnell welchseln. Also zuerst über den Index z.B. auf Datum alle Records die entsprechen mit Sortierkriterien als zusätzliche Elemente ins Array, geht sehr schnell. Dann dc_setscoparray() und man hat nur die gewünschte Teilmenge. Beim wechseln der Reichenfolge einfach das Array umsortieren. Kann mir nicht vorstellen dass es schneller oder komfortabler gehen könnte.
Grüße
Rudol
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- Manfred
- Foren-Administrator
- Beiträge: 21197
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Array und Filter
Hallo Rudolf,
Danke für den Hinweis. Das werde ich mir mal in den nächsten Tagen anschauen, ob es für mich in Frage kommt.
Danke für den Hinweis. Das werde ich mir mal in den nächsten Tagen anschauen, ob es für mich in Frage kommt.
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!!