Array und Filter

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

Moderator: Moderatoren

Array und Filter

Beitragvon Manfred » Mo, 14. Nov 2016 10:50

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 16090
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Array und Filter

Beitragvon Jan » Mo, 14. Nov 2016 11:06

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11623
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Array und Filter

Beitragvon Rudolf » Mo, 14. Nov 2016 11:38

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
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1201
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: Array und Filter

Beitragvon Jan » Mo, 14. Nov 2016 12:20

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11623
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Array und Filter

Beitragvon Rudolf » Mo, 14. Nov 2016 12:26

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
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1201
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: Array und Filter

Beitragvon Manfred » Mo, 14. Nov 2016 12:32

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 16090
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel


Zurück zu Daten und Tabellen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast