leeg datumveld

Adriaan2kAdriaan2k Member Posts: 159
edited 2007-07-27 in NAV Dutch speaking only
Kan iemand mij helpen met het volgende 'vervelende' probleempje ? :

in de tabel purchase price staat een artikel met leverancier en inkoopprijs en een startdatum. Als de werkdatum > dan de einddatum wil ik de
item."last direct cost" op mijn report zien, anders de "purchase price" van het artikel voor de betreffende leverancier.
Indien het veld einddatum 'leeg' is, dan moet dit echter niet opgaan.

Het probleem is dat de einddatum van de purchase price records veelal niet wordt gevuld. Hoe kan ik aangeven dat het veld 'leeg' is ? ik heb onderstaande in mijn report opgenomen:
 IF SYSTEM.WORKDATE > recPurchasePrice."Ending Date" THEN
    if recPurchasePrice."Ending date"= '' THEN
    lastinkprijs:=Item."Last Direct Cost";

Kan iemand mij aangeven wat ik in plaats van = ' ' moet gebruiken ?

alvast weer bedankt.
mvg Adriaan

Comments

  • Luc_VanDyckLuc_VanDyck Member, Moderator, Administrator Posts: 3,633
    Testen op een lege datum doe je in C/AL Code mbv "0D":
    if recPurchasePrice."Ending date"= 0D THEN
    

    Een lege Time-waarde testen doe je dan weer met "0T".
    No support using PM or e-mail - Please use this forum. BC TechDays 2024: 13 & 14 June 2024, Antwerp (Belgium)
  • krikikriki Member, Moderator Posts: 9,112
    Een lege Time-waarde testen doe je dan weer met "0T".
    En om compleet te zijn : een leeg datetime-waarde met "0DT". :mrgreen:
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • Adriaan2kAdriaan2k Member Posts: 159
    Bedankt Luc en Alain voor deze tips. Ik bleef maar tobben met '' en '0' etc. Ik ga m'n reportje gauw afmaken.

    thanx guys.
    mvg Adriaan
  • Adriaan2kAdriaan2k Member Posts: 159
    toch nog een vraag mbt mijn stukje code:
    //-----------------------------------------------------------------------
    
     IF SYSTEM.WORKDATE > recPurchasePrice."Ending Date" THEN
        if recPurchasePrice."Ending date"= 0D THEN
        lastinkprijs:=Item."Last Direct Cost";
    
    //------------------------------------------------------------------------
    

    zoals ik het bedoel en lees staat er, dat:
    indien de werkdatum later is dan de inkoopprijs.einddatum dan
    als de inkoopprijs.einddatum leeg is dan
    wordt het veld lastinkprijs gelijk aan de laatste directe kostprijs van de artikelkaart.

    Echter, als mijn werkdatum op heden staat en mijn inkoopprijs.einddatum is bijv. 31-12-06 dan zou het veld lastinkprijs dus de laatste ink.prijs van de artikelkaart moeten zijn. Dit gebeurt echter niet. Wat doe ik dan fout ?
    mvg Adriaan
  • Luc_VanDyckLuc_VanDyck Member, Moderator, Administrator Posts: 3,633
    Adriaan2k wrote:
    [...]inkoopprijs.einddatum is bijv. 31-12-06 [...]
    Dan is recPurchasePrice."Ending date" niet gelijk aan 0D (want je zegt net dat dit 31-12-06 is) en zal lastinkprijs niet gelijkgesteld worden aan Item."Last Direct Cost".
    No support using PM or e-mail - Please use this forum. BC TechDays 2024: 13 & 14 June 2024, Antwerp (Belgium)
  • Adriaan2kAdriaan2k Member Posts: 159
    Adriaan2k wrote:
    [...]inkoopprijs.einddatum is bijv. 31-12-06 [...]
    Dan is recPurchasePrice."Ending date" niet gelijk aan 0D (want je zegt net dat dit 31-12-06 is) en zal lastinkprijs niet gelijkgesteld worden aan Item."Last Direct Cost".

    Ha Luc,

    dat klopt. Ik dacht dat ik 2 statements in 1 kon maken, maar ik heb het nu als volgt opgelost:
    //-----------------------------------------------------------------------
    
     IF SYSTEM.WORKDATE > recPurchasePrice."Ending Date" THEN
        lastinkprijs:=Item."Last Direct Cost";
    
     IF recPurchasePrice."Ending date"= 0D THEN
        lastinkprijs:=recPurchasePrice."Direct Unit Cost";
    //------------------------------------------------------------------------
    

    Het werkt nu zoals het is bedoeld.
    mvg Adriaan
Sign In or Register to comment.