Seite 1 von 1
Bedingter Filter / 2 Dateien...?
Verfasst: Di, 02. Okt 2018 14:07
von mini990
Hallo,
Ich habe folgendes Problem:
Wenn in Datei 1 eine Bedingung erfüllt wird ( z.B. Tag = sowieso )
so soll in Datei 2 ein Filter gesetzt werden auf die Kundennummern, die die Bedingung in Datei 1 erfüllen.
Früher ( zu Clipper Zeiten ) habe ich Subntx() benutzt.
Rasend schnell...
Gibt es unter XBase etwas vergleichbares?
Gruß Stefan
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Di, 02. Okt 2018 15:04
von Tom
DbSetScope()?
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Mo, 08. Okt 2018 16:20
von mini990
Hab da jetzt einiges probiert.... Gibt's da irgendwo brauchbare Beispiele?
In der Hilfe hab ich nix gefunden...
Gruß Stefan
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Mo, 08. Okt 2018 17:35
von HaPe
In _dcscope.prg ist ein Beispiel drin; ob das für dich brauchbar ist
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Mo, 08. Okt 2018 17:46
von mini990
wo finde ich dieses Beispiel?
Gruß Stefan
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Mo, 08. Okt 2018 20:41
von Jan
Schematisch:
Code: Alles auswählen
meinedbf->(ordSetFocus("meinIndex"))
meinedbf->(DbSetScope(SCOPE_BOTH, cSuchwert))
Jan
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Mo, 08. Okt 2018 21:27
von georg
oder unter SET SCOPE. Da ist zumindest in der Dokumentation zur 2.0 ein Beispiel drin.
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Di, 09. Okt 2018 16:27
von HaPe
Hallo Stefan !
wo finde ich dieses Beispiel?
Entschuldige, das ist in einer eXpress-Version.
Hier der Quellcode-Auszug davon.
Code: Alles auswählen
IF !DC_ScopeExpress()
IF nWhich == 0
nWhich := SCOPE_TOP
ELSEIF nWhich == 1
nWhich := SCOPE_BOTTOM
ENDIF
xOldValue := dbScope(nWhich)
IF PCount() >= 2
IF xValue == NIL
dbClearScope(nWhich)
ELSE
dbSetScope(nWhich,xValue)
ENDIF
ENDIF
return xOldValue
ENDIF
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Mi, 10. Okt 2018 8:08
von brandelh
bei dbSetScope() - das sehr schnell arbeitet - muss man aufpassen, dass man die Suchbegriffe richtig übergibt UND die müssen im Index sauber zu finden sein !
SCOPE_TOP => nicht der größere Wert, sondern der am Anfang (wie bei DBF go top), also von "A" bis "Z" => "A"
SCOPE_BOTTOM => nicht der kleinere Wert, sondern der am Ende (wie bei DBF go bottom), also von "A" bis "Z" => "Z"
Da habe ich schon häufig die Start und Endwerte vertauscht und mich gewundert, warum gar nix kam.
Re: Bedingter Filter / 2 Dateien...?
Verfasst: Mi, 10. Okt 2018 8:50
von mini990
Habe es nun mit einem neuen Index uns DBSetScope() / DBSetrelation() gelöst.
Funktioniert und ist schnell, leider halt eine weitere Indexdatei.
Da sehnt man sich die aus Clipper-Zeiten bekannte SubNtx() zurück...
Danke
Gruß Stefan