Maximale Länge für einen Feldfilter?

17. März 2010 13:34

Hallo zusammen,

heute wende ich mich mal wieder mit einer Frage an euch:

Ich muss dynamisch einen Artikelfilter anhand verwendeter Artikelnummern in einem Verkaufsbeleg zusammenstellen.
Dies funktioniert auch wunderbar, jedoch kann es vorkommen, dass der zusammengesetzte Text länger wird, als man tatsächlich mittels SETFILTER auf ein Feld anwenden kann.

Meine Textvariable ist bisher als Text[1024] definiert, jedoch meckert NAV, wenn man mit diesem Text anschließend Item.SETFILTER("No.",MeinFilterString) aufruft.

Was ich bisher herausgefunden habe:
- Der Text darf deutlich über 250 Zeichen lang sein.
- Der Text muss deutlich unter 1024 Zeichen lang sein.

Weiß also jemand, wieviel Zeichen maximal an SETFILTER übergeben werden dürfen?

DB: 5.0 SP1
finsql.exe: 5.0 SP1 Update 2

Re: Maximale Länge für einen Feldfilter?

17. März 2010 14:29

ich hatte mir mal Folgendes ausgedoktort: Max. Anzahl Pipe-getrennter Optionen: 141, aber max. Länge: 508 Zeichen.

Edit: Hab's auch nochmal eben probiert und das kommt nicht hin. Höchstens das mit den 141 Optionen scheint zu greifen, wenn sie kurz sind: a*|b*|c*.....

Re: Maximale Länge für einen Feldfilter?

17. März 2010 16:08

So, weitere Testergebnisse liegen vor:

Wenn ich alle Artikel des Beleges in den Filter übernehmen würde (Duplikate schon ausgenommen), so hätte der String
64 |
3 ..
930 Zeichen insgesamt
Dies ist für NAV zuviel.

Stelle ich sicher, dass der Filtertext nicht größer 762 Zeichen wird, so erhalte ich
52 |
3 ..
750 Zeichen insgesamt
Das wird von NAV akzeptiert.

Ich habe es sowohl mit NAV 5.0 SP1 Build 29125 als auch mit 5.0 SP1 Update 2 (Build 30488) getestet.
750 Zeichen sind bei beiden Builds (unter Windows 7) kein Problem.
Unter WinXP konnte ich es bisher nur mit Build 29125 testen: Ebenfalls kein Problem.

Beim Kunden (WinXP) ist der Filterstring sogar auf maximal 742 Zeichen beschränkt. Trotzdem meckert NAV dort an, dass der Filter zu umfangreich wäre.

Re: Maximale Länge für einen Feldfilter?

17. März 2010 16:22

Auf einem Build29550 kam manchmal die Fehlermeldung, dass der String nicht länger als 252 Zeichen lang sein dürfe, meistens jedoch eine allgemein gehaltene Fehlermeldung. Bis ca. 500 Zeichen kann ich aber rein stopfen. Das schwankt aber je nach Länge der Strings zwischen den Pipes.

Ich erkenne da nicht das geringste System :-?