Setting Filter in multiple field in the same record

SimoGsiSimoGsi Member Posts: 23
edited 2004-11-19 in Navision Financials
Hello All,

I am developping a function in C/Al , i wanna set a filter for 3 fields on one table
to do this i do :
rec.SETFILTER(Field,'<>%1','AR*');
rec.SETFILTER(Field1,'<>%1','TR*');
rec.SETFILTER(Field2,'<>%1','VR*');

but i doesn't seem to work when i iterate through this record(it still generating all records including ones staring with AR.......)

Can you pls help me to resolve this problem

Thank you in advance
Navision

Comments

  • wilsontangwilsontang Member Posts: 5
    i tried the same case before. it doesn't work as well too.
  • Tommy_SchouTommy_Schou Member Posts: 117
    SimoGsi wrote:
    Hello All,

    I am developping a function in C/Al , i wanna set a filter for 3 fields on one table
    to do this i do :
    rec.SETFILTER(Field,'<>%1','AR*');
    rec.SETFILTER(Field1,'<>%1','TR*');
    rec.SETFILTER(Field2,'<>%1','VR*');

    but i doesn't seem to work when i iterate through this record(it still generating all records including ones staring with AR.......)

    Can you pls help me to resolve this problem

    Thank you in advance

    Well. Navision will interpret it as if you want all records where the value in field 1, 2, 3 is actually different from the actual string 'AR*'. It will not use then * as you would think.

    If you really really need this you might do something like this:
    Customer.SETFILTER(Name,'Ko*');
    FORM.RUNMODAL(0,Customer);
    Customer.FIND('-');
    REPEAT
      Customer.MARK(TRUE);
    UNTIL Customer.NEXT = 0;
    Customer.SETRANGE(Name);
    Customer.MARKEDONLY(TRUE);
    FORM.RUNMODAL(0,Customer);
    
    Customer.MARKEDONLY(FALSE);
    Customer.FIND('-');
    REPEAT
      Customer2 := Customer;
      Customer2.MARK(NOT Customer.MARK);
    UNTIL Customer.NEXT = 0;
    Customer2.MARKEDONLY(TRUE);
    FORM.RUNMODAL(0,Customer2);
    

    But on large tables it will be terribly in-efficient.

    The above code is just to illustrate how it could be done and how it works.
    Best regards
    Tommy
  • RobertMoRobertMo Member Posts: 484
    What if you try:
    rec.SETFILTER(Field,'..AR|AS..');
    rec.SETFILTER(Field1,'..TR|TS..');
    rec.SETFILTER(Field2,'..VR|VS..');
               ®obi           
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  • kinekine Member Posts: 12,562
    I think that '<>XX*' filter style is in documentation from version 3.60 and only for SQL...
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
Sign In or Register to comment.