Filtering on a record

ezeeze Posts: 3Member
Hi guys, I have a question about filtering. Here is a situation:
I filter Item table on product posting group:
Item.SETRANGE("Product Posting Group", 'Test');

And what I need now is to filter on Sales Shipment Line table to find all the lines where these items are used. So
SalesShipLine.SETRANGE(Type, SalesShipLine.Type::Item);
SalesShipLine.SETFILTER("No.", Item.GETFILTER("No."):

I have expected this to work, but appereantly GETFILTER does not work, because I have noy applied SETRANGE or SETFILTER on "No." field in Item table. Any ideas how to make it work?


  • Slawek_GuzekSlawek_Guzek Posts: 1,647Member
    GETFILTER returns filter set on a given field. It does work, but it in your case Item.GETFILTER("No.") returns an empty string, because, as you already noticed, you have not applied any filter on No. field in the Item table.

    What you need to do is to build a filter string including all items numbers, for all items which have product posting group set to 'TEST'

    You would normally do this by looping through Item table and building in a text variable a filer looking like this: Item1|Item2|Item5|Item15 and so on.

    Once you build your filter expression you can apply it to SalesShipLine."No." field.

    Luckily standard NAV includes a function which can build such a filter for you. Look into Codeunit 46 Selection Filter Management, function GetSelectionFilterForItem(Item). You can use it like this
    Item.SETRANGE("Product Posting Group", 'Test');
    ItemNoFilter := SelectionFilterManagement.GetSelectionFilterForItem(Item);
    SalesShipLine.SETRANGE(Type, SalesShipLine.Type::Item);
    SalesShipLine.SETFILTER("No.", IItemNoFilter);
    Slawek Guzek
    Dynamics NAV, MS SQL Server, Wherescape RED;
    PRINCE2 Practitioner - License GR657010572SG
    GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03
  • krikikriki Posts: 8,660Member, Moderator
    [Topic closed because of double posting]

    Regards,Alain Krikilion
    Use the SEARCH,Luke! || No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
    NAV TechDays 2019: 21 & 22 November 2019, Antwerp (Belgium)
This discussion has been closed.