Seite 1 von 1

[Gelöst]Setrange mit *

Verfasst: 13. März 2014 12:10
von Franky4Fingas
Hallo Liebe Gemeinde,

ich wieder mal ein kleines Problem wo ihr mir sicher schnell weiterhelfen könnt!

und zwar ich hab ein rec.Setrange Problem

ich möchte gerne wie direkt im NAV einen Filter setzen wo ich zb:
rec.Setrange("doc no.", WIER*);

ich hab jetzt schon allemöglichen arten versucht dies umzusetzen aber die Range greift nie und ich bekomme kein Ergebnis!

Wie kann ich eine Range oder Filter setzen mit dem ich alle die mit WIER anfangen bekomme???

Im normal NAV Filter funkioniert es wenn ich schreibe WIER* aber im Code selber leider nicht .....

Danke schon mal ;)

lg Franky

Re: Setrange mit *

Verfasst: 13. März 2014 12:20
von McClane
Schau mal nach SETFILTER.

Re: Setrange mit *

Verfasst: 13. März 2014 12:33
von Franky4Fingas
Setfilter hab ich schon probiert bekomme da immer den Fehler....

Das Programm kann den Wert des Summenfeldes ..... nicht berechnen, da die Abgrenzung Fragezeiche(?), Sterne(*) oder '@' Zeichen enthält......

Codezeile:

debitorenposten.SETFILTER("Document No.", '%1', 'WIER*');

lg

Re: Setrange mit *

Verfasst: 13. März 2014 12:41
von Markus Merkl
Und mit
Franky4Fingas hat geschrieben:debitorenposten.SETFILTER("Document No.", '%1*', 'WIER');

?

Re: Setrange mit *

Verfasst: 13. März 2014 12:44
von Franky4Fingas
Leider das gleiche....

Re: Setrange mit *

Verfasst: 13. März 2014 12:49
von McClane
Seltsam. Das Feld "Document No." der Tabelle Cust. Ledger Entry ist kein Flowfield. Und selbst, wenn es eines mit Calcformula "SUM" wäre, käme ein anderer Fehler beim kompilieren (davon ausgehend, dass du auf dieses Feld filtern möchtest). Bist du sicher, dass der Fehler nicht woanders herkommt?

Re: Setrange mit *

Verfasst: 13. März 2014 12:51
von Franky4Fingas
ja deswegen frag ich ja hier....
ich weis einfach nicht mehr weiter .....
wollte hier eine statistik haben einfach mit allen WIER* aber ich bring den FIlte nicht zusammen

klammer ich die Zeile aus mit diesem Filter funktioniert calcsums einwandfrei ....
nur mit den Filter schreibt er mit die Meldung ....

lg

Re: Setrange mit *

Verfasst: 13. März 2014 12:53
von McClane
Was für ein calcsums denn? Gib bitte mal mehr code.

Re: Setrange mit *

Verfasst: 13. März 2014 12:55
von Franky4Fingas
Code:
debitorenposten.RESET;
debitorenposten.SETCURRENTKEY("Customer No.","Document Type", "Posting Date", "Document No."); // (Der Key hat auch SumIndexFields mit Sales (LCY) hinterlegt
debitorenposten.SETRANGE("Customer No.", custnr);
debitorenposten.SETRANGE("Document Type", 2);
debitorenposten.SETFILTER("Document No.",test); // test steht nur grad drinn weil ich schon seit 2 Stunden alle möglichen arten probiere ....
debitorenposten.SETRANGE("Posting Date", Umsatz1von, Umsatz1bis);
debitorenposten.CALCSUMS("Sales (LCY)");
Umsatz1:= debitorenposten."Sales (LCY)";
IF Umsatz1 = 0 THEN
  Kontroll
:= Kontroll +0
ELSE
  Kontroll:= Kontroll +1

Re: Setrange mit *

Verfasst: 13. März 2014 12:59
von Franky4Fingas
und hier ist der Fehler den ich immer bekomme ....

Re: Setrange mit *

Verfasst: 13. März 2014 13:14
von McClane
Verstehe. Dafür ist die Architektur eines SumIndex-Fields nicht angelegt. Das kannst du aber mit einer kleinen Schleife über die Debitorenposten umgehen, in der du die Werte summierst.

Re: Setrange mit *

Verfasst: 13. März 2014 13:22
von Franky4Fingas
Hallo danke für die Antwort ;)

Hab es in diesen Moment gerade geschafft....

habs einfach übergangen ....

hab jetzt

test:= 'WIER0000001';
test1:= 'WIER9999999';


debitorenposten.SETFILTER("Document No.",'%1..%2',test,test1);

nun is gut und er nimmt sowieso alle ;)

ABER Trotzdem vielen Dank für die Hilfe ;)

lg Franky

Re: Setrange mit *

Verfasst: 13. März 2014 13:49
von McClane
Ja, das wäre die nächste Möglichkeit gewesen (bei von-bis kannst du auch SetRange nehmen):
Code:
SETRANGE("Document No.", 'AnfangDerNummernserie','EndeDerNummernserie');