Filtering on a record

eze
Member Posts: 3
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?
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?
0
Answers
-
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 thisItem.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-031 -
Regards,Alain Krikilion
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!0
This discussion has been closed.
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions