[GELÖST] Feldfilter bei interessanter Artikelnr.

23. September 2015 15:02

Hallo Miteinander,

so langsam gehen mir echt die Ideen aus.

Im Code-Feld der Item No. sehen die Artikelnummern teilweise so aus: 0976210 100

Möchte ich alle Artikel die aus den ersten 4 Zeichen bestehen filtern, klappt das reibungslos: 0976*
Möchte ich jedoch alle Artikel, außer diejenigen, die mit 0976 beginnen, Filter <>0976* funktioniert das ganze nicht. Die Artikel sind trotzdem enthalten. Ich vermute es liegt an dem Leerzeichen bei der Nummer 0976210 100.

Hat jemand eine Idee?
Zuletzt geändert von MSNAVLerner am 6. Oktober 2015 07:55, insgesamt 2-mal geändert.

Re: Feldfilter bei "interessanter" Artikelnr.

23. September 2015 15:07

MSNAVLerner hat geschrieben:Möchte ich jedoch alle Artikel, außer diejenigen, die mit 0976 beginnen, Filter <>0976' funktioniert das ganze nicht.
War es vielleicht nur ein Tippfehler beim Schreiben des Betrags? Richtig wäre <>0976*

Re: Feldfilter bei "interessanter" Artikelnr.

23. September 2015 15:10

Natalie hat geschrieben:
MSNAVLerner hat geschrieben:Möchte ich jedoch alle Artikel, außer diejenigen, die mit 0976 beginnen, Filter <>0976' funktioniert das ganze nicht.
War es vielleicht nur ein Tippfehler beim Schreiben des Betrags? Richtig wäre <>0976*


Sorry, war ein Tippfehler beim Schreiben. Habe es mit dem Sternchen gefiltert.

Re: Feldfilter bei "interessanter" Artikelnr.

23. September 2015 15:39

Ein "Ungleich-Filter" funktioniert nur beim SQL-Server - könnte es sein, dass ihr noch mit der nativen Datenbank (*.fdb) arbeitet?

Re: Feldfilter bei "interessanter" Artikelnr.

23. September 2015 15:43

Ja wir sind noch auf der Native Datenbank. Wieso funktioniert der <>-Filter nur bei SQL? Ich dachte das funktioniert bei beiden Datenbanksystemen? Deswegen bin ich so überrascht, dass es hier nicht klappt.
Was für Möglichkeiten gibt es dann bei der nativen Lösung?

Re: Feldfilter bei "interessanter" Artikelnr.

23. September 2015 15:49

MSNAVLerner hat geschrieben:Ja wir sind noch auf der Native Datenbank. Wieso funktioniert der <>-Filter nur bei SQL?

Keine Ahnung, warum der in der nativen Datenbank nicht implementiert werden konnte ;-)
Steht so aber auch in der Onlinehilfe, Artikel "Filterkriterien eingeben":
Die SQL Server Option ermöglicht es Ihnen, dieses Symbol mit Platzhaltern zu kombinieren. Zum Beispiel bedeutet <>A*, dass nach Texten gesucht werden soll, die nicht mit einem großen A beginnen.


Was für Möglichkeiten gibt es dann bei der nativen Lösung?

Den umgekehrten Weg zu gehen: Erst alle Datensätze mit MARK markieren, dann für alle NICHT erlaubten Datensätze die Markierung zu entfernen, und zum Schluss auf die noch immer markierten Datensätze zu filtern.

Re: Feldfilter bei "interessanter" Artikelnr.

23. September 2015 16:05

Okay, also negiert an das ganze ran gehen.

Ich bin gerade dabei einen Report zu bauen der mir die Anzahl aller Artikel gibt, deren Artikelnr. nicht mit "0976*" beginnt.
Die Anzahl ermittel ich über einen einfachen counter := counter + 1 im OnAfterGetRecord. Liege ich nun gedanklich korrekt, wenn ich im OnAfterGetRecord prüfe, ob die "Item No." mit 0976* beginnt, dann einen currreport.skip ausführe und somit bei diesem einen OnAfterGetRecord der Befehl "counter := counter +1" nicht ausführe?

Mit einem <>-Filter wäre das alles echt einfacher :-D

Re: Feldfilter bei "interessanter" Artikelnr.

23. September 2015 16:52

MSNAVLerner hat geschrieben:Ich bin gerade dabei einen Report zu bauen der mir die Anzahl aller Artikel gibt, deren Artikelnr. nicht mit "0976*" beginnt.

Geht es dir nur um die bloße Anzahl, oder um die Ausgabe der einzelnen Artikel <>0976*?
Im ersteren Fall reicht doch auch ein
Code:
Anzahl := ItemOhneJedenFilter.COUNT - ItemFilterBeginntMit0976.COUNT;

Re: Feldfilter bei "interessanter" Artikelnr.

24. September 2015 08:34

Natalie hat geschrieben:
MSNAVLerner hat geschrieben:Ich bin gerade dabei einen Report zu bauen der mir die Anzahl aller Artikel gibt, deren Artikelnr. nicht mit "0976*" beginnt.

Geht es dir nur um die bloße Anzahl, oder um die Ausgabe der einzelnen Artikel <>0976*?
Im ersteren Fall reicht doch auch ein
Code:
Anzahl := ItemOhneJedenFilter.COUNT - ItemFilterBeginntMit0976.COUNT;


Mir geht es bloß um die Anzahl. Da wäre dein Vorschlag natürlich passend.
Mir ging das mit dem <> nicht aus dem Kopf und ich habe es mal testweise bei anderen Reports probiert und dort funktionierts reibungslos. Wenn ich beispielsweise <>KreditorNr. als Filterkriterium eingegeben habe, hat dies ohne Probleme funktioniert. Ich bekam alle außer der eingegeben Kreditornr. Die Native kann somit ja <> auswerten. Da komme ich wieder zurück zu meiner Idee, dass es an der Leerzeile der Artikelnr. liegen könnte: "097623 110".

Bin echt verwirrt.

Re: Feldfilter bei "interessanter" Artikelnr.

24. September 2015 08:37

MSNAVLerner hat geschrieben:Mir ging das mit dem <> nicht aus dem Kopf und ich habe es mal testweise bei anderen Reports probiert und dort funktionierts reibungslos. Wenn ich beispielsweise <>KreditorNr. als Filterkriterium eingegeben habe, hat dies ohne Probleme funktioniert.
Jetzt verwirrst du MICH :lol:

Da komme ich wieder zurück zu meiner Idee, dass es an der Leerzeile der Artikelnr. liegen könnte: "097623 110".
Wäre mir neu.
Versuch mal <>'0976*'

Re: Feldfilter bei "interessanter" Artikelnr.

24. September 2015 09:07

Natalie hat geschrieben:Jetzt verwirrst du MICH :lol:


Wäre mir neu.
Versuch mal <>'0976*'


Dabei war das gar nicht meine Absicht :mrgreen:

Die Hochkommatas werden automatisch entfernt, sobald ich den Filter bestätigen möchte. Es bleibt dann immer nur <>0976*

Re: Feldfilter bei "interessanter" Artikelnr.

24. September 2015 11:17

Hallo,

wie wär's mit

SETFILTER('..0975|0977..');

oder

SETFILTER('..0975ZZZZ|0977..');

Dadurch sollte 0976* ausgegrenzt sein.


Andi

Re: Feldfilter bei "interessanter" Artikelnr.

24. September 2015 11:32

vempire hat geschrieben:Hallo,
wie wär's mit
SETFILTER('..0975|0977..');


Wollte ich auch grad vorschlagen :) Müsste aber ..0976 sein (Alle Artikel bis 0976)

Re: Feldfilter bei "interessanter" Artikelnr.

24. September 2015 12:56

elTorito hat geschrieben:Wollte ich auch grad vorschlagen :) Müsste aber ..0976 sein (Alle Artikel bis 0976)


Da muss ich widersprechen. Da wäre der Artikel '0976' dabei, wenn es so eine (4-stellige) Artikelnr gäbe.
Deshalb die Idee mit den vielen "Z". "..0975ZZZZ"

Re: Feldfilter bei "interessanter" Artikelnr.

24. September 2015 14:28

vempire hat geschrieben:
elTorito hat geschrieben:Wollte ich auch grad vorschlagen :) Müsste aber ..0976 sein (Alle Artikel bis 0976)


Da muss ich widersprechen. Da wäre der Artikel '0976' dabei, wenn es so eine (4-stellige) Artikelnr gäbe.
Deshalb die Idee mit den vielen "Z". "..0975ZZZZ"


Hast du es ausprobiert?

..X heißt alle Artikel bis jene die mit X anfangen , während X.. für alle Artikel ab X (inkl die die mit X anfangen)

Re: Feldfilter bei "interessanter" Artikelnr.

24. September 2015 20:55

MSNAVLerner hat geschrieben:Möchte ich jedoch alle Artikel, außer diejenigen, die mit 0976 beginnen, Filter <>0976* funktioniert das ganze nicht

Versuche es mal anstatt mit
Code:
SETFILTER("No.",'<>0976*');
mit
Code:
SETFILTER("No.",STRSUBSTNO('<>%1','0976*'));

SETFILTER war (zumindest in früheren Versionen) etwas fehlerhaft was solche oder ähnliche Filter angeht

Re: Feldfilter bei "interessanter" Artikelnr.

25. September 2015 08:52

Jupiter hat geschrieben:
MSNAVLerner hat geschrieben:Möchte ich jedoch alle Artikel, außer diejenigen, die mit 0976 beginnen, Filter <>0976* funktioniert das ganze nicht

Versuche es mal anstatt mit
Code:
SETFILTER("No.",'<>0976*');
mit
Code:
SETFILTER("No.",STRSUBSTNO('<>%1','0976*'));

SETFILTER war (zumindest in früheren Versionen) etwas fehlerhaft was solche oder ähnliche Filter angeht



So hat es leider auch nicht funktioniert. Ich bin ziemlich verwirrt dahingehend, dass bei anderen Reports das Filterkriterium "<>" reibungslos funktioniert, doch hier macht es mir Probleme

Re: Feldfilter bei "interessanter" Artikelnr.

25. September 2015 09:53

MSNAVLerner hat geschrieben:So hat es leider auch nicht funktioniert. Ich bin ziemlich verwirrt dahingehend, dass bei anderen Reports das Filterkriterium "<>" reibungslos funktioniert, doch hier macht es mir Probleme


"<>" tut immer, nur nicht in Kombination mit "*". "Ungleich irgendwas" .. was soll das sein? Das ist nicht eindeutig.

Wizo prüfst du meinen Vorschlag nicht und wirst glücklich?

Re: Feldfilter bei "interessanter" Artikelnr.

25. September 2015 11:07

Die Variante von vempire und elTorito sollten klappen, allerdings nur dann wenn ihr einen SQL Server habt.
Bei einer nativen Datenbank werden die Codefelder anders sortiert. :)
Das wird wohl auch der Grund sein warum <>A* für native Datenbanken nicht implementiert wurde.

SQL Server:
1
11
112
22
223

native Datenbank:
1
11
22
112
223

P.S.: Daher ist es ratsam bei Artikelnummern möglichst eine einheitliche Länge zu haben.

Es geht in der nativen DB auch über Filter, welche aber unschön sind! :wink:

z.B.:
(..0775|0777)&(????)|(..07759|07770..)&(?????)|(..077599|077700..)&(??????)|(..0775999|0777000..)&(???????)|(..07759999|07770000..)&(????????)|(..077599999|077700000..)&(?????????)|(..0775999999|0777000000..)&(??????????)|(..07759999999|07770000000..)&(???????????)
usw.. (wie lang eben die Artikelnummern werden können)

Bin mir nur nicht mehr sicher wie die native Datenbank das Leerzeichen einsortiert. :)
Evtl. müsste man dann den Filter noch anpassen.

mfg,
winfy

Re: Feldfilter bei "interessanter" Artikelnr.

29. September 2015 18:53

Natalie hat geschrieben:Ein "Ungleich-Filter" funktioniert nur beim SQL-Server - könnte es sein, dass ihr noch mit der nativen Datenbank (*.fdb) arbeitet?


Das stimmt so nicht, auch in der nativen Datenbank kann man ungleich filtern, nur nicht in Kombination mit Sternchen.

Und dann kommt der Punkt mit der Sortierung von Code Feldern dazu. Die native Datenbank sortiert alles was wie eine Zahl aussieht auch entsprechend und alles was keine Zahl ist dahinter. SQL sortiert Code Felder immer wie Textfelder.

Re: Feldfilter bei "interessanter" Artikelnr.

30. September 2015 14:26

Ich habe nun in der Artikelkarte eine Feld gefunden (Artikelgruppe), über die ich nicht benötigte Artikel ausklammern kann.

Danke für die rege Hilfe! Immer wieder ein Genuss mit Gleichgesinnten sich auszutauschen und so viel dabei zu lernen.