mibuso.com

Microsoft Business Solutions online community
It is currently Sat May 18, 2013 12:00 pm

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: [Solved] Report - 2 filteringen op 1 tabel mbv tijdelijke tabel
PostPosted: Fri Apr 29, 2011 3:06 pm 
Offline

Joined: Fri Apr 29, 2011 2:51 pm
Posts: 3
Country: Netherlands (nl)
Ik probeer een dubbele filtering op dezelfde tabel uit te voeren mbv een tijdelijke tabel.

Even ter verduidelijking: aan de hand van een ingegeven einddatum probeer ik uit de artikelposten de posten te halen die voor deze datum nog niet volledig geboekt zijn en degenen die volledig geboekt zijn, maar een last invoice date hebben die voor de ingegeven datum ligt.

Ik probeer dit op de volgende manier in het report

DataItem Name
Item Ledger Entry <Item Ledger Entry>
Item Ledger Entry Item Ledger Entry2
Integer <Integer>
--
Code: Select all
Item Ledger Entry - OnPreDataItem()
"Item Ledger Entry".RESET;
"Item Ledger Entry".SETFILTER("Posting Date", '<= %1', EndDate);
"Item Ledger Entry".SETFILTER("Entry Type", '%1', "Entry Type"::Sale);
"Item Ledger Entry".SETRANGE("Completely Invoiced",FALSE);

ItemLedgerEntryTemp := "Item Ledger Entry";
ItemLedgerEntryTemp.INSERT;

---
Code: Select all
Item Ledger Entry2 - OnPreDataItem()
"Item Ledger Entry2".RESET;
"Item Ledger Entry2".SETFILTER("Posting Date", '<=%1', EndDate);
"Item Ledger Entry2".SETFILTER("Entry Type", '%1', "Entry Type"::Sale);
"Item Ledger Entry2".SETRANGE("Completely Invoiced",TRUE);
"Item Ledger Entry2".SETFILTER("Last Invoice Date", '<=%1', EndDate);

ItemLedgerEntryTemp := "Item Ledger Entry2";
ItemLedgerEntryTemp.INSERT;

----
Code: Select all
Integer - OnPreDataItem()
ItemLedgerEntryTemp.SETCURRENTKEY("Source Type","Source No.","Entry Type","Item No.","Variant Code","Posting Date");
Integer.SETRANGE(Number,1, ItemLedgerEntryTemp.COUNT);

Integer - OnAfterGetRecord()
CustName := '';
IF Customer.GET(ItemLedgerEntryTemp."Source No.") THEN
  CustName := Customer.Name;

OrderNo := '';
IF SalesShipmentLine.GET(ItemLedgerEntryTemp."Document No.", ItemLedgerEntryTemp."Document Line No.") THEN
  OrderNo := SalesShipmentLine."Order No.";
  IF OrderNo = '' THEN
    IF ReturnReceiptLine.GET(ItemLedgerEntryTemp."Document No.", ItemLedgerEntryTemp."Document Line No.") THEN
    OrderNo := ReturnReceiptLine."Return Order No.";


Wanneer ik dit uitvoer krijg ik alleen telkens de foutmelding Artikelpost Volgnummer '0' is reeds aanwezig, volgens mij doordat hij bij de Item Ledger Entry2, de ItemLedgerEntryTemp, weer opnieuw probeert te vullen. Maar ik weet dit niet zeker, en zou niet weten hoe ik dit kan oplossen.

Iemand een idee?


Top
 Profile E-mail  
 
 Post subject: Re: Report - 2 filteringen op 1 tabel mbv tijdelijke tabel
PostPosted: Wed May 11, 2011 2:27 pm 
Offline
Site Admin
MVP Microsoft Dynamics NAV
NAV TechDays 2013 attendee

Joined: Sun Nov 07, 1999 8:01 am
Posts: 3288
Location: Wilrijk
Country: Belgium (be)
Ik neem aan dat de ItemLedgerEntryTemp := ... en ItemLedgerEntryTemp.INSERT; statements in de OnAfterGetRecord-trigger van de eerste twee dataitems staan?

In de Integer-dataitem moet je nog code toevoegen in de OnAfterGetRecord-trigger om de ItemLedgerEntryTemp-tabel te doorlopen:

Code: Select all
IF Number = 1 THEN
  ItemLedgerEntryTemp.FINDFIRST
ELSE
  ItemLedgerEntryTemp.NEXT;

Als je de debugger aanzet en je voert je rapport uit, op welke regel krijg je dan de foutmelding?

_________________
No support using PM or e-mail - Please use this forum.
Search is your friend || Mark your Topic as SOLVED (= green checkmark) when your question is answered || Read the Forum Rules before making a posting

»»» Mark your calendar: NAV TechDays 2013 - 7 & 8 November 2013 ««« Visit the conference website: www.navtechdays.com


Top
 Profile  
 
 Post subject: Re: Report - 2 filteringen op 1 tabel mbv tijdelijke tabel
PostPosted: Wed May 11, 2011 4:55 pm 
Offline

Joined: Fri Apr 29, 2011 2:51 pm
Posts: 3
Country: Netherlands (nl)
Luc Van Dyck wrote:
Ik neem aan dat de ItemLedgerEntryTemp := ... en ItemLedgerEntryTemp.INSERT; statements in de OnAfterGetRecord-trigger van de eerste twee dataitems staan?


Dat had ik eerst wel, maar doordat ik bij de debugger zag dat hij helemaal niet de OnAfterGetRecord doorliep had ik ze maar in de OnPreDataItem gezet. Dit heb ik nu weer aangepast.

Luc Van Dyck wrote:
In de Integer-dataitem moet je nog code toevoegen in de OnAfterGetRecord-trigger om de ItemLedgerEntryTemp-tabel te doorlopen:

Code: Select all
IF Number = 1 THEN
  ItemLedgerEntryTemp.FINDFIRST
ELSE
  ItemLedgerEntryTemp.NEXT;

Als je de debugger aanzet en je voert je rapport uit, op welke regel krijg je dan de foutmelding?


Met de toevoeging van bovenstaande code, komt er nu eerst geen foutmelding meer \:D/
Nu nog checken of er ook de gewenste data uitkomt [-o<
Bedankt voor de hulp :!:


Top
 Profile E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum


Search for:
Jump to: