Array und Filter

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Array und Filter

Beitrag von Manfred »

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!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Array und Filter

Beitrag von Jan »

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Array und Filter

Beitrag von Rudolf »

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
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Array und Filter

Beitrag von Jan »

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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Array und Filter

Beitrag von Rudolf »

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
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Array und Filter

Beitrag von Manfred »

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.
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!!
Antworten