[GELÖST] Alternative zu settableview

23. Dezember 2015 14:28

Ho Ho Ho Zusammen,

kurz vor Weihnachten hänge ich noch an einem Problem, für das ich einfach keine Lösung finde.

Ich öffne aus einer Form heraus einen Report und möchte diesem einen Filter mitgeben.
An sich nichts aufregendes. Mein Problem ist jedoch, dass der Filter von der Zeichenlänge begrenzt wird.

Code:
recEinkKopf.SETRANGE("Document Type", recEinkKopf."Document Type"::Order);
repFilter.SETTABLEVIEW(recEinkKopf);
repFilter.SetzeFilter(txtFilter);
repFilter.RUNMODAL();


in der Textvariablen txtFilter habe ich eine Latte von Bestellnummern, bspw. B123456|B456789|B789456|B456123.


Es kommt nun, wie zu erwarten war, der Fehler, dass das Feld "Nr." in der Table Einkaufskopf einen Wert enthält, der die Feldlänge überschreitet. Typ:Code20

Wie bekomme ich es nun hin, dass ich einen langen Filter übergeben bekomme? Wenn man von Hand dies im Code einrichtet, oder aber vom Anwender eingegeben wird, funktioniert es ja auch.

36.png

20.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von MSNAVLerner am 23. Dezember 2015 15:56, insgesamt 1-mal geändert.

Re: alternative zu settableview

23. Dezember 2015 14:47

Um näheres über den aktuellen Code Aussagen zu können, müsste ich die Funktion "SetzeFIlter" einsehen können.
Wenn in der txtFilter der Filter für die Bestellnummern (B123456|B234566..) steht, dann könnte auch schon dieser Code funktionieren:
Code:
PurchHeader.SETRANGE("Document Type",PurchHeader."Document Type"::Order);
PurchHeader.SETFILTER("No.",txtFilter);
repFilter.SETTABLEVIEW(PurchaseHeader);
repFilter.RUNMODAL;


Ich habe hier im Beispiel mal die Variable recEinkKopf in PurchHeader umbenannt.

Ich sehe allerdings noch ein Problem darin, falls es mal dazu kommen sollte, dass die Variable txtFilter die Maximale Zeichenlänge von 1024 Zeichen erreichen sollte, dann hätte man an der Stelle der Füllung dieser Variable wieder ein Problem. Dieses könnte man durch füllen und auslesen einer temporären Tabelle verhindern.

Ich hoffe ich konnte weiterhelfen.

Re: alternative zu settableview

23. Dezember 2015 14:56

Die Funktion "SetzeFilter" habe ich jetzt im Nachhinein zum ausprobieren eingebaut.
Sieht so aus:

Code:
"Purchase Header".SETFILTER("No.",txtFilter);


Vorher sah meine Funktion so aus

Code:
recEinkKopf.SETRANGE("Document Type", recEinkKopf."Document Type"::Order);
recEinkKopf.SETFILTER("No.", txtFilter);
repFilter.SETTABLEVIEW(recEinkKopf);
repFilter.RUNMODAL();


Also genauso wie deine Funktion. Da kam die Fehlermeldung zum ersten Mal.

Re: alternative zu settableview

23. Dezember 2015 15:07

... muss meine Aussage revidieren.
Ich hatte den Filter auf die "No." mit SETRANGE gesetzt. Da kommt der Fehler.
Mit SETFILTER klappts reibungslos!

Danke dir!

Re: alternative zu settableview

23. Dezember 2015 15:32

Alles klar, dann schöne Feiertage :)