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