Filter Problem
Joaquimcfraga
Member Posts: 14
I have 2 tables in a master child relation. I want to select the records from the master table wich child has a specific value.
For instance, on a Order - OrderLines relation, i want to select all Orders wich OrderLines have product 'xpto'.
How can i do this with code?
For instance, on a Order - OrderLines relation, i want to select all Orders wich OrderLines have product 'xpto'.
How can i do this with code?
Joaquim Fraga
VISIONE
VISIONE
0
Comments
-
Something like this:
// loop the headers you want to check recSalesHeader.RESET; recSalesHeader.SETCURRENTKEY(...); recSalesHeader.SETRANGE(...); IF recSalesHeader.FINDSET THEN REPEAT // filter the lines in current header that have the product you want recSalesLine.RESET; recSalesLine.SETCURRENTKEY("Document Type","Document No.","Line No."); recSalesLine.SETRANGE("Document Type",recSalesHeader."Document Type"); recSalesLine.SETRANGE("Document No.",recSalesHeader."No."); recSalesLine.SETRANGE("No.",'XPTO'); // mark the record if "recSalesLine" is NOT empty recSalesHeader.MARK(NOT recSalesLine.ISEMPTY); UNTIL recSalesHeader.NEXT = 0; // show only marked records recSalesHeader.MARKEDONLY(TRUE); FORM.RUNMODAL(0,recSalesHeader);
Another solution:With flowfields : if the product is ALWAYS 'XPTO'
-create a flowfield "Select This Record" on header with formula :Exist("Sales Line" WHERE (Document Type=FIELD(Document Type),Document No.=FIELD(No.),No.=CONST(XPTO)))// filter the records you need recSalesHeader.RESET; recSalesHeader.SETCURRENTKEY(...); recSalesHeader.SETRANGE(...); recSalesHeader.SETRANGE("Select This Record",TRUE); FORM.RUNMODAL(0,recSalesHeader);
Another solution:With flowfields : if the product is variable
-create a flowfilter "Item Filter" as Code20
-create a flowfield "Select This Record" on sales header with formula :Exist("Sales Line" WHERE (Document Type=FIELD(Document Type),Document No.=FIELD(No.),No.=FIELD(Item Filter)))// filter the records you need recSalesHeader.RESET; recSalesHeader.SETCURRENTKEY(...); recSalesHeader.SETRANGE(...); recSalesHeader.SETRANGE("Item Filter",'Some Item'); recSalesHeader.SETRANGE("Select This Record",TRUE); FORM.RUNMODAL(0,recSalesHeader);Regards,Alain Krikilion
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!0 -
It worked. Thank youJoaquim Fraga
VISIONE0
Categories
- All Categories
- 75 General
- 75 Announcements
- 66.7K Microsoft Dynamics NAV
- 18.8K 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
- 610 NAV Courses, Exams & Certification
- 1.9K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 251 Dynamics CRM
- 103 Dynamics GP
- 6 Dynamics SL
- 1.5K Other
- 991 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 28 Design Patterns (General & Best Practices)
- Architectural Patterns
- 9 Design Patterns
- 4 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1K General Chat
- 1.6K Website
- 77 Testing
- 1.2K Download section
- 23 How Tos section
- 249 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions