[Gelöst] Filter funktioniert nicht richtig

10. April 2006 11:19

Hallo,

ich habe mal wieder ein kleines Filterproblem. Hier eine kurze Beschreibung meines Vorhabens: Ich möchte prüfen, ob der angemeldete User die Rolle "Rolle_LV" inne hat, ist dies der Fall, sollen die Gliederungsnummern auf den Bereich der eigenen Gliederungsnummer eingegrenzt werden. Die ersten zwei Ziffern der Gliederungsnummer geben den LV-Bereich an. Bsp wenn der User der Gliederungsnummer 07000000 angehört, soll auf den Bereich 07000000 bis 07999999 eingegrenzt werden.

Mein dazu sieht so aus:

Code:
MemberOf_Rec.SETCURRENTKEY("User ID","Role ID");
MemberOf_Rec.SETRANGE("User ID",USERID);
MemberOf_Rec.SETRANGE("Role ID",'ROLLE LV');
  IF MemberOf_Rec.FIND ('-') THEN
    Rolle_LV := TRUE;

BSP_User_rec.SETCURRENTKEY("Actual Structure");
BSP_User_rec.SETRANGE("User ID",USERID);
IF BSP_User_rec.FIND('-') THEN
BEGIN
  rec_Structure := BSP_User_rec."Actual Structure";
END;

LV_von := COPYSTR(rec_Structure,1,2) + '000000';
LV_bis := COPYSTR(rec_Structure,1,2) + '999999';

IF Rolle_LV = TRUE THEN BEGIN
  Structure.SETCURRENTKEY("Structure No.");
  FILTERGROUP(6);
  Structure.SETFILTER(Structure."Structure No.", 'LV_von..LV_bis');
  FILTERGROUP(0);
END;


Mein Problem: die Eingrenzung funktioniert zwar, jedoch wird nur der Bereich 07000000 angezeigt. Der Rest wird unterschlagen.

Sicherlich habe ich mal wieder ein Problem mit meinem Filter. Bin wie immer für jeden Hinweis dankbar. So long...

Markus
Zuletzt geändert von mgerhartz am 10. April 2006 13:27, insgesamt 1-mal geändert.

10. April 2006 11:50

Hallo,

ersetzte den SETFILTER durch das hier:
Code:
 Structure.SETFILTER(Structure."Structure No.",'%1..%2',LV_von,LV_bis);


[Korregiert, da sich das Codebeispiel von mir sich nicht auf die Tabellenvariable Structure bezog! Jetzt Stimmt es.]

Gruß Mikka
Zuletzt geändert von mikka am 10. April 2006 12:01, insgesamt 1-mal geändert.

Re: Filter funktioniert nicht richtig

10. April 2006 11:54

Hi Markus,

du schreibst:
mgerhartz hat geschrieben:
Code:
[...]
Structure.SETFILTER(Structure."Structure No.", 'LV_von..LV_bis');


Die Variablen LV_von und LV_bis erkennt Navision nicht als Varibale. Schreibe deshalb folgendes:
Code:
Structure.SETFILTER(Structure."Structure No.", '%1..%2',LV_von,LV_bis);


Gruß, Marc

10. April 2006 11:55

Aaaahh. Mist. Zuspät geantwortet. :-)

10. April 2006 11:58

Nein eigentlich genau richtig,

ich habe beim ausprobieren leider Vergessen den Code wieder passend für die Frage umzuschreiben! :roll:

Gruß Mikka

10. April 2006 11:58

Cool, danke! Es hat funktioniert. Grüße

Markus